如果您无法更改AWS Beanstalk实例的RDS端点,那么您如何进行蓝/绿部署?

据我所知,不能更改现有Elastic Beanstalk(EB)实例的Amazon RDS(RDS)端点?

如果是这样的话,你不能把你的代码部署到舞台服务器,阶段数据库,testing,然后提升使用prod数据库?

那么你怎么部署阶段,而不必testing对产品数据库?

鉴于产品和舞台,我认为战略将是这样的:

  • Snapshot prod RDS
  • 用新代码创build舞台并将其指向快照
  • QA阶段
  • 点刺激RDS的阶段
  • 更改负载平衡器以将stream量发送到舞台

我不熟悉Beanstalk,所以拿一粒盐来。

据我所知,A / B部署策略的工作原理是这样的:

  1. A在刺激。
  2. B正在升级。
  3. 部署到B,直到你喜欢它。
  4. 做B Prod,把A转到舞台。
  5. GOTO 1

数据库是非常有状态的,不会很好地交换。 正如我所看到的那样,步骤3有一种像…

  1. Snapspot A-刺入B.
  2. 在B上运行迁移
  3. 运行testing系列来validation它的工作。
  4. 如果testing失败,则转到1并重复。 否则,继续。
  5. 在B群集推广期间,应用已知良好的迁移步骤来生成数据库。

这里棘手的部分是数据库间接。 为此,我build议去Route53。 在部署过程中:

  1. 停止所有testing活动,并代码更新B群集。
  2. 更新B数据库logging以指向prod-database。
  3. 在部署期间,运行您的迁移。
  4. 将B群引入,这将使用现在更新的群集。
  5. 停止A群集。
  6. 更新A-数据库logging以指向登台。
  7. 快照刺到testing数据库上。

你明白了。