Сине-зеленое развертывание на AWS с использованием ElasticBeanStalk

Мне нужна помощь для достижения сине-зеленого развертывания.

Что у меня в ведре -

  1. Одна синяя среда, размещенная на ElasticBeanStalk.
  2. Одна зеленая среда, размещенная на ElasticBeanStalk.
  3. Обе среды создаются с помощью CF-Template, у обеих есть собственный ELB.

Что я ищу -

  1. Мне нужно переключить трафик с синего на зеленый.
  2. Сначала мне нужно знать, какая среда сейчас активна, чтобы я мог спланировать развертывание своего приложения в следующей среде.
  3. Как только я узнал свою текущую среду (в данном случае синий), я развернул свое приложение в Green-Environment, и теперь эта среда готова принимать трафик.
  4. Мне нужно перенести 25% трафика на зеленый и выполнить проверку работоспособности. Если проверка работоспособности в порядке, я добавлю еще 25% и проведу проверку работоспособности и так далее.
  5. В любой момент, если проверка работоспособности не удалась, я смогу направить весь трафик обратно в Blue Environment.

Мне нужно реализовать это решение в моем задании CI-CD. Моя задача CI - создать свой пакет и развернуть его на S3. Моя работа с компакт-диском - это подготовка инфраструктуры (ElasticBeanStalk) и загрузка пакета во вновь созданную среду.




Ответы (1)


Вы не можете контролировать развертывание на AWS Elastic Beanstalk таким образом, поскольку это предполагает наличие двух рабочих сред и обмен cname. Не совсем то, чего вы пытаетесь достичь, но что-то близкое к этому называется Незаменимые развертывания, доступные" из коробки ".

Из документа:

Чтобы выполнить неизменное обновление среды, Elastic Beanstalk создает вторую временную группу Auto Scaling за балансировщиком нагрузки вашей среды, чтобы содержать новые экземпляры. Сначала Elastic Beanstalk запускает отдельный экземпляр с новой конфигурацией в новой группе. Этот экземпляр обслуживает трафик вместе со всеми экземплярами в исходной группе Auto Scaling, на которых запущена предыдущая конфигурация.

Когда первый экземпляр проходит проверку работоспособности, Elastic Beanstalk запускает дополнительные экземпляры с новой конфигурацией, соответствующие количеству экземпляров, запущенных в исходной группе Auto Scaling. Когда все новые экземпляры проходят проверку работоспособности, Elastic Beanstalk передает их в исходную группу автоматического масштабирования и завершает работу временной группы автоматического масштабирования и старых экземпляров.

person Ali    schedule 18.04.2020