很多人在一开始了解功能管理(Feature Management)的时候,会疑惑功能管理与配置中心有什么区别,在这篇文章中我们来讲讲二者的区别,在对比两者之前我们先看下它们是什么、分别能解决什么问题以及常见的实现方案有哪些。
一、什么是配置中心?
通过配置中心将应用程序中结构化配置进行统一管理,当配置变更后能够在应用程序中实时生效,有效避免了传统模式下修改应用程序配置需要打包、部署、测试、上线等一系列繁琐流程。广泛用于如微服务应用架构下的配置管理、应用业务参数配置、文案配置等需要满足快速对线上变更的业务场景。
配置中心的具体实现主要有两大方向:自建或使用第三方组件。最简单的自建方案如将配置存储在数据库中,程序定时从数据库中加载最新配置以实现快速变更生效。也可以直接使用成熟且功能完备的第三方开源组件,如 Apollo、Nacos 等。
二、什么是Feature Management?
功能管理(Feature Management,也有译作特性管理)是管理「功能」生命周期的软件工程实践,它包含了渐进式发布、定向投放、A/B 实验、实时配置变更等针对「功能」粒度全生命周期管理。在持续交付实践中,它使我们能够做到让每一个变更都能独立部署,并通过渐进式发布来减少变更风险;能够感知到每一个功能在线上真实环境下用户的使用情况如何;能够清晰地看到新功能产生的业务价值等等。
一个完备的 Feature Management 系统不仅要实现「功能」的全生命周期管理功能,还要提供高效的「功能开关」规则下发和多语言客户端获取开关结果等能力,而国内原生支持功能管理实践的开源工具平台只有 FeatureProbe 。</