金丝雀部署软件版本的风险缓解策略。每一个新软件发布代表一个风险。金丝雀的部署可以限制造成的损害新版本包含bug或错误,通过快速、安全地回滚到前一个工作版本。
一只金丝雀版本的软件产品是一个新版本,包括特定的新功能,升级或配置更改。它包括所有必要的应用程序代码和依赖性,并发布到生产环境。然而,只有少数用户使用。
DevOps团队监控后使用和验证新版本的稳定性,它是所有用户发布的。如果版本不接受或问题被发现,系统回滚当前工作版本。
这是我们有关的一系列文章的一部分GitOps。
本文简介:
在金丝雀部署、运行应用程序的两个版本在同一时间。旧版本称为“稳定版本”和新版本称为“金丝雀”。有两种方法来分发更新:滚动部署和并行部署。
一个滚动的部署步骤介绍了变化。几个生产服务器开始运行金丝雀版本而其他人继续运行稳定版本。只有那些金丝雀服务器访问的用户可以看到更新。
DevOps团队可以监控的行为在金丝雀服务器上升级系统,检查错误和性能问题,和听到用户的反馈:
在一个平行的金丝雀部署,而不是服务器在升级阶段,DevOps团队创建了一个全新的克隆环境和部署金丝雀版本。这需要复制当前的生产版本的硬件环境正在运行。
一旦金丝雀版本运行时,它显示的一小部分用户。这是使用路由器、负载平衡器、反向代理或其他业务逻辑。渐渐地,DevOps团队更多的用户从稳定版本迁移到金丝雀的版本,同时监测金丝雀。这一过程持续进行直到:
复制环境部署完成时,可以关闭,直到它需要另一个金丝雀测试。
金丝雀部署可能被误认为是蓝色/绿色部署。都使用负载平衡器或并行生产环境中,由功能旗帜,降低软件的风险问题。但每一种都有其自己的细微差别。
蓝色/绿色的部署,当前的生产环境和新版本并行地运行。蓝色服务器当前版本和绿色服务器作为热备份,部署新软件发布。使用路由器,特性旗帜,或交通管理方案,从蓝色的绿色服务器流量逐渐过渡到100%的交通是绿色。转换完成后,验证了新环境,团队蓝色服务器升级到新版本,现在变成了热备份。
在一只金丝雀部署,DevOps的团队正在测试一种特定的新功能或系统更改,是否有正面或负面影响。,当前和新版本并行地运行。然而,切换处理在金丝雀部署中,只有一小部分用户暴露在新版本在较长一段时间。验证了改变后,它是所有用户推出。
相关内容:阅读我们的导游金丝雀部署和蓝色绿色(很快)
这里有几个关键的好处金丝雀部署方式:
金丝雀部署是非常有益的,但是可以提高一些挑战:
有几种方法可以执行在Kubernetes金丝雀部署。实现它的一种常见方法是使用功能标志。管理软件开发的实践使用功能国旗被称为功能管理。
特色旗帜给DevOps团队更多的控制你的部署和通常不需要修改配置文件,进行完整的蓝绿色的部署,或执行回滚。功能安全管理允许团队部署金丝雀Kubernetes没有启动多个生产实例的应用程序。
实现Kubernetes金丝雀部署,一个团队可以开发一个新的功能,纪念这一特性国旗,新版本的应用程序部署到生产环境的一小部分。默认情况下,用户查看当前稳定版本新特性。团队可以指定一个“金丝雀集团”的用户,只有他们会看到新特性,标注特征标志。
如果金丝雀测试失败,团队可以简单地切换功能的标志“关闭”。不需要一个完整的回滚或重新分配。相反,如果金丝雀测试成功,功能标志仍然“on”,新版本可以推广到所有用户。
有几件事团队应该考虑在规划一个金丝雀部署:
这里有几个选项扩大金丝雀版:
最后需要考虑的是如何选择用户应该参与金丝雀测试。通常选择用户随机,但有一些其他的可能性。团队可以让金丝雀版地理区域一次。他们可以公开的金丝雀“早期采用者”客户签署了实验功能。另一个选择是公开金丝雀内部用户和员工。