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. Общеплатформенные сервисы (Core Services) — ключевые сервисы, обеспечивающие базовые и критически важные функции, такие как аутентификация, авторизация, управление пользователями, проектами и другие, на основе которых строятся и работают остальные части системы.

  2. Функциональные сервисы (Functional Services) — сервисы, обеспечивающие реализацию специфических функций или бизнес-логику приложения. Ориентированы на выполнение задач, связанных с пользовательским опытом или бизнес-процессами. Эти сервисы могут включать Сервис развёртывания, Сервис окружений, Сервис хранения артефактов ПО и другие.

  3. Вспомогательные сервисы — сервисы, которые обеспечивают поддержку работы общеплатформенных и функциональных сервисов. Они выполняют вспомогательные задачи: логирование, сбор метрик, управление событиями и прочие. Эти сервисы не реализуют бизнес-логику напрямую, но играют важную роль в обеспечении стабильности, масштабируемости и безопасности всей системы.

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

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

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

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

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

Название сервиса

Назначение сервиса

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

Общеплатформенные сервисы

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

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

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

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

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

Keycloak

Сервис авторизации

Определяет права и уровни доступа пользователей к различным ресурсам и функциям системы после успешной аутентификации

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

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

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

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

Сервис управление проектами

Обеспечивает функции создания, удаления и управления проектами внутри системы

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

Сервис управления шаблонами

Предоставляет возможность создания, хранения, редактирования и использования различных шаблонов для автоматизации и стандартизации процессов создания сущностей внутри VK Dev Platform (репозитории кода, артефактов и пр.)

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

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

Управляет подключениями системы к внешним сервисами или API

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

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

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

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

Функциональные сервисы

Сервис развёртываний

Обеспечивает развёртывание инфраструктуры стендов под приложения

Разработка 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)

Сервис управления требованиями, задачами и выпуском ПО

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

Партнёрский продукт DevProm ALM

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

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

Партнёрский продукт DevProm ALM

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

Обеспечивает единое пространство для планирования ручных и автоматизированных тестов.

Предназначен для контроля и оптимизации работы инженеров-тестировщиков

Партнёрский продукт DevProm ALM

Вспомогательные сервисы

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

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

Агенты Fluentbit

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

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

Агенты Telegraph/Prometheus

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

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

Агенты Fluentbit

Управление конфигурацией платформы

Обеспечивает развёртывание и конфигурирование VK Dev Platform, а также её последующее обновление и обслуживание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сервис управления требованиями, задачами и выпуском ПО

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

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

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

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

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

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

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

  • Создание и хранение тестовых сценариев и тест-планов.
  • Создание типовых тест-планов с предварительно заполненными разделами тестовой документации.
  • Создание тест-планов на основе заранее заполненного шаблона.
  • Создание тестовой документации на основе предоставленных требований.
  • Ведение перечня задач на тестирование на отдельной доске.
  • Поддержка связи тестовых сценариев со сборкой ПО.
  • Создание пользовательских атрибутов и наполнение тестовой документации требуемыми данными.
  • Формирование тестовых сценариев для различных конфигураций устройств, ОС и браузеров.
  • Получение системных уведомлений при назначении пользователя на выполнение тестов, упоминании пользователя, либо назначении пользователя на задачи тестирования.
  • Импорт результатов автоматизированного тестирования.
  • Формирование отчётов по автоматизированным и ручным тестам в едином формате как вручную, так и автоматизированно из внешних систем и инструментов.

Управление конфигурацией VK Dev Platform

Возможности компонента:

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