Жизненный цикл и сопровождение программного обеспечения «Rowux»
Документ описывает жизненный цикл ПО «Rowux» — процессы разработки, контроля качества, сборки, развёртывания, обновления, эксплуатационного сопровождения, резервного копирования и поддержки. Документ описывает организационно-технические процессы работы над продуктом и его сопровождения и не зависит от внутреннего устройства (архитектуры) продукта.
#1. Разработка
Исходный код ПО «Rowux» ведётся в системе контроля версий Git, размещённой в управляемом сервисе GitLab платформы Яндекс.Облако (инфраструктура на территории Российской Федерации). Управление изменениями организовано по модели ветвления и запросов на слияние (merge requests): изменения вносятся в отдельных ветках и включаются в основную ветку после проверки.
В процессе разработки ведётся сплошной реестр лицензий всех используемых программных компонентов и зависимостей с контролем лицензионной совместимости; копилефт-лицензии (GPL/LGPL/AGPL) в составе продукта отсутствуют, что контролируется при добавлении и обновлении зависимостей.
#2. Контроль качества
Проверка изменений выполняется до их включения в основную ветку. В состав репозитория входят автоматические тесты компонентов; проверки работоспособности и корректности выполняются в конвейере непрерывной интеграции. Каждая подсистема предоставляет служебные endpoint-ы проверки состояния (health-check), используемые как при разработке, так и в эксплуатации.
#3. Сборка и развёртывание
Сборка контейнерных образов и развёртывание автоматизированы средствами непрерывной интеграции и доставки (CI/CD): по событию в репозитории исходный код доставляется в целевую среду, подставляется соответствующий среде файл конфигурации окружения, при необходимости собираются вспомогательные образы, и выполняется запуск комплекса командой:
docker compose up -d --build
Пересобираются и перезапускаются только изменённые сервисы. Поддерживается несколько сред развёртывания (локальная, промышленные) без изменения исходного кода — за счёт раздельных файлов конфигурации окружения.
#4. Обновление
Обновление ПО выполняется доставкой новой версии исходного кода и пересборкой
изменённых сервисов (docker compose up -d --build). Миграции схем баз данных
выполняются автоматически при старте соответствующих подсистем; для вновь
создаваемых баз применяются идемпотентные инициализирующие миграции. Откат
выполняется возвратом к предыдущей версии кода и, при необходимости,
восстановлением данных из резервной копии.
#5. Эксплуатация и мониторинг
Состояние комплекса отслеживается:
- штатными средствами оркестрации — просмотр состояния сервисов
(
docker compose ps) и журналов (docker compose logs); - подсистемой мониторинга — сбор метрик и информационные панели;
- служебными endpoint-ами проверки состояния сервисов.
#6. Резервное копирование и восстановление
Состояние платформы хранится в томах данных: реляционные СУБД подсистем, объектное и векторное хранилища. Резервное копирование выполняется штатными средствами резервного копирования томов и соответствующих СУБД. Восстановление производится разворачиванием томов из резервной копии перед запуском комплекса.
#7. Поддержка и сопровождение
Сопровождение ПО «Rowux» осуществляется правообладателем и включает:
- выпуск обновлений и исправление ошибок;
- развитие функциональности;
- актуализацию используемых компонентов с открытым исходным кодом с контролем лицензионной совместимости;
- консультационную поддержку по вопросам установки и эксплуатации.
#8. Снятие с эксплуатации
Снятие с эксплуатации выполняется штатными средствами оркестрации: остановка
комплекса (docker compose down) с сохранением данных либо полное удаление
вместе с томами данных (docker compose down -v). Перед удалением данных
рекомендуется выполнить их резервное копирование (см. раздел 6).