【问题标题】:Create A/B testing for Elastic beanstalk为 Elastic beanstalk 创建 A/B 测试
【发布时间】:2018-11-29 22:09:04
【问题描述】:

最近我在 AWS 中创建了一个 codestar Web 服务。这在内部使用带有负载平衡器、代码管道、代码部署服务的弹性 beanstalk 环境以实现端到端工作。我现在能做的就是在本地进行一些代码更改并将其部署到 codestar。我现在要做的是设置额外的环境,比如 alpha-environment 并首先将其部署到我的生产环境中,以便进行更好的测试。我可以做的一种方法是为 alpha 阶段创建一个额外的环境,对其进行一些更改,然后手动部署到 prod 阶段。但这将在 AWS 中创建两个不同的存储库,我不知道如何将更改从 alpha-environment 复制到 prod-environment。请告诉我首先部署到 alpha 阶段然后自动部署到 beta 阶段的最佳方式。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk aws-codepipeline aws-codestar


    【解决方案1】:

    您想要做的是称为 Canary 部署(或 Canary 版本)。它允许您在发布之前对发布进行一些生产测试,然后再将其发布给所有用户。它是蓝/绿部署的一种修改形式。

    蓝/绿部署是指您在当前版本(蓝色)投入生产的同时将新版本(绿色)部署到生产中。理论上,如果绿色部署不好,而您将蓝色部署留在原地,则可以在很少停机的情况下回滚到蓝色部署。

    Canary 部署是蓝/绿部署,您可以将一小部分流量路由到 Green 部署,以确保 Green 稳定并按预期工作。如果 Canary 测试成功,那么您将 100% 的流量路由到绿色环境。 Blue 环境可以删除或重新用于下一个版本。

    另一方面,如果 Canary 测试失败,您会将 100% 的流量路由回 Blue 环境,然后关闭 Green 环境或将其重新用于下一个版本。

    Elastic Beanstalk 允许您快速创建应用程序的两个版本,以将 Elastic Beanstalk 环境与克隆环境分开(通过控制台或命令行)。新克隆的环境将是您的绿色环境。

    然后,您可以利用 Amazons Route 53 以及加权路由路由策略功能。这允许您采用单个域名,并根据您在策略中决定的百分比在蓝色和绿色环境之间分配流量。从小处着手,如果绿色好,您就可以达到 100%。

    以下是一些参考资料:

    Route 53 Weighted Routing

    Elastic Beanstalk Clone environment feature

    Canary Test/Release/Deployment

    Simple Canary release in AWS

    Blue/Green available with Code Deploy

    【讨论】:

      猜你喜欢
      • 2014-03-14
      • 1970-01-01
      • 2021-04-06
      • 2021-08-15
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 2023-03-03
      • 2023-03-09
      相关资源
      最近更新 更多