金秋十月,BFE 的好消息不斷。繼 BFE Ingress Controller 開源發佈後,BFE 控制平面也正式開源發佈,BFE 完整的開源解決方案已經可以供用戶選擇使用。
本次我們發佈了控制平面的 API-Server、Conf-Agent 和 Dashboard 三個組件,均採用Apache-2.0 License,現已可以下載源碼及安裝包。Github地址:https://github.com/bfenetworks
概述
BFE 是一個企業級的七層負載均衡系統,其核心轉發引擎於2019年7月開源,並於2020年6月成爲 CNCF 的 Sandbox Project。BFE 目前承載了包括百度在內的多個互聯網、金融、傳媒、交通運輸等行業頭部客戶的在線流量。
完整的 BFE 解決方案可以分爲數據平面和控制平面。2019年發佈的核心轉發引擎屬於數據平面,本次我們發佈了控制平面的核心組件後,用戶已經可以使用 BFE 已開源的各個組件,組成完整的七層負載均衡和流量接入平臺,滿足組織和企業的流量接入和管理需求。
系統架構
當前已開源的BFE控制平面包括以下三個組件:
-
API-Server: 對外提供Open API接口,完成BFE(BFE轉發引擎)配置的變更、存儲和生成。控制面必須組件。
-
Conf-Agent: 配置加載組件,從API-Server獲取最新配置,並觸發 BFE 進行配置熱加載。控制面必須組件。
-
Dashboard: 爲 BFE 用戶提供了圖形化操作界面,以可視化的方式對 BFE 的主要配置進行管理和查看。可選組件。
控制平面各組件及數據平面BFE轉發引擎之間的關係如下圖所示:
主要功能
本次發佈的BFE控制平面組件,主要有如下功能:
-
BFE集羣的統一管理:可統一管理一個BFE集羣內所有BFE轉發引擎實例的配置
-
租戶(產品線)管理:提供對配置的多租戶管理能力
-
用戶和角色管理:管理用戶,並賦予其系統管理員或租戶管理員權限
-
證書管理:統一管理TLS證書
-
服務後端管理:管理後端服務的實例、子集羣和集羣,並配置子集羣間負載均衡
-
路由管理:管理域名列表和轉發規則表
-
配置熱加載:配置變更後,自動觸發BFE轉發引擎熱加載最新配置
-
圖形化界面:支持Web方式的圖形化管理界面
-
API接口:支持符合RESTful規範的Open API接口
部署方式
您可以直接在各控制面組件對應的github項目的release頁面下載可執行文件和初始配置文件,或者通過編譯源碼的方式得到。
推薦的部署順序爲:API-Server-> Dashboard -> Conf-Agent 。
我們提供了詳細的部署文檔,可按照文檔完成控制平面各組件的部署:https://github.com/bfenetworks/api-server/blob/develop/docs/zh_cn/deploy.md
Dashboard
BFE Dashboard 提供了以 Web 網頁方式對 BFE 進行圖形化管理操作的界面。因篇幅所限,下面截取了子集羣管理頁面爲例,供大家一覽。
界面的佈局包括如下幾部分:
-
視圖選擇:系統管理員可以選擇系統視圖對系統資源進行管理,或選擇租戶視圖對租戶內的資源進行管理。租戶管理員只有租戶視圖,對其具有權限的租戶內的資源進行管理。
-
語言切換:當前支持中文和英文。
-
導航欄:提供側邊導航欄和頂部導航欄,作爲功能頁面的入口。
-
功能頁面主體:每個功能頁面提供一個特定功能,通常是對某個資源/配置的管理,包括查看、搜索、添加、編輯、刪除等操作。
更多信息,見BFE Dashboard項目文檔:https://github.com/bfenetworks/dashboard
後續計劃
接下來,我們將提供更多文檔和最佳實踐分享,幫助更多用戶方便地搭建BFE流量接入平臺。我們也會繼續研發投入,將更多的BFE功能納入控制平面組件的管理,尤其是一些常用的擴展模塊。
期待您的使用反饋,並希望有更多人加入BFE開源社區一起建設。