Перейти к содержанию

Реализованный проект · DevOps и CI/CD

DevOps-контур для информационного портала с Canary deployment

Совместно с веб-студией организовали выпуск большого информационного портала с несколькими API-бэкендами и Redis Cluster. CI/CD-конвейер доставляет изменения поэтапно: новая версия сначала получает ограниченную часть трафика, проверяется в Canary-сегменте и только затем распространяется на весь рабочий контур.

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

Доставка изменений
Автоматизированный CI/CD
Прикладной контур
Несколько API-бэкендов
Распределённые данные
Redis Cluster
Политика релиза
Canary deployment
Иллюстрация проекта: DevOps-контур для информационного портала с Canary deployment
Концептуальная схема проекта: входящий поток распределяется между API-бэкендами, Redis Cluster и контрольными узлами; Canary-сегмент выделен золотым.

Исходная задача

Выпускать изменения без остановки большого портала

Веб-студия развивала информационный портал с несколькими прикладными компонентами. Для его промышленной эксплуатации требовался единый процесс доставки изменений и архитектура, которая сохраняет доступность сервиса при обновлениях и локальных отказах.

  • Согласованный выпуск нескольких компонентов: Изменения разных API-бэкендов нужно было собирать, проверять и развёртывать по единому управляемому сценарию.
  • Устойчивость прикладного контура: Остановка отдельного экземпляра не должна была превращаться в недоступность всего информационного портала.
  • Снижение риска релиза: Новую версию требовалось проверять на реальном трафике до её распространения на весь рабочий контур.
  • Разделение зон ответственности: Веб-студия сохраняет фокус на продукте, а инфраструктурная команда обеспечивает воспроизводимую доставку и эксплуатационный контур.

Архитектурное решение

CI/CD, распределённые компоненты и поэтапный релиз

Мы связали доставку кода, развёртывание API, распределение трафика, кластер Redis и контроль состояния в одну последовательность. Архитектура позволяет обновлять компоненты по частям и не делать весь портал единой точкой отказа.

Воспроизводимый CI/CD-процесс

Изменения проходят единый маршрут от репозитория до рабочего окружения, а операции выпуска выполняются по формализованному сценарию.

Несколько экземпляров API-бэкендов

Прикладные сервисы работают не как один неделимый узел: входящий трафик распределяется между доступными экземплярами.

Redis Cluster

Redis Cluster включён в архитектуру как распределённый компонент, для которого отдельно учитываются топология, подключение клиентов и сценарии восстановления.

Canary deployment

Новая версия сначала обслуживает ограниченную часть запросов. Состояние Canary-сегмента оценивается до расширения релиза на остальные экземпляры.

Контроль состояния и возврат версии

Процесс выпуска учитывает проверку состояния компонентов и возможность прекратить распространение проблемной версии.

Порядок работ

Как проходит выпуск новой версии

  1. 01

    Подготовить сборку

    CI/CD-конвейер формирует воспроизводимый артефакт и выполняет предусмотренные проверки.

  2. 02

    Развернуть Canary-сегмент

    Новая версия запускается на ограниченной части прикладного контура, не заменяя сразу все рабочие экземпляры.

  3. 03

    Направить часть трафика

    Согласованная доля запросов поступает на Canary-версию, а основной поток продолжает обслуживаться стабильной версией.

  4. 04

    Проверить состояние

    Команда оценивает технические сигналы и поведение версии на реальных запросах.

  5. 05

    Расширить или остановить релиз

    При штатном поведении новая версия последовательно занимает весь контур; при отклонениях выпуск прекращается.

Практический эффект

Портал получил управляемый и устойчивый процесс изменений

Без неподтверждённых процентов и обещаний абсолютного соответствия.

Воспроизводимые релизы

Одинаковые этапы доставки снижают зависимость выпуска от ручной последовательности действий.

Ограниченная зона риска

Проблема в новой версии сначала затрагивает Canary-сегмент, а не весь объём рабочего трафика.

Устойчивость к локальным отказам

Несколько экземпляров прикладных компонентов позволяют продолжать обслуживание запросов при недоступности отдельного узла.

Фокус веб-студии на продукте

Разработка портала и эксплуатационный контур получили понятные границы ответственности и единый процесс взаимодействия.

Актуальный контекст

Архитектура повторяется не копированием, а проектированием

Состав CI/CD, количество узлов, доля Canary-трафика, правила переключения и схема Redis Cluster зависят от нагрузки, кода приложения, внешних зависимостей и требований к восстановлению.

На странице не публикуются внутренняя топология, поставщики инфраструктуры, показатели нагрузки, SLA и служебные настройки проекта. Для нового портала архитектура и критерии результата определяются после технического обследования.

Критерии Canary задаются заранее

До запуска определяются сигналы штатной работы, допустимые отклонения и условия автоматической либо ручной остановки релиза.

Redis Cluster требует совместимого приложения

Клиенты должны понимать кластерную топологию, а переключения и восстановление проверяются на стенде и в эксплуатационных сценариях.

Секреты и доступы не входят в артефакты

Учётные данные, ключи и служебные параметры отделяются от кода и выдаются компонентам по управляемой политике.

Восстановление проверяется практикой

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

Официальные и авторитетные источники

Документация по применённым подходам

Связанные компетенции

Следующий шаг

Нужно выпускать изменения без остановки сервиса?

Разберём архитектуру приложения, зависимости, текущий процесс релиза и требования к доступности. Предложим последовательный план CI/CD, Canary deployment и контроля состояния.