VK Dev Platform logo
Помощь
Обновлена 30 июля 2024 г. в 07:24

Структура и состав VK Dev Platform

Перечень сервисов, входящих в состав VK Dev Platform, приведен на рисунке 1.

Сервисы VK Dev Platform
Рисунок 1 — Сервисы VK Dev Platform

Категории сервисов VK Dev Platform:

  1. Главные модули — Портал разработки, через который осуществляется управление основными модулями, и сервисы, обеспечивающие базовые и критически важные функции, такие как аутентификация, авторизация, управление пользователями, проектами и другие.

  2. Основные модули — сервисы, обеспечивающие интеграцию и управление следующих компонентов, используемых VK Dev Platform:

    • Собственные решения VK Tech.
    • Продукты технологических партнеров.
    • Open Source с рядом расширенных возможностей версий CE.
  3. Вспомогательные модули — сервисы, которые обеспечивают поддержку работы главных и основных модулей. Они выполняют вспомогательные задачи, такие как логирование, сбор метрик, управление событиями и т.д. Сервисы вспомогательного модуля не реализуют бизнес-логику напрямую, но играют важную роль в обеспечении стабильности, масштабируемости и безопасности всей VK Dev Platform.

  4. IT-инфраструктура — совокупность аппаратных и программных средств, сетевых ресурсов, а также сервисов, которые обеспечивают функционирование и поддержку ПО.

Категории IT-инфраструктуры:

  1. Обеспечивающая инфраструктура — предоставляет ресурсы для работы VK Dev Platform (кластер Kubernetes и виртуальные машины) и необходимые сервисы (резервного копирования, мониторинга, аутентификации и пр.).
  2. Инфраструктура окружений — обеспечивает работу приложений, разрабатываемых пользователями Dev Platform (стенды разработки и промышленной эксплуатации).

Описание сервисов VK Dev Platform приведено в таблице 1.

Таблица 1 — Перечень сервисов VK Dev Platform

Сервис

Назначение

Технология реализации

Главные модули

Портал управления разработкой

Предоставляет командам разработки единый пользовательский интерфейс, обеспечивающий доступ к набору инструментов и ресурсов для разработки в смежных сервисах.

Обеспечивает техническую интеграцию инструментов и ресурсов смежных сервисов в единый пользовательский интерфейс

Разработка VK Tech

Сервис аутентификации и авторизации

Обеспечивает аутентификацию пользователей и SSO при работе с сервисами

Keycloak и разработка VK Tech на базе Casbin

Сервис вебхуков

Обеспечивает автоматическую отправку уведомлений или событий на заданные URL при определенных действиях или изменениях в VK Dev Platform. Вебхуки обеспечивают интеграцию и взаимодействие с внешними системами в реальном времени

Разработка VK Tech

Основные модули

Сервис внешних подключений

Обеспечивает управление подключениями VK Dev Platform к внешним системам, например к VK Cloud или VK Private Cloud

Разработка VK Tech

Сервис развертываний и окружений

Обеспечивает развертывание инфраструктуры стендов под приложения и управление окружениями, а также их ресурсами внутри VK Dev Platform

Разработка VK Tech

Сервис хранения и контроля версий исходного кода

Обеспечивает хранение и контроль версий исходного кода, а также совместную работу всех участников проекта разработки над ним

GitLab Community Edition (CE)

Сервис хранения артефактов ПО

Обеспечивает размещение, хранение и контролируемое распространение различных артефактов, создаваемых в процессе жизненного цикла ПО

Sonatype Nexus Repository Manager Open Source

Сервис непрерывной интеграции и развертывания ПО

Обеспечивает запуск и контроль задач сборки, интеграции, тестирования и развертывания в различных окружениях

GitLab Community Edition (CE)

Сервис контроля качества кода

Обеспечивает непрерывный анализ и измерение качества программного кода

SonarQube Community Edition (CE)

Сервис управления задачами

Обеспечивает процессы производства ПО путем автоматизации взаимодействия участников жизненного цикла разработки

Партнерский продукт TeamStorm

Сервис управления знаниями

Обеспечивает размещение, хранение и систематизацию различной информации, получаемой в рамках разработки ПО

Партнерский продукт TeamStorm

Вспомогательные модули

Сервисы сбора логов

Обеспечивают сбор, первичную обработку и отправку логов во внешние системы сбора, хранения и обработки логов

Агенты Fluent Bit

Сервисы сбора метрик

Обеспечивают сбор инфраструктурных и прикладных метрик и отправку их во внешнюю систему мониторинга

Агенты Telegraph/Prometheus

Сервисы сбора событий аудита

Обеспечивают сбор событий аудита сервисов VK Dev Platform и отправку их во внешнюю систему хранения событий аудита

Агенты Fluent Bit

Портал управления разработкой

Возможности портала:

  • Поиск и отображение проектов разработки.

  • Централизованное управление проектами разработки, включая:

    • Создание, удаление, изменение проектов разработки.
    • Отображение и редактирование учетных записей участников проекта разработки, включая изменение ролей и прав.
    • Выделение необходимых проекту ресурсов и инструментов в смежных сервисах VK Dev Platform, в том числе на основе шаблонизированной конфигурации.
  • Отображение и навигация всех подключенных к проекту разработки инструментам, выделенных в смежных сервисах.

  • Централизованное управление ролевой моделью VK Dev Platform.

  • Отображение окружений, доступных проектам разработки.

  • Создание и удаление инфраструктуры для окружения проектов разработки.

  • Создание и удаление специальных вычислительных узлов, использующихся для работы конвейеров сборки и развертывания.

  • Отображение статистики используемых инструментов и ресурсов в смежных сервисах.

  • Управление подпиской на события VK Dev Platform.

  • Получение оповещений о событиях VK Dev Platform по почте и в интерфейсе Портал управления разработкой.

Сервис аутентификации и авторизации

Возможности сервиса:

  • Обеспечение интеграции с внешними провайдерами аутентификации.
  • Обеспечение работы механизмов SSO между всеми сервисами VK Dev Platform.
  • Управление локальными пользователями VK Dev Platform.

Сервис вебхуков

Возможности сервиса:

  • Создание HTTP вебхуков, которые обеспечивают автоматическую отправку уведомлений или событий на заданные URL.
  • Управление подпиской HTTP вебхуков на определенные события внутри VK Dev Platform.
  • Просмотр деталей и статуса отправки уведомления.

Сервис внешних подключений

Возможности сервиса:

  • Создание подключений к внешней системе из предложенных типов.
  • Настройка адреса/URL расположения внешней системы.
  • Поддержка нескольких вариантов аутентификации (в зависимости от типа) во внешней системе.
  • Настройка описания создаваемого подключения.

Сервис развертываний и окружений

Возможности сервиса:

  • Развертывание инфраструктуры на базе Terraform конфигураций в VK Cloud или VK Private Cloud.
  • Предоставление набора преднастроенных шаблонов развертывания, описывающих целевую инфраструктуру.
  • Отображение списка текущих развертываний, включая отображение шагов развертываний.
  • Управление жизненным циклом развертываний — создание, просмотр, изменение, удаление.
  • Управление развертываниями через API.
  • Создание окружений различных типов: Dev, Test, Stage и Prod.
  • Описание созданных окружений.
  • Отображение развернутых в окружениях ресурсов.
  • Управление жизненным циклом окружений — создание, просмотр, изменение, удаление.

Сервис хранения и контроля версий исходного кода

Возможности сервиса:

  • Хранение исходного кода в репозиториях в виде файлов.
  • Создание локальной копии исходного кода из централизованного репозитория.
  • Синхронизация локальных копий исходного кода с централизованным репозиторием.
  • Предоставление доступа пользователей к исходному коду в централизованных репозиториях по протоколам HTTPS, SSH.
  • Отображение и редактирование кода.
  • Атомарная фиксация внесения изменений в исходный код (commit), позволяющая создать новую версию исходного кода.
  • Ведение и просмотр истории изменений исходного кода с учетом ранее созданных версий.
  • Сравнение разных версий исходного кода с отображением различий между ними.
  • Откат внесенных изменений в программный код.
  • Ведение отдельных веток исходного кода и их слияния.
  • Поддержка процедур ручной проверки кода.
  • Репликация репозиториев во внешние системы контроля версий на периодической основе (push mirroring).

Сервис хранения артефактов программного обеспечения

Возможности сервиса:

  • Управление репозиториями и списком хранимых в них программных артефактов.

  • Поддержка репозиториев артефактов следующих типов:

    • APT/YUM — для хранения пакетов ПО для ОС Linux.
    • Docker — для хранения docker-образов.
    • Maven2 — для хранения артефактов сборки Java-приложений.
    • NuGet — для хранения .NET пакетов.
    • NPM — для хранения артефактов сборок JavaScript/node.js приложений.
    • Helm — для хранения Helm-чартов.
    • PyPI — для хранения пакетов Python.
    • RubyGems — для хранения RubyGems.
    • CocoaPods — для хранения пакетов CocoaPods и Objective-C.
    • Raw — для хранения бинарных файлов.
  • Загрузка, удаление, распространение и версионирование хранимых программных артефактов.

  • Управление правами доступа к репозиториям артефактов.

  • Объединение нескольких репозиториев в единую группу с организацией доступа к артефактам этих репозиториев по единой ссылке.

  • Поддержка работы репозиториев в режиме проксирования запросов к удаленным репозиториям артефактов.

  • Поддержка настройки политик очистки неиспользуемых или устаревших артефактов.

  • Предоставление указанной функциональности через веб-интерфейс, утилиты командной строки и REST-API.

  • Поддержка анонимного доступа.

Сервис непрерывной интеграции и развертывания ПО

Возможности сервиса:

  • Подключение репозиториев и артефактов. Создание новых репозиториев и артефактов в ходе выполнения задач конвейера в смежном сервисе хранения программных артефактов.
  • Маршрутизация исполнения конвейера или отдельных шагов на специализированных вычислительных узлах (CI-раннеры).
  • Управление расписанием запусков конвейеров (по событиям, по времени).
  • Ручной запуск конвейера или отдельных его шагов.
  • Запуск конвейера с заданными параметрами, влияющими на последовательность шагов конвейера или выполнение отдельного шага.
  • Обеспечение модульного подключения различных инструментов обеспечения качества, включенных в состав VK Dev Platform.
  • Запуск задач развертывания новых окружений и развертывания артефактов ПО в них.
  • Развертывание ПО в уже существующих окружениях.
  • Формирование отчетов по активностям сборки, интеграции и развертывания.

Сервис контроля качества кода

Возможности сервиса:

  • Запуск инструментов анализа качества кода для различных языков программирования.
  • Сбор, хранение и визуализация метрик качества кода.
  • Сбор, хранение и отображение обнаруженных дефектов качества кода.

Сервис управления задачами

Возможности сервиса:

  • Создание и редактирование пространств/проектов (продуктов).
  • Указание целей и задач проекта, планирование проекта, управление списками задач, дорожными картами, контроль сроков.
  • Настройка жизненного цикла проектных артефактов (задач, дефектов и т.д.).
  • Создание отчетов по проектной деятельности в виде списков, таблиц, досок или графиков. Возможность пользовательской кастомизации отчетов.
  • Ведение журнала изменений проектов, уведомления об изменениях в проекте, упоминаниях участников, настройка текста и внешнего вида уведомлений.
  • Работа с доской требований и задач проекта.
  • Просмотр и редактирование приоритета задачи или требования.
  • Отслеживание процесса выполнения задачи.
  • Группировка задач по командам, исполнителям, срокам, приоритетам, выпускам.
  • Управление изменениями, контроль требований, иерархия требований.
  • Анализ загрузки сотрудника с поддержкой единовременного назначения сотрудника на несколько задач/проектов.
  • Оценка требования.
  • Контроль расхода бюджета в привязке к требованию, задаче или пожеланию.
  • Учет трудозатрат проекта: план-факт анализ, учет переработок, утверждение табелей рабочего времени.
  • Возможность организации портфеля проектов, программ проектов (подпроектов).

Сервис управления знаниями

Возможности сервиса:

  • Хранение и управление базой знаний.
  • Управление структурой статей и документов.
  • Связь статей и документов с требованиями проекта.
  • Создание и редактирование статей в WYSIWYG-редакторе.
  • Навигация по базе знаний, различные виды поиска статей.
  • Размещение ссылок на страницы на других страницах.
  • Вставка сегмента.
  • Вставка контента страницы или задачи.
  • Формирование списка страниц на основе фильтра страниц, вставка списка страниц на страницу.
  • Добавление динамической ссылки на страницу или задачу.
  • Добавление изображений, файлов и диаграмм в статьи.
  • Экспорт страниц и разделов в формате PDF.