0Pricing
DevOps Bootcamp · Урок

Сине-зелёные развёртывания

Настройте стратегии сине-зелёных развёртываний с помощью GitHub Actions, чтобы сократить простой и упростить быстрый откат.

«Сине-зелёные развёртывания» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Что такое развёртывание Blue/Green

Добро пожаловать! На этом уроке мы подробно рассмотрим развёртывания Blue/Green — мощную стратегию выпуска нового программного обеспечения.

Она призвана свести к минимуму простой и риски во время развёртываний, обеспечивая пользователям бесперебойную работу.

Знакомство с Blue и Green

Представьте, что у вас есть два одинаковых производственных окружения: одно называется «Blue», а другое — «Green».

  • Blue: Текущее активное окружение, обслуживающее весь пользовательский трафик.
  • Green: Неактивное идентичное окружение, используемое для развёртывания и тестирования новых версий.

Как работает Blue/Green

Процесс прост, но эффективен:

  1. Разверните новую версию приложения в окружении Green (неактивном).
  2. Тщательно протестируйте новую версию в Green.
  3. Убедившись в её корректной работе, переключите весь пользовательский трафик с Blue на Green.
  4. Старое окружение Blue теперь неактивно, и его можно сохранить для быстрого отката или обновления.

Зачем использовать Blue/Green

Эта стратегия даёт существенные преимущества:

  • Нулевой простой: Пользователи незаметно переходят на новую версию без перерывов.
  • Мгновенный откат: Если возникают проблемы, просто переключите трафик обратно на стабильное окружение Blue.
  • Снижение рисков: Тестируйте новые версии в окружении, похожем на производственное, до их запуска.

Что вам понадобится

Для реализации Blue/Green обычно необходимы:

  • Балансировщик нагрузки: Для направления трафика в окружение Blue или Green.
  • Два одинаковых окружения: Часто облачных, что обеспечивает согласованность.
  • Инструмент автоматизации: Например, GitHub Actions для управления развёртываниями и переключением трафика.

Координация с помощью GitHub Actions

GitHub Actions может автоматизировать каждый шаг развёртывания Blue/Green.

Можно определить рабочие процессы, которые будут:

  • Собирать приложение и развёртывать его в неактивном окружении.
  • Запускать автоматические тесты для нового развёртывания.
  • Инициировать переключение трафика через API балансировщика нагрузки или скрипт.

Развёртывание новой версии

Вот упрощённый фрагмент GitHub Actions для развёртывания новой версии приложения в окружении «Green». Обратите внимание на использование имени environment.

name: Deploy to Green

on:
  push:
    branches:
      - main

jobs:
  deploy-green:
    runs-on: ubuntu-latest
    environment: Green # Target the Green environment
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Deploy app to Green
        run: |
          echo "Deploying application version ${{ github.sha }} to Green environment..."
          # Your actual deployment commands go here
          # e.g., deploy to a specific AWS EC2 instance or Kubernetes namespace

Переключение трафика

После успешного развёртывания и тестирования последний шаг — переключить трафик. Обычно для этого обновляют балансировщик нагрузки или запись DNS.

Вот концептуальный шаг GitHub Actions, который инициирует это переключение:

name: Switch Traffic to Green

on:
  workflow_dispatch: # Manual trigger for traffic switch

jobs:
  switch-traffic:
    runs-on: ubuntu-latest
    steps:
      - name: Update Load Balancer to Green
        run: |
          echo "Switching load balancer traffic to Green environment..."
          # Call your load balancer's API or a script here
          # e.g., aws elbv2 modify-target-group-attributes ...
          # or kubectl apply -f green-ingress.yaml

Мгновенный откат

Что произойдёт, если вы переключите трафик на Green, а затем обнаружится критическая ошибка?

С Blue/Green откат выполняется мгновенно! Просто переключите трафик балансировщика нагрузки обратно на исходное стабильное окружение Blue.

Это значительно уменьшает последствия инцидента и время восстановления.

Важные аспекты

Несмотря на свои преимущества, Blue/Green имеет особенности:

  • Дублирование ресурсов: Вы запускаете два полноценных окружения, что может вдвое увеличить расходы на инфраструктуру.
  • Миграции базы данных: Обработка изменений базы данных может быть сложной, поскольку Blue и Green могут нуждаться в доступе к одному и тому же хранилищу данных.
  • Приложения с состоянием: Приложения с сохраняемым состоянием требуют тщательного планирования.

Тест по развёртыванию Blue/Green

Давайте проверим, насколько хорошо вы поняли развёртывания Blue/Green.

Краткие итоги урока

Отличная работа! Вы узнали о развёртываниях Blue/Green.

  • Для развёртывания новых версий используются два одинаковых окружения (Blue и Green).
  • Обеспечиваются нулевой простой и мгновенный откат.
  • GitHub Actions может автоматизировать развёртывание и переключение трафика.
  • Не забудьте учесть расходы на ресурсы и изменения базы данных!

Часто задаваемые вопросы

Урок «Сине-зелёные развёртывания» бесплатный?

Да — полный текст урока «Сине-зелёные развёртывания» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Сине-зелёные развёртывания»?

Настройте стратегии сине-зелёных развёртываний с помощью GitHub Actions, чтобы сократить простой и упростить быстрый откат. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Сине-зелёные развёртывания»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Сине-зелёные развёртывания
  2. Канареечные выпуски с Actions
  3. Откаты и аварийное восстановление
  4. Флаги функций и постепенные развёртывания
← Назад к DevOps Bootcamp