船舶越快,风险越来越少。获得优化的推出,为开发人员提供免费功能标志。 建立免费账户



低延迟特征标志促销

第一次技术实施挑战之一 特色标志 在快速(A.K.A.低延迟)决定和动态改变该决定的能力之间的平衡幅度突出平衡。 

当Codebase的逻辑取决于要素标志的返回值时,请说出函数 isfeatureenabled.,你会想确保 isfeatureenabled. 尽可能快地返回其决定。 

在最坏的情况下,如果您依靠外部数据库来存储是否启用了该功能,则风险通过在未启用新功能时,您可以通过在Internet上需要往返外部网络请求来增加应用程序的延迟。 

在最好的表现中, isfeatureenabled. 作为变量或环境变量,函数是true或false的true或false,但是丢失动态更改功能标志的值的功能,没有代码部署或重新配置您的应用程序。 

在我作为工程师和工程经理的经验中,我已经看到了多种方法,可以实现快速和动态特征标志之间的平衡,以满足不同应用程序的需求和功能。下面,我将通过我的免费电子书行走一个示例架构 自信地船舶随着逐步的交付和实验 这促使这种平衡良好,适用于许多平台。

平衡快速和动态功能标志的架构将:

  • 应用程序启动时获取最新功能标志配置
  • 缓存功能标志配置内存内存和磁盘,以便可以使用低延迟和后续应用程序开始做出决策
  • 侦听要素标志配置的更新,以便尽可能地将更新推向应用程序
  • 按规则的间隔调查更新功能标志配置,因此如果推送失败,则仍然保证应用程序在某种明确的间隔内具有最新的功能配置

在启动时获取和缓存配置可确保您可以评估API isfeatureenabled. 不必制作任何 缓慢阻止网络请求 对于用户使用应用程序时,对于特征标志的状态。存储配置在磁盘上确保后续应用程序开始’t必须等待初始获取完成。

更新的侦听和轮询可确保您的功能标志即使您的应用程序不经常重新启动。

下图显示了该架构在管理面板之间的时间表中播放如何在控制功能标志的状态和依赖于该功能标志信息的客户端应用程序或应用程序服务器之间的时间表之间播放。从上到下阅读图表作为时间轴:

功能标志服务架构

示例功能标志服务架构

作为示例,如果它已经缓存在手机上,移动应用程序最初可以尝试(1)加载功能标志配置。无论是否存在特征标志配置,手机将(2)获取最新的功能标志配置,因为应用程序启动,然后(3)缓存此最新功能标志配置在手机上内存。然后移动应用程序可以(4)轮询定期,10分钟的间隔,以确保功能标志仍然是最新的,并且(5)收听更多的实时推送功能标志中的任何更改的通知。随时通过电话接收功能标志的更新,它可以再次(3)缓存内存中的内存和磁盘的更改,以便(1)启动更快。

通过此设置,应用程序启动的性能最小化,功能标志决策基于 内存数据 功能标志仍然保持最新,因为实时推动或常规轮询,所做的任何更新。

对于应用程序服务器示例,除了使用(5)而不是使用推送通知,每个步骤都是相同的(5) Webhooks. 或服务器端事件实时侦听任何更新。

对于前端应用示例,除了使用推送通知或Webhooks,每个步骤都是相同的(5) 网套 或者 服务器发送的事件 在实时倾听任何更新。

开发人员可能会发现这种架构吸引人,因为它’设置成立相对简单,导致快速和动态的功能标志,并且易于调整以适应各种各样的应用。如果你不’不想花时间建立这种类型的基础设施,绝对结账 优化’免费的Feature Flag产品,将类似的架构包装为免费服务!

让我知道你的想法!

您如何设置功能标志基础架构以平衡快速和动态的决策?给我留言 松弛社区 或者在推特上找到我 @Asametrical..

这是一系列最佳实践的一部分,以帮助您的公司成功实施 逐步交付 和实验充满信心地发货。

如果您喜欢此内容,请查看我的免费电子书: 自信地船舶随着逐步的交付和实验 从刚开始缩放这些技术宽的速度开始提供更多最佳实践。

如果您正在寻找要开始的平台,请退房 优化’s free offering。谢谢!

优化 X