Назад | Перейти на главную страницу

Если вы не можете изменить конечную точку RDS экземпляра AWS Beanstalk, как выполнить сине-зеленое развертывание?

Насколько я могу судить, нельзя изменить конечную точку Amazon RDS (RDS) существующего экземпляра Elastic Beanstalk (EB)?

Если это так, то вы не можете развернуть свой код на промежуточном сервере, на этапе БД, протестировать, а затем продвинуть его для использования производственной БД?

Так как же развернуть стадию без необходимости тестирования на prod db?

Учитывая прод и сцену, я подумал, что стратегия будет примерно такой:

Как я вижу, ваша идея - это рабочий процесс CI / CD. Используя AWS Beanstalk, вы можете сделать это (свою идею), используя env.yml. Здесь о env.yml дальнейшее чтение https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html

Надеюсь, это вам поможет.

Я не знаком с Beanstalk, так что отнеситесь к этому с недоверием.

Насколько я понимаю, стратегия развертывания A / B работает примерно так:

  1. А в прод.
  2. B находится в стадии постановки.
  3. Развертывайте до B, пока он вам не понравится.
  4. Сделайте B Prod, превратив A в Stage.
  5. GOTO 1

Базы данных ужасно отслеживают состояние, и их не устраивает такой обмен. Как я видел, шаг 3 делается как бы ...

  1. Снимите точку A-prod в B.
  2. Запустите миграции на B.
  3. Запустите серию тестов, чтобы убедиться, что он работает.
  4. Если тесты не пройдут, НАЙТИ 1 и повторите. В противном случае продолжайте.
  5. Во время продвижения B-кластера примените заведомо исправные шаги миграции к базе данных prod.

Сложная часть здесь - это косвенное обращение к базе данных. Для этого я предлагаю пойти по Route53. В процессе развертывания:

  1. Остановите все действия по тестированию и обновите код кластера B.
  2. Обновите запись B-Database, чтобы она указывала на prod-database.
  3. Во время развертывания запустите свои миграции.
  4. Переместите кластер B в prod, который будет использовать обновленный кластер.
  5. Остановите кластер A.
  6. Обновите запись A-Database, чтобы она указывала на Staging.
  7. Снимок продукта в тестовой базе данных.

Вы уловили идею.