「」一文搞懂蓝绿部署和金丝雀发布( 二 )


如何理解金丝雀发布(灰度发布)
与蓝绿部署类似 , 金丝雀发布也是始于两套环境:有实时流量的环境以及没有实时流量但包含了更新的代码的环境 。 与蓝绿部署不同的是 , 流量是逐渐迁移到更新的代码 。 一开始是1% , 然后10%、25% , 以此类推 , 直至100% 。 通过自动化发布 , 当确认代码能够正确运行时 , 它就可以逐步推广到更大、更关键的环境中 。 如果在任何时候发生了问题 , 所有流量都会被回滚到之前的版本 。 这在很大程度上降低了风险 , 因为仅有一小部分用户会使用到新的代码 。
IT不仅可以控制用户部署的比例 , 而且金丝雀发布还可以从不太重要的用户开始 , 例如使用免费账户的用户或相对来说不太重要的业务市场 。

「」一文搞懂蓝绿部署和金丝雀发布
本文插图

金丝雀发布:实时流量逐渐从旧版本迁移到新版本直到更新生效
Cluster Immune System
Cluster Immune System可以让金丝雀发布更进一步 。 它会连接到生产监控系统 , 当面向用户的性能偏离预定义范围(例如 , 错误率高出2%)时 , 将会自动回滚版本 。 这种方法可以识别通过自动测试难以发现的错误 , 并减少了检测和响应性能下降所需的时间 。
通过将发布与部署解耦并利用蓝绿部署或金丝雀发布 , 风险将会显著降低 。 在任何时候 , IT都能够将应用程序回滚到之前的版本——这已经与传统的应用程序发布流程相去甚远了 。
新的技术和方法首次让这一切成为可能:版本控制、作为代码的基础架构(Infrastructure as code)、容器和Kubernetes都能在这个崭新的、灵活的、面向DevOps的IT世界中发挥着作用 。


推荐阅读