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

Rya*_*her 5 amazon-web-services amazon-rds elastic-beanstalk

据我所知,无法更改现有 Elastic Beanstalk (EB) 实例的 Amazon RDS (RDS) 终端节点?

如果是这种情况,那么您不能将代码部署到阶段服务器、阶段 DB、测试,然后升级为使用 prod DB?

那么如何部署 stage 而不必针对 prod db 进行测试呢?

鉴于 prod 和 stage,我认为策略应该是这样的:

  • 快照产品RDS
  • 使用新代码创建阶段并将其指向快照
  • 质量保证阶段
  • 点阶段生产 RDS
  • 更改负载均衡器以将流量发送到阶段

sys*_*138 0

我对 Beanstalk 不熟悉,所以对此持保留态度。

据我了解,A/B 部署策略的工作原理如下:

  1. A 正在生产中。
  2. B正在上演。
  3. 部署到 B 直到您喜欢为止。
  4. 使 B 成为产品,将 A 转变为阶段。
  5. 转到1

数据库的状态非常严重,并且不太适合这样的交换。正如我所看到的,步骤 3 的完成有点像......

  1. Snapspot A-prod 进入 B。
  2. 在 B 上运行迁移。
  3. 运行测试系列以验证其工作原理。
  4. 如果测试失败,请转到 1 并重复。否则,继续。
  5. 在 B 集群升级期间,将已知良好的迁移步骤应用于生产数据库。

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

  1. 停止所有测试活动,并对 B 集群进行代码更新。
  2. 更新 B 数据库记录以指向 prod 数据库。
  3. 在部署期间,运行迁移。
  4. 将 B 集群引入产品,它将使用现在更新的集群。
  5. 停止A集群。
  6. 更新 A 数据库记录以指向暂存。
  7. 将产品快照到测试数据库上。

你明白了。