我之前已经看到它通过一个运行HAProxy的EC2实例完成,通过json文件/ lambda函数配置,然后通过粘性会话将流量控制到两个独立的elasticbeanstalk应用程序中。所以我们有两层负载平衡。
然而,这有一些问题,一个是:测试多个版本变得昂贵,需要越来越多的EB应用程序。
通过金丝雀发布,我的意思是,只能释放一定比例的流量,找出任何逃脱开发者,审核流程和质量检查流程的错误,而不会影响所有流量。
使用AWS资源处理此类设置并且不破坏银行的最佳方法是什么? :)
答案 0 :(得分:0)
我找到了这篇中型文章,解释了被动自动缩放组的用法,在其中将canary版本部署到其中并监视统计信息。对结果满意后,可以将Canary自动缩放组的所需计数更改为0,并执行滚动升级到活动自动缩放组。
以下是文章的链接:https://engineering.klarna.com/simple-canary-releases-in-aws-how-and-why-bf051a47fb3f
答案 1 :(得分:0)
使用Beanbeantalk进行金丝雀测试的方法是
DNS路由需要牢记的一点是,加权路由并不是一门精确的科学,因为客户端会根据您在Route53中设置的TTL来缓存DNS。在极端情况下,例如只有一个单一的客户端调用您的beantalk环境(例如一台Web服务器),并且TTL设置为5分钟,这可能会导致环境之间的切换仅每5分钟发生一次。
因此,对于加权路由,建议使用较低的TTL值。此外,与DNS路由结合使用时,拥有许多客户端(例如移动电话)的效果更好。
或者,可以在两个beantalk环境之前创建一个单独的LB,以平衡beantalk环境之间的请求。但是,我不确定100%的LB是否可以坐在其他(beanstalk)LB的前面。我怀疑答案不是,但是我还没有尝试过。
无法修改弹性beantalk中的自动缩放组,因为LB由beantalk管理,并且beantalk可以决定恢复您在LB上手动执行的更改。此外,beanstalk不允许您将实例部署到一个实例子集,而将旧版本保留在另一个子集上。
希望这会有所帮助。