功能标志和分析:突出展示您的最佳功能。
功能开关让您可以灵活地将版本发布与部署分离。您可以根据任意数量的条件启用或禁用功能。但问题往往仍然存在:如何判断何时应该使用功能开关?如何确定何时可以安全地将功能推广到下一个目标用户群或所有用户?如何判断某个功能运行异常并需要禁用?应用程序监控和分析可以帮助解答这些问题,并显著提高功能开关策略的有效性。接下来,我们将探讨一些常见的功能开关用例,以及分析如何帮助开发人员快速做出明智的决策。
早期测试。功能开关的最佳用途之一是在开发过程早期测试功能。在真实的最终用户环境中,使用真实用户数据进行有效测试至关重要。世界上所有的合成工具都无法取代真实环境。当某个功能准备好进行有限发布或预览(甚至是 Beta 版)时,可以使用功能开关将该功能在生产环境中提供给特定用户群体。通常,公司会首先按内部员工和 QA 团队进行划分。下一个子集可能是选择加入 Beta 测试的用户。然后,您可以进一步进行定向部署,例如,将 5%、10%、50% 或 100% 的功能部署到特定用户群体,例如:来自北美且使用应用程序中特定功能的新用户。
临近发布日期才推出的功能,我们都经历过。某个功能勉强挤进版本,可能在发布前你没能像预期那样进行充分的测试。有些人觉得在生产环境中测试很刺激,但如果你不喜欢,也别担心。你可以把这个临近发布日期才推出的功能封装成一个功能开关。如果发现任何bug,只需使用这个开关关闭或暂停该功能即可。这样就避免了因为某个功能可能存在问题而不得不回滚整个版本。
分析优势。对于这两种用例,您都可以使用分析来了解用户体验。该功能是否按预期运行?当流量开始涌入时,该功能是否响应迅速?该功能是提升还是损害了我的关键绩效指标 (KPI)?了解用户体验的这些方面将有助于您在正式发布 (GA) 之前,对功能进行迭代优化。优秀的应用性能管理 (APM) 解决方案可以帮助您获得这些洞察。
金丝雀部署。在金丝雀部署方案中,一项功能会先发布给一小部分目标用户,以测试其是否已准备好正式发布。金丝雀部署的用户数量会逐步增加,并在此过程中进行测试。如果出现问题,只需将流量重定向回之前的版本即可。一旦所有用户都迁移完毕,金丝雀部署就成为当前软件版本。CloudBees Rollout 支持这种渐进式发布方式。
分析优势。如何判断是否出了问题?在正式发布新版本之前,您需要了解问题所在以及其系统性影响。此外,您还需要深入了解根本原因。您可以利用应用性能管理 (APM) 和日志分析来帮助您了解崩溃率、错误率和延迟等指标。优秀的日志分析解决方案能够关联这些指标,从而揭示根本原因。
A/B 测试。类似于金丝雀发布,A/B 测试首先在一部分用户中测试某个功能,并根据测试结果将其推广到所有用户。然而,金丝雀发布更侧重于功能的稳定性和可用性。A/B 测试则用于验证关于用户行为的假设。例如,我可能假设在用户连接应用程序之前,在试用体验中展示产品导览比在用户连接应用程序之后展示相同的产品导览更能提高付费用户的转化率。我可以使用功能开关来测试这种体验。与我预期结果存在因果关系的体验将被大规模推广。
分析优势。A /B 测试分析可以帮助您找到所需的因果关系。当您考虑将 A/B 测试与基于行为的群组划分相结合时,这尤其令人兴奋。我们最喜欢的工具之一 Amplitude 可以通过观察用户与产品的互动方式(而非职位、行业等)来创建用户群组。它使我们能够根据用户的行为(而非我们臆想的用户群体)来测试他们。
分析是良好功能开关管理策略的重要组成部分。无论您是将应用性能管理 (APM) 解决方案、日志分析还是商业智能软件与功能开关集成,您都比那些仍然把功能开关当作“糟糕!关掉它!关掉它!”按钮的人领先了不止一步。
文章来源:https://dev.to/cloudbees/feature-flags-and-analytics-putting-your-best-features-forward-14gf