下载我们的免费电子书43 A / B检测案例研究,从世界领先的公司寻找考试创意和灵感。 现在下载

优化博客

构建您的实验计划的提示和技巧



作为开发人员,您可能会奇异于使用的好处 特色标志 vs. 蓝绿色部署 并想知道何时使用哪种工具。快速底漆:蓝绿色部署涉及将用户流量重定向到托管更新应用程序的其他服务器集。虽然功能标志是基于代码的,并且通过在应用程序级别进行更改,使用户能够通过更改来查看新更新。

此博客帖子将概述旗帜如何解决与蓝绿色部署相似的挑战,但具有更多控制,同时需要较少的工程时间。让我们来看看:

一个钝的工具:蓝绿色部署

在蓝绿色部署中,您可以指定服务器的一部分,以托管应用程序的新版本以及服务器的另一部分以托管应用程序的先前版本。在下图中,蓝色服务器具有当前版本,而Green Group则托管您的新版本。要将用户公开到更新,您必须与运营团队协调,通过负载均衡器(也称为流量路由器)移动流量。 

蓝绿色部署

如果您正在进行更新多个功能的版本,并且您可以在其中一个中发现一个错误,可以通过将流量转换回上一个版本或“蓝色组”来轻松恢复到以前的版本。但是,蓝绿色部署是一种钝器解决方案,因为它们不提供特征级控制。您必须回滚整个更新以关闭一个功能。

蓝绿色部署的利弊

  • 亲: 通过将流量滚动到蓝色环境,轻松恢复释放
  • 亲: 不需要添加额外的代码到您的应用程序
  • 骗子: 滚动整个释放而不是仅仅是错误的功能 
  • 骗子: 不启用特征级粒度,只需发布​​级别更改
  • 骗子: 在服务器级别拆分流量,难以授予或限制对特定用户的访问权限
  • 骗子: 通常需要开发人员和操作来协调对基础架构的访问
  • 骗子: 随着负载平衡器要求所有连接排出时,可以慢开滑

精确解决方案:功能标志部署

特色标志 (也称为 功能切换),软件更新中的每个功能都有自己的标志或切换,可以独立地从完整版本中控制。与A. 功能标志服务,如优化卷展栏,您可以在功能标志平台中创建标志’S UI,然后在功能标志代码中包装新功能或代码路径。 

功能标志/功能切换

这一次,如果您在其中一个功能中注意到错误,则不必回滚整个版本。您只需关闭功能管理仪表板中的功能,即可关闭屏蔽功能即可关闭故障功能。通过这种方式,功能标志提供更多控制,更响应,并帮助节省工程时间与蓝绿色部署,这需要跨团队协作并在服务器上维护多个集合版本。 

功能标志部署的优点和缺点

  • 亲: 轻松切断单个错误的功能
  • 亲: 启用特征级粒度
  • 亲: 可以轻松地对用户,特定观众或用户的百分比来授予要素
  • 亲: 软件工程师可以在不涉及IT / DEVOPS的情况下进行更改
  • 骗子: 需要添加额外的代码在您的申请中,如果您愿意,可以创建技术债务’t have a 良好的做法 删除现有标志

滚动仅向用户的子集进行更新

在思考时,使用特征标志来释放功能的力量变得更加明显 金丝雀释放 或在向每个人推出之前,将功能释放到用户群的最小子集。当您使用功能更新的新版本推出新版本时,您可能会想要使用小组测试更改,以确保一切正常。在软件开发中,这被称为金丝雀测试/部署或分阶段/相控卷。 

金丝雀试验 允许将新的代码或功能释放到一个小用户的子集中,以验证在将其释放到更大的受众之前的代码。通过将释放限制为选择受众,您可以最大限度地减少新版本的爆炸半径,并且团队可以在向所有用户推出之前验证功能和性能。这种方法还有助于检测从开发或分期环境移动到生产时才能变得可见的问题。 

可以通过蓝绿色部署和功能标记来执行金丝雀测试,但在服务器级别的流量存在相同的挑战。

通过蓝绿色部署的金丝雀测试: 而不是将所有流量从将应用程序当前版本的应用程序的蓝色服务器指向到绿色的服务器,而不是将百分比移动到新版本。但是,您仍然没有在功能级别控制,并且如果一个功能已损坏,则需要回滚整个版本。此外,如果您想要更多控制客户接收对功能的访问权限,则在服务器级别定义规则是复杂的。

金丝雀试验

金丝雀通过功能标志部署测试: 使用功能标志,您可以使用每个功能进行金丝雀测试,通过选择您想要曝光给定特征的流量部分,每个功能都具有开/关开关。如果一个特定的功能有一个错误,你可以简单地关闭它而不是恢复到上一个​​版本。您还可以使用受众的目标来为客户提供特定客户或段的功能(例如,仅限免费层的客户)。

搭档

  • 特征标志提供更精细,易于使用的解决方案,可在释放新功能时降低风险
  • 功能标志Empower软件开发团队管理其发布并减少对运营支持的需求
  • 功能标志可用于在用户级别运行金丝雀测试,提供比服务器级别更多的控制

如果您希望开始使用功能标志,请查看我们的免费解决方案: 优化推出.

优化X.