将发布自动化提升到一个新高度,第5集:通过深色发布和功能切换来展示价值

“将 发布自动化提升到一个新的高度 ”系列使您可以洞悉围绕DevOps部署模式的优势和挑战。 在本系列中,我们将研究不同模式的工作原理,每种模式的优缺点,实现它们的注意事项以及应用它们时的最佳实践。

在第4集中,我们讨论了Canary版本,该版本允许团队向目标用户群推出新功能,而不会影响其他用户。 黑暗启动和功能切换是替代的部署策略,使您能够以高度受控的方式向用户介绍新功能,而无需维护多个环境。

什么是黑暗发射?

暗启动功能意味着向生产环境发布功能的早期版本,以便您可以用实际的用户流量和使用模式对其进行测试,而无需向用户实际暴露该功能。 暗启动对于测试功能的后端特别有效,因为您可以在后台运行后端功能,而用户不会意识到这一点。 当需要让用户访问该功能时,您只需部署其前端界面。

例如,您可以在电子商务网站上实施产品推荐功能的后端并测试其性能,而不向网站访问者显示推荐。 对功能的性能满意后,可以在网站上部署前端推荐界面。

什么是功能切换?

功能切换(也称为功能标志)使您可以进一步将不同软件版本的部署与向用户发布功能脱钩。 您可以根据需要经常部署新版本的应用程序,同时禁用某些功能:向用户发布功能仅是将其“打开”的问题。

黑暗发射和功能切换的优势

像金丝雀版本一样,黑暗启动和切换功能使您能够以受控方式推出新功能。 但是,黑暗启动和功能切换不需要您在环境中同时运行应用程序的多个版本,而对于金丝雀发行版则必须这样做。

暗发射或功能切换的缺点

暗启动和功能切换可能很难采用,因为它们要求您更改要部署的应用程序。 开发团队必须建立在代码级别暗启动或将功能切换到应用程序的功能,但是对于具有大量代码库的成熟应用程序而言,这样做可能是一个挑战。

回滚暗启动或功能切换

回滚已经暗启动或由功能切换控制的功能相对简单。 如果是暗启动,则只需删除允许用户访问该功能的界面。 并且在功能切换的情况下,您将禁用对该功能的访问。

Master Dark使用XebiaLabs DevOps平台启动并切换功能

黑暗的启动和功能切换主要影响应用程序的体系结构,但是如果您实施自动化的,可重复的部署过程以在团队和应用程序之间实现一致性和重用,那么在企业范围内扩展其使用将产生最积极的影响。 XebiaLabs DevOps平台使暗启动和切换功能变得容易。 借助XebiaLabs,您可以策略性地部署功能,并以与技术部署脱钩的方式向用户发布新功能。