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

Перечень подсистем и их назначение

Перечень подсистем, входящих в состав VK Dev Platform, представлен в таблице 1.

Таблица 1 — Перечень подсистем VK Dev Platform

Название подсистемы

Назначение

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

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

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

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

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

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

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

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

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

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

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

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

Подсистема управления знаниями

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

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

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

Подсистема управления конфигураций VK Dev Platform

Обеспечение автоматизации развёртывания, обновления, связывания подсистем и компонентов VK Dev Platform, а также смежных систем (включая Private Cloud)

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

Портал управления разработкой представлен набором микросервисов, разработанных VK Tech.

Портал предоставляет следующие возможности:

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

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

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

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

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

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

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

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

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

Подсистема хранения и контроля версий исходного кода реализуется на основе GitLab Community Edition и набора дополнительных сервисов, расширяющих функционал оригинального продукта.

Подсистема предоставляет следующие возможности:

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

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

Подсистема артефактов программного обеспечения реализуется на основе Sonatype Nexus Repository Manager Open-Source.

Подсистема предоставляет следующие возможности:

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

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

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

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

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

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

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

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

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

Подсистема непрерывной интеграции и развёртывания ПО реализуется на основе GitLab Community Edition.

Подсистема предоставляет следующие возможности:

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

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

Подсистема контроля качества кода реализуется на основе SonarQube Community Edition.

Подсистема предоставляет следующие возможности:

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

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

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

Подсистема предоставляет следующие возможности:

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

Подсистема управления знаниями

Подсистема управления знаниями реализуется на основе DevProm ALM.

Подсистема предоставляет следующие возможности:

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

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

Подсистема управления тестированием реализуется на основе DevProm ALM.

Подсистема предоставляет следующие возможности:

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

Подсистема управления конфигураций VK Dev Platform

Подсистема управления конфигураций VK Dev Platform представлена набором сценариев, разработанных на базе Ansible roles, playbooks и helm charts.

Подсистема предоставляет следующие возможности:

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