Перечень подсистем и их назначение
Перечень подсистем, входящих в состав VK Dev Platform, представлен в таблице 1.
Название подсистемы | Назначение |
|---|---|
Портал управления разработкой | Предоставление пользователям единого пользовательского интерфейса, обеспечивающего доступ к необходимому для разработки набору инструментов и ресурсов в смежных подсистемах. Обеспечение технической интеграции инструментов и ресурсов смежных подсистем в единый пользовательский интерфейс |
Подсистема хранения и контроля версий исходного кода | Обеспечение хранения и контроля версий исходного кода, а также совместную работу с ним всех участников проекта разработки |
Подсистема артефактов программного обеспечения | Обеспечение размещения, хранения и контролируемого распространения различных артефактов, создаваемых в процессе жизненного цикла ПО |
Подсистема непрерывной интеграции и развёртывания ПО | Обеспечение автоматизации запуска и контроля задач сборки, интеграции, различных видов тестирования, а также развёртывания в тестовые и продуктивные окружения |
Подсистема контроля качества кода | Обеспечение непрерывного анализа и измерения качества программного кода |
Подсистема управления требованиями, задачами и выпуском ПО | Обеспечение процессов производства ПО с помощью автоматизации взаимодействия участников жизненного цикла разработки |
Подсистема управления знаниями | Обеспечение размещения, хранения и систематизации различной информации, получаемой при разработке ПО |
Подсистема управления тестированием | Обеспечение единого пространства для планирования ручных и автоматизированных тестов. Предназначена для контроля и оптимизации работы инженеров-тестировщиков |
Подсистема управления конфигураций 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 представлена набором сценариев, разработанных на базе Ansible roles, playbooks и helm charts.
Подсистема предоставляет следующие возможности:
- Централизованный запуск сценариев развёртывания VK Dev Platform и отдельных её компонентов.
- Централизованное управление базовой конфигурацией сервисов и служб VK Dev Platform.
- Централизованная настройка операций резервного копирования VK Dev Platform.
- Централизованная настройка операций передачи логов и метрик мониторинга VK Dev Platform.
- Поддержка сценариев обновления VK Dev Platform.