Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
17 lines (11 sloc) 1.89 KB

original url

Blue-green Deployments, A/B Testing, and Canary releases

最近和我交流过的一些 team 都对 "DevOps" 很感兴趣 (尽管对于不同的人,它可能有不同的含义)。 当我们深入交流的时候,会发现一些 有趣的问题。 有些时候这些问题会让人觉得不舒服。我在和一个 team 讨论部署最佳实践,hot deployments, rollbacks, 当我提到 blue-green deployments 的时候,他们有点不适应。 另一个 team 则不理解为什么他们的日常部署流程有什么不妥

像 Amazon 这样的公司应用 blue-green deployments 已经超过 10 年了,它安全,可验证,有条理。目前 blue-green deployments 并不是万能的银弹。但它有很多优点。A/B testing 如何? Canary testing 如何?对于 micorservices, DevOps 和 cloud-native 他们有很多要讨论的,但在这里我想澄清一下他们的区别。

Blue Green deployments

请参考 Martin Fowler 关于 blue-green deployments 的文章。它是一种基本技巧通过可以预测的方式发布系统,减少发布时系统宕机时间。准备好后你可以快速的 release, 一旦发现了问题也可以快速的 rollback.

简单来说,你有两个相同的环境,"green" 环境是当前 production apps (app1 v1, app2 v1, app3 v1), 现在你要将 app2 升级到 v2, 你在 "blue" 环境做这些升级,部署完后,你在 "blue" 环境做一些测试 (smoke test, other tests), 测试通过后,你将 load balancer/reverse proxy/router 切到 "blue" 环境。

BlueGreenDeployment