logo
Главная/Блог/Кейс U-Team - Blue-Green деплой для Realt.by без простоев

Кейс U-Team - Blue-Green деплой для Realt.by без простоев

CI/CDDevOpsИнфраструктура
Смирнов Алексей
17 июня 2026

О клиенте

Компания: Realt.by - крупнейший портал недвижимости в Беларуси с высоким трафиком и критической зависимостью от доступности сайта.

Задача: обеспечить возможность частых обновлений фронтенда без остановки сервиса и риска выкатить «сломанную» версию для пользователей.

Ситуация (Контекст и проблематика)

Realt.by развивает сайт интенсивно: новые функции, исправления, A/B-тесты. До внедрения нового процесса любое обновление было стрессом.

Ключевые боли:

  • Релиз = простой - чтобы заменить версию, приходилось останавливать сервис, пусть и на короткое время.
  • Риск отката - если новая версия «падала», пользователи видели ошибки, пока инженеры вручную возвращали предыдущую сборку.
  • Долгий цикл проверки - команда боялась выкатывать часто, потому что каждый релиз мог превратиться в инцидент.
  • Отсутствие автоматической «защиты от дурака» - иногда в прод уезжала версия, которая проходила ручные тесты, но «валилась» под реальным трафиком.

Решение

Мы предложили не просто «настроить CI/CD», а внедрить стратегию Zero-downtime Blue-Green deployments с автоматическими проверками здоровья. Заказчик получил готовую автоматизированную систему, которая исключает человеческий фактор при релизах.

Как работает схема:

На сервере всегда работают два одинаковых окружения:

  • Blue - текущая продакшн-версия.
  • Green - новая версия, которая разворачивается параллельно.

Что выполнила наша команда:

  • Задекларировали пайплайн из 5 стадий (Build - Deploy - Health-check - Switch - Cleanup).
  • Настроили переменные окружения (CURRENT_WWW_COLOR, TAG_GREEN, TAG_BLUE), чтобы пайплайн сам знал, какая сейчас активная среда.
  • Написали health-check.sh, который проверяет не только «жив ли контейнер», но и отдает ли он нужный контент (статус 200, ключевые блоки HTML).
  • Интегрировали переключение через обновление конфига Nginx + graceful reload (без потери соединений).
  • Всё завернули в GitLab CI с изолированными раннерами и безопасным хранением секретов.

Важно: Если Health-check не проходит - переключение не происходит, пользователи продолжают сидеть на старой стабильной версии. Инженер видит в GitLab, что релиз «застрял» на проверке, ничего не сломав.

Результаты и преимущества для клиента

  • Ноль даунтайма при релизах - пользователи даже не замечают, что сайт обновился.
  • Автоматическая защита от «битых» релизов - если новая версия не проходит health-check, она не попадает на пользователей, а команда получает уведомление в GitLab.
  • Релизы без страха и в любое время - разработчики могут выкатывать обновления 5 раз в день - процесс безопасен и предсказуем.
  • Мгновенный откат - откатить релиз - это просто запустить пайплайн ещё раз (текущая зелёная станет синей, а синяя - зелёной). Занимает меньше минуты.
  • Прозрачность - в GitLab видно, на какой стадии какой релиз, кто его запустил и прошел ли health-check.
  • Экономия времени инженеров - раньше релиз занимал часы с ручными проверками и страхом. Теперь - несколько минут полностью автоматически.

Роль нашей компании

  • Анализ процесса релизов и выявление узких мест.
  • Проектирование Blue-Green архитектуры под инфраструктуру клиента.
  • Реализация пайплайна GitLab CI из 5 стадий.
  • Написание health-check скриптов под конкретное приложение.
  • Настройка атомарного переключения Nginx с graceful reload.
  • Настройка безопасного хранения секретов (SSH-ключи, логины в registry).
  • Обучение команды и передача документации.
  • Сопровождение первых релизов.

Формула успеха

Blue-Green пайплайн + автоматический health-check + атомарное переключение Nginx + изолированные окружения + GitLab CI = релизы без простоев и без стресса.

Смотрите также

Все статьи

Отправить заявку

Оставьте заявку, и мы свяжемся с вами в течение суток

Отправьте заявку
logo