Техническая документация
Документы/09Жизненный цикл и сопровождение

Жизненный цикл и сопровождение программного обеспечения «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).