Feature Flag 技術在國外產品研發中被廣泛使用,被視為提高研發效率的利器。在國外,Feature Flag 技術已經得到廣泛普及並被企業廣泛採用,許多知名公司都在使用該技術提高產品開發和交付的效率,例如 Facebook、Google、Netflix等,同時也有很多相關的開源專案和服務。而在國內目前只有一些大型公司在使用該技術做功能釋出,位元組跳動的火山引擎、滴滴出行的 Apollo 等,但開源專案相對較少。
作為 Feature Flag 技術的佈道者和受益者,下面我們來盤點一下國內外有哪些 Feature Flag 技術的開源專案。
一、FeatureProbe
FeatureProbe 是一款國產的功能豐富的 Feature Flag(功能開關)管理平臺,旨在幫助團隊實現持續交付和逐步釋出功能,它包含了灰度放量、AB實驗、實時配置變更等針對『功能粒度』的一系列管理服務,讓團隊可以更好地控制功能釋出和訪問。
專案特點
功能標誌管理: 允許團隊建立和管理功能標誌,以在不同使用者群體中逐步釋出和控制功能。它提供了靈活的標誌配置選項,如按目標使用者、分段規則和百分比進行功能分發。
實時功能切換: 功能標誌可以實時切換功能狀態,而無需重新部署程式碼。這使得團隊能夠在生產環境中靈活地控制功能的開啟和關閉,降低風險並提供更好的使用者體驗。
A/B 測試: 提供了 A/B 測試功能,使團隊能夠比較不同功能變體的效果,並基於實時資料做出更好的決策。
視覺化儀表板和分析: 提供了直觀的儀表板和分析工具,以幫助研發團隊視覺化功能標誌的使用情況、效果和影響。這使得團隊能夠更好地瞭解功能的效果,並進行資料驅動的決策。
安全和穩定性: 注重安全和穩定性,提供了安全的資料傳輸和儲存,以及高可用性和強大的效能,確保功能開關的可靠執行。
開源協議
二、Unleash
Unleash 是一個開源的Feature Flag(功能開關)和實驗平臺,用於管理和控制軟體應用中的功能釋出。可以根據自定義的規則進行安全測試和釋出新功能,目前 Unleash 提供了一些主流語言的整合框架,可以適用於不同模組的專案。
專案特點
支援第三方整合: 具有廣泛的生態系統支援,可以與多種第三方平臺和工具進行整合,包括分析平臺、監控工具等,提供全面的功能和擴充套件性。
支援部分主流語言SDK: 提供備用機制和SDK支援,可以在發生故障或異常情況時快速切換回備用方案,並保持本地備份,確保系統的可靠性和穩定性。
效能監控: 提供業務效能監控功能,可以實時監測和分析功能標誌的影響和效能,幫助團隊及時發現和解決問題。
漸進式釋出管理: 強大的漸進式釋出管理功能,可以靈活控制功能的逐步釋出。
開源協議
三、GrowthBook
GrowthBook 是一個開源的Feature Flag(功能開關)和實驗平臺,指在幫忙企業進行資料驅動的決策,並提供了一系列的功能,包括精準使用者定位、漸進式釋出、A/B 測試以及切換功能的開啟和關閉等功能。
專案特點
可訪問性: 為所有團隊服務,無論是產品開發團隊、資料科學團隊還是市場營銷團隊,他們都可以利用 GrowthBook 進行資料驅動的決策和實驗。
精準使用者定位功能: 提供了先進的實驗定位功能,使團隊能夠準確地將實驗目標定位到特定使用者群體或使用者細分。這種精細的定位能夠提供更準確的實驗結果和更有針對性的決策。
模組化、可定製化: 可以根據使用者的需求進行靈活配置和擴充套件。使用者可以選擇使用完整的測試平臺、外掛切換工具或資料分析引擎,以構建適合自己團隊的解決方案。
不限制功能開關: 使用者可以建立和管理任意數量的標誌。這使得使用者可以自由地控制功能的釋出和功能實驗,以更好地滿足業務需求。
開源協議
四、Flipt
[Flipt] (github.com/flipt-io/flipt) 是一款全開源功能釋出及管理專案,它支援所有基本的功能標誌用例,例如基於段(例如新使用者、電子郵件、地區等)進行功能釋出,多個變體以及百分比閾值用於功能釋出。
專案特點
強大的 REST API: 提供強大的 REST API,使使用者能夠靈活地管理和控制功能標誌。
多資料庫支援: 支援多種資料庫,包括 Postgres、MySQL、SQLite和CockroachDB,以滿足不同的資料儲存需求。
資料匯入和匯出: 支援資料的匯入和匯出,使使用者能夠將資料儲存為程式碼或進行靈活的資料遷移。
開源協議
五、Harness
Harness 是一種持續交付和自動化部署平臺,旨在幫助團隊實現更快速、更可靠的軟體交付過程。它提供了一套全面的工具和功能,包括持續整合、持續部署、部署管道管理、自動化測試和監控等,FeatureFlag 是 Harness 其中一個功能模組。
專案特點
部署自動化: 提供了強大的部署自動化功能,可實現多環境部署、滾動升級、回滾等操作,減少人工錯誤和時間消耗
監控和報告: 整合了強大的監控和報告功能,可以實時監測應用程式的效能、健康狀況和日誌,提供視覺化的指標和報告。
功能審計需求: 透過 RBAC(基於角色的訪問控制)和審計日誌等功能,支援管理需求,確保安全性、合規性和可追溯性
工作流程整合: 可以與 GitOps 和 YAML 等工作流程進行整合,使團隊能夠在熟悉的工作環境中進行交付和協作。
開源協議
Harness 提供了不同層次的協議選擇,以滿足不同公司和團隊的需求,更多內容可以前往 GitHub上檢視。
總結
FeatureProbe | GrowthBook | Unleash | Flipt | Harness | |
---|---|---|---|---|---|
功能開關管理 | ✅ | ✅ | ✅ | ✅ | ✅ |
A/B測試 | ✅ | ✅ | ✅ | ✅ | ✅ |
視覺化配置介面 | ✅ | ✅ | ✅ | ✅ | ✅ |
自定義策略 | ✅ | ✅ | ✅ | ✅ | ✅ |
多環境支援 | ✅ | ✅ | ✅ | ❌ | ✅ |
變更審批 | ✅ | ❌ | ❌ | ❌ | ❌ |
使用者分析 | ✅ | ✅ | ❌ | ❌ | ✅ |
指標分析 | ✅ | ✅ | ❌ | ❌ | ❌ |
本地化技術支援 | ✅ | ❌ | ❌ | ❌ | ❌ |
部署複雜性 | 簡單 | 中等 | 高 | 中等 | 高 |
多語言SDK支援 | 支援 10+ SDK | 支援7+ SDK | 支援 10+ SDK | 支援7+ SDK | 支援 10+ SDK |
關於我們
FeatureProbe 是國內首家功能開關管理開源平臺,它包含了灰度放量、AB實驗、實時配置變更等針對『功能粒度』的一系列管理操作,完全開源,可以放心直接使用。
當前 FeatureProbe 作為一個功能開關管理平臺已經使用 Apache 2.0 License 協議完全開源,你可以在 GitHub 和 Gitee 上訪問原始碼,你也可以在上面給提 issue 和 feature 等,歡迎加入我們,風裡雨裡,都在等你!
GitHub: github.com/FeatureProbe/FeaturePro...
Gitee: gitee.com/featureprobe/FeatureProb...
體驗環境: featureprobe.io/
本作品採用《CC 協議》,轉載必須註明作者和本文連結