配置中心與 Feature Management的區(qū)別

很多人在一開始了解功能管理(Feature Management)的時候,會疑惑功能管理與配置中心有什么區(qū)別,在這篇文章中我們來講講二者的區(qū)別,在對比兩者之前我們先看下它們是什么、分別能解決什么問題以及常見的實現(xiàn)方案有哪些。

一、什么是配置中心?

通過配置中心將應用程序中結構化配置進行統(tǒng)一管理,當配置變更后能夠在應用程序中實時生效,有效避免了傳統(tǒng)模式下修改應用程序配置需要打包、部署、測試、上線等一系列繁瑣流程。廣泛用于如微服務應用架構下的配置管理、應用業(yè)務參數(shù)配置、文案配置等需要滿足快速對線上變更的業(yè)務場景。

配置中心的具體實現(xiàn)主要有兩大方向:自建或使用第三方組件。最簡單的自建方案如將配置存儲在數(shù)據庫中,程序定時從數(shù)據庫中加載最新配置以實現(xiàn)快速變更生效。也可以直接使用成熟且功能完備的第三方開源組件,如 Apollo、Nacos 等。

二、什么是Feature Management?

功能管理(Feature Management,也有譯作特性管理)是管理「功能」生命周期的軟件工程實踐,它包含了漸進式發(fā)布、定向投放、A/B 實驗、實時配置變更等針對「功能」粒度全生命周期管理。在持續(xù)交付實踐中,它使我們能夠做到讓每一個變更都能獨立部署,并通過漸進式發(fā)布來減少變更風險;能夠感知到每一個功能在線上真實環(huán)境下用戶的使用情況如何;能夠清晰地看到新功能產生的業(yè)務價值等等。

一個完備的 Feature Management 系統(tǒng)不僅要實現(xiàn)「功能」的全生命周期管理功能,還要提供高效的「功能開關」規(guī)則下發(fā)和多語言客戶端獲取開關結果等能力,而國內原生支持功能管理實踐的開源工具平臺只有 FeatureProbe 。

三、兩者的區(qū)別和關系

從上面定義不難看出兩者主要區(qū)別是解決的問題不一樣,配置中心解決的如何利用配置實現(xiàn)對線上快速變更,而 Feature Management 解決的是如何通過管理「功能」生命周期來實現(xiàn)對功能粒度的精準管控。

從技術角度來看,F(xiàn)eature Management 系統(tǒng)也需要實現(xiàn)對線上應用程序快速變更。例如當我們變更「功能開關」中人群放量規(guī)則后,Client 端(應用程序)需要能快速感知規(guī)則的變化來按最新配置規(guī)則執(zhí)行放量處理,從這點來看 Feature Management 系統(tǒng)可以依托配置中心來作為開關規(guī)則下發(fā)鏈路的底層實現(xiàn)。

這也決定了兩者系統(tǒng)組織結構上相似性,都至少需要由管理平臺、下發(fā)通路及 Client SDK 組成,不同的地方在于兩者的管理平臺所提供的業(yè)務能力不一樣。不過它們下發(fā)通路及 Client SDK 提供能力類似,對 Feature Management 而言需要下發(fā)開關(本質上也是一個配置)并為應用程序提供訪問功能開關的 SDK,而配置中心同樣也需要下發(fā)配置和為應用程序提供訪問配置內容的能力。

四、兩者相互是否具備替代性

既然兩者部分功能上有一定的相似性,那是否具備替代性呢?

比如我們是否可以直接使用配置中心當成 Feature Management 系統(tǒng)來使用呢?其實前面有提到,配置中心作為通用配置平臺并不關注配置內容,也就意味著你可以對配置做任何定義。以一個最簡單功能開關場景為例,比如控制功能A開啟或關閉,確實可以通過在配置中心上創(chuàng)建一個針對該場景的 K-V 配置當成開關來滿足最基礎的功能開關使用場景。

**但這對于 Feature Management 系統(tǒng)來說是最簡單的場景,還要做到對功能粒度的漸進式發(fā)布、將功能定向投放給特定人群、A/B 實驗及對 Feature 進行價值評估等等,而都是作為配置中心所不具備的。
**

既然配置中心系統(tǒng)無法替代 Feature Management 系統(tǒng),那反之用 Feature Management 系統(tǒng)替代配置中心是否可行?答案是肯定的。以 FeatureProbe 為例,在創(chuàng)建「功能開關」時支持4種開關返回值類型,分別是 Number、String、Boolean、JSON,意味著你可以在開關返回值中放上你原本在配置中心的配置內容,再利用 FeatureProbe 提供的 SDK 來獲取相應的配置返回值即可。

創(chuàng)建開關.png

五、總結

最后總結下配置中心與 Feature Management 不同維度的對比:

對比維度 配置中心 配置中心
使用場景 自定義結構化配置,滿足對線上快速變更。 <li> 持續(xù)集成 <li> 部署和發(fā)布解耦 <li> 漸進式發(fā)布<li>定向投放<li>A/B 實驗<li>預案降級
用戶角色 開發(fā)人員、QA。 <li>開發(fā)人員、<li>QA<li>PM<li>SRE<li>運營人員。
系統(tǒng)復雜性 較高,以純文本、JSON 或 K/V 方式管理,需要針對配置內容定制開發(fā)滿足不同需求。 較低,可視化配置,大部分功能管理場景開箱即用。
可觀測性 需要自行定制開發(fā)監(jiān)控邏輯。 可以實時監(jiān)控功能訪問情況并對功能進行效果評估
變更快速生效 支持。 支持,利用下發(fā)通路實現(xiàn)規(guī)則快速生效。
需要定期清理 很少,大多數(shù)配置和業(yè)務耦合性較高,需要配合業(yè)務長期使用。 經常,大多數(shù)功能開關都是短期性的,在使用完成后即可清理。

當前 FeatureProbe 作為一個 Feature Management 平臺已經使用 Apache 2.0 License 協(xié)議完全開源,你可以在 GitHub 和 Gitee 上直接訪問源碼,你也可以在上面給提給我們提 issue 和 feature哦,我們看到后會第一時間回復大家。

GitHub: https://github.com/FeatureProbe/FeatureProbe

Gitee: https://gitee.com/featureprobe/FeatureProbe

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容