Назад к вопросам
Middle
96
questionbank

Что такое развертывание Blue-Green?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Blue-Green развертывание - это стратегия выпуска нового функционала с минимальным временем простоя, основанная на поддержании двух идентичных сред: "синей" (текущей, рабочей версии) и "зеленой" (новой версии).

Алгоритм:

  1. Существует активная "синяя" среда, которая обслуживает весь трафик.
  2. Новая версия приложения разворачивается в полностью идентичной, но неактивной "зеленой" среде.
  3. После успешного тестирования "зеленой" среды, трафик переключается на нее.
  4. "Синяя" среда сохраняется для быстрого отката или может быть использована для следующих развертываний.

Ключевые преимущества:

  • Минимальное время простоя: Переключение трафика происходит почти мгновенно.
  • Простой откат: В случае проблем с новой версией, трафик легко перенаправляется обратно на "синюю" среду.
  • Меньший риск: Новая версия проверяется в изолированной среде перед переключением трафика.

Недостатки:

  • Двойные ресурсы: Требуются ресурсы для поддержания двух полных сред.
  • Управление состоянием: Может быть сложно управлять состоянием приложения, если оно использует базу данных с постоянными изменениями.

Пример переключения трафика с использованием балансировщика нагрузки:

// Конфигурация балансировщика (упрощенная)
{
  "listeners": [
    {
      "port": 80,
      "protocol": "HTTP",
      "default_actions": [
        {
          "type": "forward",
          "target_group_arn": "arn:aws:elasticloadbalancing:..." // ARN группы экземпляров "синей" среды
        }
      ]
    }
  ]
}
# Команда для переключения трафика на "зеленую" среду
# (пример для AWS CLI, предполагается наличие ARN новой целевой группы)
aws elbv2 modify-listener --listener-arn "arn:aws:elasticloadbalancing:..." --default-actions Type=forward,TargetGroupArn="arn:aws:elasticloadbalancing:..." // ARN группы экземпляров "зеленой" среды