最近我在AWS中创建了一个codestar Web服务。这在内部使用弹性 betalk 环境,其中包含负载均衡器、代码管道、代码部署服务,以实现端到端工作。我现在能做的是在本地进行一些代码更改并将其部署到代码星。我现在要做的是设置额外的环境,例如 alpha-环境并将其部署到第一个,然后将其部署到我的生产环境中以进行更好的测试。我可以做的一种方法是为 alpha 阶段创建一个额外的环境,对其进行一些更改,然后手动部署到生产阶段。但这会在 AWS 中创建两个不同的存储库,我不知道如何将更改从 alpha 环境复制到生产环境。请告诉我首先部署到 alpha 阶段然后自动部署到 beta 阶段的最佳方法。
您要执行的操作称为金丝雀部署(或金丝雀版本(。 它允许您在生产环境中对发布进行一些测试,然后再将其提供给所有用户。它是蓝/绿部署的修改形式。
蓝/绿部署是指在当前版本(蓝色(投入生产的同时将新版本(绿色(推出到生产环境。 理论上,如果绿色部署不好,并且您将蓝色部署留在原地,则可以在很少的停机时间内回滚到蓝色部署。
Canary 部署是蓝/绿部署,您将一小部分流量路由到绿色部署,以确保绿色稳定并按预期工作。 如果 Canary 测试成功,则将 100% 的流量路由到绿色环境。 蓝色环境可以删除或重用于下一个版本。
另一方面,如果 Canary 测试失败,您将 100% 的流量路由回蓝色环境并删除绿色环境或将其重用于下一个版本。
Elastic Beanstalk允许您快速创建应用程序的两个版本,以将 Elastic Beanstalk 环境与克隆环境分开(通过控制台或命令行(。 新克隆的环境将是绿色环境。
然后,您可以利用 Amazons Route 53 以及加权路由路由策略功能。 这允许您使用单个域名,并根据您在策略中决定的百分比在蓝色和绿色环境之间分配流量。 从小处着手,如果绿色很好,你就去100%。
以下是一些参考资料:
路线 53 加权路由
弹性豆茎克隆环境功能
金丝雀测试/发布/部署
AWS 中的简单金丝雀发布
蓝色/绿色可用于代码部署