Перейти к содержимому
productionDevOpsLinuxАвтоматизация

Управляемое развёртывание через GitLab CI

Конвейер развёртывания, в котором выкатка в production выполняется вручную из защищённой ветки, но все опасные шаги закрыты автоматикой: снимается резервная копия, запускается новая версия, проверяется работоспособность, а при неуспешной проверке система сама возвращается на предыдущую версию.

Стадии конвейера: тесты, сборка, ручной деплой, проверкаконвейертестысборкавыкладкапроверка
Конвейер с ручной production-стадией
Журнал шага развёртывания с health-check и результатомжурнал
Health-check и решение об откате

Задача

Сделать обновление боевого сервиса предсказуемым: без ручных команд на сервере, без параллельных выкаток и без ситуации «обновились и не можем вернуться».

Результат

  • выкатка занимает один подтверждённый запуск вместо серии ручных команд
  • неудачное обновление откатывается автоматически, без ночного вмешательства
  • всегда известно, какая версия работает в production

Что реализовано

  • автоматические тесты на каждый коммит
  • сборка артефакта версии
  • защищённая ветка и ручной запуск production-стадии
  • блокировка параллельного деплоя
  • резервная копия конфигурации и базы перед обновлением
  • запуск новой версии через systemd
  • health-check и окно стабильности после запуска
  • автоматический откат при неуспешной проверке
  • отчёт о развёрнутой версии

Архитектура

  1. 01стадии: test → build → deploy (manual) → verify
  2. 02блокировка через файл-замок на целевом хосте: вторая выкатка завершается отказом, а не встраивается в первую
  3. 03перед стартом новой версии сохраняется предыдущий релиз и дамп базы
  4. 04health-check проверяет HTTP-ответ, состояние службы и совпадение развёрнутого commit

Смежные проекты

внутренний проектBackendАвтоматизация

Внутренняя система учёта и отчётности

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

productionАвтоматизацияWindows

Резервное копирование с ротацией и контролем результата

Копии баз, конфигураций и файловых ресурсов на отдельный ресурс: расписание, ротация по сроку хранения, проверка и уведомление о результате.

productionАвтоматизацияLinux

Тестовое восстановление из резервных копий

Регулярная проверка того, что копия действительно разворачивается: восстановление на отдельный контур, проверка данных и фиксация результата.

Управляемое развёртывание через GitLab CI | RKTSocial