首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >两个数据库和蓝绿部署的工作流

两个数据库和蓝绿部署的工作流
EN

Stack Overflow用户
提问于 2019-03-11 17:38:41
回答 1查看 344关注 0票数 0

假设我有一个简单的工作流,如:

开发,分期和生产部门。

分期分支具有一个分期环境(AWS弹性Bean秸秆)。

生产部门有一个生产环境(AWS弹性豆秆)。

需要一个用于暂存环境的数据库和一个用于生产环境的数据库(使用DynamoDB)。

如何做到这一点?两个单独的AWS帐户(一个用于暂存环境,一个用于生产环境)?

如何使用此设置使用AWS上的蓝绿部署?

欢迎其他建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-11 19:21:39

对于我的ElasticBeanstalk解决方案,我有以下设置:

  1. Dev AWS帐户中带有Dev数据库的开发环境
  2. 测试AWS帐户中使用测试数据库的测试环境
  3. Prod帐户中带有Prod数据库的ProdGreen环境
  4. Prod帐户中带有Prod数据库的ProdBlue环境

ProdGreen和ProdBlue共享相同的数据库,并且彼此完全相同(除了每个人都知道在Env变量中为报告目的指定了它)。

当我最初创建环境时,我将它们命名为ProdBlue和ProdGreen,但是dns的名称是prod和beta。

在Route53中,我有两个DNS记录(prod和beta),其中包含CNAME到弹性豆柄urls:

代码语言:javascript
运行
复制
myapp.mydomain.com        CNAME    myapp-prod.eu-west-1.elasticbeanstalk.com
myapp-beta.mydomain.com   CNAME    myapp-beta.eu-west-1.elasticbeanstalk.com

然后,我遵循以下步骤:

  1. 在测试环境中运行完全回归测试。
  2. 使用beta dns名称将应用程序部署到环境中(目前是beta env )
  3. 将beta环境扩展到生产能力和扩展计划。
  4. 在beta部署上运行正常测试,以确保它按预期运行
  5. 在EB中,交换myapp-prod和myapp-beta DNS名称。
  6. 该服务立即将beta环境切换为prod。
  7. 缩小新的beta环境,如果你愿意的话,它总是在那里,以防你需要回滚

要使这一工作有效,您需要确保:

  • 您的应用程序是无状态的,或者正在使用Elasticache或DynamoDB共享状态。
  • 负载均衡器上的会话不粘。
  • 您不会对数据库结构进行中断更改,因此两个prod环境都可以在相同的数据源上运行。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55107470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档