繁体   English   中英

使用 Azure 功能管理器与常规配置值“true”和“false”相比有什么好处

[英]What is the benefit of using the Azure Feature Manager vs regular configuration value of "true" and "false"

从我在这里看到的情况来看,如果我设置了 Azure App Config 并希望其中有一个功能标志,为了读取它的值或利用它,我必须:

  1. 安装一个 nuget,与我已经需要的 App Config 的 Microsoft.Extensions.Configuration 分开
  2. 在“CreateHostBuilder”中添加“UseFeatureFlags”
  3. 在启动服务中注册功能管理
  4. 有一个枚举,专门为每个标志设计
  5. 在“_ViewImports”中注册功能管理器

而且我看不出 ALL THAT 给我带来什么好处,而不是让标准配置值带有“true”或“false”并跳过所有前面的步骤,而只是 go“if (featureValue)”。

那么,我不知道有什么好处值得经历所有这些麻烦呢?

关键功能可能是使用条件功能标志https://learn.microsoft.com/en-us/azure/azure-app-configuration/howto-feature-filters-as.net-core ,这要多得多比仅在您的配置中存储 boolean 更复杂。

使用一个始终支持这两者的库是一个更好的主意。

但是,如果您只打算使用 static 功能标志,您可能会认为付出的努力超过了它的价值。

简而言之,这里有一些优点:

  • 管理功能标志的集中位置
  • 标签选项
  • 特征过滤器

目标筛选器是一种内置筛选器,允许动态启用或禁用特定用户或组的功能。 例如,您可以使用定位过滤器在演示期间仅为特定用户启用功能。 您还可以使用它逐步向自定义组或“环”中的用户推出新功能,或者设置默认推出百分比以向所有用户发布功能。

除此之外,功能管理还可以帮助开发人员解决以下问题:

  • 代码分支管理:使用功能标志来包装当前正在开发的新应用程序功能。 默认情况下,此类功能是“隐藏”的。 您可以安全地发布该功能,即使它尚未完成,并且它将在生产中保持休眠状态。 使用这种称为暗部署的方法,您可以在每个开发周期结束时发布所有代码。 您不再需要跨多个开发周期维护代码分支,因为给定的功能需要多个周期才能完成。
  • 在生产中测试:使用功能标志来授予对生产中新功能的早期访问权限。 例如,您可以限制团队成员或内部 Beta 测试人员的访问权限。 这些用户将体验到完全逼真的生产体验,而不是测试环境中的模拟或部分体验。
  • Flighting :使用功能标志逐步向最终用户推出新功能。 您可以首先定位一小部分用户,然后随着时间的推移逐渐增加该百分比。
  • Instant kill switch :功能标志为发布新功能提供了一个内在的 safety.net。 您可以在不重新部署任何代码的情况下打开和关闭应用程序功能。 如有必要,您可以快速禁用某个功能,而无需重建和重新部署您的应用程序。
  • 选择性激活:使用功能标志来细分您的用户并向每个组提供一组特定的功能。 您可能拥有仅适用于特定 web 浏览器的功能。 您可以定义一个功能标志,以便只有该浏览器的用户才能看到和使用该功能。 使用这种方法,您可以在以后轻松扩展支持的浏览器列表,而无需进行任何代码更改。

资料来源: 功能管理概述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM