功能标记的 5 个最佳实践

全球各地的团队都使用功能标志(也称为功能切换)来进行可靠的发布和实验。功能标志的一个主要优点是它们提供了交付和发布之间的粒度分离。团队可以小心地向有限的受众推出功能,验证其功能和性能,并使用蓝绿、金丝雀和其他分阶段部署实践逐步向更多受众发布相同的功能。虽然使用功能标志有明显的好处,但随着时间的推移,它们会变得越来越复杂且难以维护。

最新的 DZone 参考卡

持续集成模式和反模式


虽然大多数团队开始使用依赖于内部系统的功能标志,但他们缺乏 管理功能标志的可扩展策略。随着代码中添加更多标志,应用程序变得更难以测试,团队成员更难以理解,并且更容易出错。有时,生产中的测试也会泄露问题并将漏洞暴露给公众。这给团队带来了额外的压力,并可能导致测试成本增加。如果没有大规模管理功能标记所需的工具,与功能标记相关​​的成本和风险通常会超过其收益。

按照功能标志管理的最佳实践,您可以轻松避免此类风险。以下是更好地管理功能标志的五种主要方法:

旗帜命名约定
功能标志的正确命名约定是更好管理的第一步。如果没有命名约定,团队成员可能会混淆标志,或更糟糕的是,创建具有相同名称的标志。如果您不仔细标记标志,团队中的某人可能会错误地触发这些标志,这在极端情况下可能会导致严重中断。采用命名约定,使您能够获取有关标记更改的类型或目的的信息。 CloudBees Rollout为您提供了一种独特的方法,可根据您所使用的编程语言的类型系统强制命名空间下的名称唯一性

记录
为了更好地跟踪更改,请考虑将所有更改记录到功能标志中。如果您设置了日志记录,则可以跟踪谁在何时引入了更改。在分布式团队中,这可以节省大量时间来确定谁负责或有权进行特定更改。功能分布的影响不仅限于工程团队,您应该将功能状态记录到您的使用分析、支持系统等中。通过 CloudBees Rollout,我们公开了展示处理程序,以允许您向所有不同的平台 报告。

旗帜分离
功能标志主要可以分为两种不同类型:发布标志和业务标志。发布标志允许开发和运营团队暂时隐藏正在开发或有风险的功能,而业务切换则用于稳定但必须隐藏或仅对选定受众可见的功能。在不同的配置文件中管理两种类型的标志可以帮助您降低复杂性并简化支持和调试。我们建议使用 CloudBees Rollout 标签系统对每种标志类型进行分类。 

访问控制
将功能标志交给非技术用户可能是一把双刃剑。使用精细的方法进行访问控制。不同的团队应该具有不同级别的可见性以及对环境和标志的访问权限。例如,您可以考虑对临时登录或具有支持凭据的登录施加限制。

生命周期管理卫生 
随着时间的推移,功能标志可能会增加代码的复杂性,其中包含已弃用的分支和从未发布或被其他内容替换的功能。当前标志可能与以前的标志冲突。确定哪些标志是必需的以及哪些标志是多余或过时的可能是一个挑战。解决这个问题的一种方法是查看功能标志是否始终打开或关闭;如果是这样,它就达到了目的。您还可以定义标志状态,以帮助您的团队区分短期标志和长期标志。状态字段可以在定义的时间段后动态更新,使您的团队能够确定哪些标志可以安全删除。

为了避免积累技术债务,您需要仔细管理标志,并对其更改、推出和停用进行精确控制和可见性。然而,对于自举的本土系统,所有这一切都可能具有挑战性。企业级功能 标志管理 系统可以使您的任务变得更加轻松。

你可能感兴趣的:(集群)