百度萬億流量的(de)轉發引擎BFE宣布開源

時(shí)間:2019/11/25 9:22:25浏覽次數:1147
BFE(Baidu Front End,百度統一前端)是百度的(de)統一七層流量轉發平台。BFE平台目前已接入百度大(dà)部分(fēn)流量,每日轉發請求接近1萬億,峰值QPS超過1000萬。在2019年百度春晚紅包活動中,BFE平台在超大(dà)用(yòng)戶壓力、數次流量波峰下(xià)平穩運行,保證了(le)春晚紅包活動的(de)順利進行。

作爲綜合的(de)流量轉發平台,BFE平台集成了(le)以下(xià)4大(dà)功能:

  • 流量接入和(hé)轉發:支持HTTP、HTTPS、HTTP/2、QUIC等多(duō)種協議(yì),并支持強大(dà)的(de)應用(yòng)層路由能力

  • 流量全局調度:支持由外網流量調度和(hé)内網流量調度共同構成的(de)全局流量調度系統

  • 安全和(hé)防攻擊:支持黑(hēi)名單封禁、精細限流和(hé)應用(yòng)層防火牆(WAF)等多(duō)種防攻擊能力

  • 實時(shí)數據分(fēn)析:支持分(fēn)鐘(zhōng)級的(de)超高(gāo)維度時(shí)序報表

作爲BFE平台的(de)核心組件,BFE轉發引擎從2012年開始研發,并于2014年使用(yòng)Go語言完成重構。

由于基于Go語言,和(hé)業界普遍使用(yòng)的(de)Nginx開源軟件相比,BFE具有以下(xià)優勢:

  • 研發效率高(gāo):Go語言的(de)開發效率遠(yuǎn)高(gāo)于C語言(及Lua),在代碼的(de)可(kě)維護性方面也(yě)有巨大(dà)優勢。

  • 系統的(de)安全和(hé)穩定性高(gāo):Go語言沒有C語言固有的(de)緩沖區(qū)溢出隐患,規避了(le)大(dà)量的(de)穩定性和(hé)安全風險;另外對(duì)于異常可(kě)以捕捉,保證程序在快(kuài)速叠代上線的(de)情況下(xià)也(yě)不崩潰。

有理(lǐ)由相信,從長(cháng)期趨勢看,基于更高(gāo)級編程語言的(de)軟件系統會逐步取得(de)競争的(de)優勢。CPU等硬件資源的(de)價格仍會快(kuài)速下(xià)降,而開發人(rén)力成本、項目研發風險、系統穩定性/安全性方面會成爲更重要的(de)決策考慮。從這(zhè)方面出發,主要基于C語言的(de)Nginx會逐步衰落,而類似BFE這(zhè)樣的(de)基于更高(gāo)級編程語言的(de)軟件會逐步成爲主流。

另外,BFE在設計中,還(hái)特别增加了(le)企業級應用(yòng)場(chǎng)景的(de)考慮:

  • 轉發場(chǎng)景的(de)直接支持:和(hé)Nginx這(zhè)樣從Web Server轉型爲Proxy的(de)進化(huà)路徑不同,BFE直接爲轉發場(chǎng)景設計,從轉發模型和(hé)轉發配置方面更滿足轉發場(chǎng)景的(de)需求

  • 多(duō)租戶的(de)支持:在雲計算(suàn)的(de)場(chǎng)景下(xià),多(duō)租戶複用(yòng)是普遍的(de)需求。在BFE的(de)設計中,内置提供了(le)多(duō)租戶的(de)支持

  • 結構化(huà)的(de)配置:BFE的(de)配置設計,大(dà)量使用(yòng)JSON這(zhè)樣的(de)結構化(huà)方式,便于和(hé)相關配置管理(lǐ)系統對(duì)接

  • 豐富的(de)監控探針:作爲一個(gè)工業級軟件,在BFE的(de)設計中充分(fēn)考慮了(le)線上監控的(de)需求,BFE程序通(tōng)過HTTP方式向外暴露數千個(gè)内部狀态變量

爲了(le)促進負載均衡技術的(de)交流和(hé)發展,BFE轉發引擎于2019年夏天正式開源。

https://github.com/baidu/bfe

BFE目前已開源并支持以下(xià)重要能力:

1、主流網絡協議(yì)接入

  • 支持HTTP/HTTPS/SPDY/HTTP2/WebSocket等

  • 支持TLS/HTTP/ WebSocket反向代理(lǐ)模式

2、可(kě)擴展插件框架

  • 通(tōng)過可(kě)擴展插件框架,快(kuài)速定制開發擴展模塊,滿足業務定制化(huà)需

  • 内置重寫、重定向、流量修改、封禁等豐富插件

3、基于請求内容的(de)分(fēn)流

  • 基于領域專有語言的(de)分(fēn)流規則,滿足複雜(zá)業務場(chǎng)景定制化(huà)流量轉發

  • 支持完備的(de)分(fēn)流條件原語集,包括基于請求内容(URI/Header/Cookie等)以及請求上下(xià)文(IP、協議(yì)、标簽、時(shí)間等)的(de)條件原語。

4、靈活的(de)負載均衡策略

  • 支持集群級别負載均衡及實例級别負載均衡,實現多(duō)可(kě)用(yòng)區(qū)容災及過載保護

  • 内置加權輪詢、加權最小連接數策略,基于IP或請求内容識别用(yòng)戶實現會話(huà)保持

關于BFE開源版本詳情及後續路線圖,有興趣的(de)用(yòng)戶請關注

https://github.com/baidu/bfe,或登錄github直接搜索BFE。

BFE轉發引擎的(de)研發過程,秉承了(le)百度優良的(de)研發傳統,經過了(le)多(duō)年的(de)技術積累。BFE已經在百度穩定運行多(duō)年,并曆經多(duō)次大(dà)流量的(de)洗禮。以開源貢獻社區(qū),是百度技術價值體現的(de)重要方式。希望能借BFE開源的(de)機會,與各位同行切磋技術,共建網絡接入領域的(de)開源技術生态。

IT服務外包
IT采購(gòu)
弱電工程
系統集成
網絡安全

咨詢電話(huà):

021-51697581
掃一掃,關注官方微信
實時(shí)掌握逾仕最新動态
Copyright 2005-2024 逾仕科技(IT服務外包/系統集成), All Rights Reserved 備案/許可(kě)證号: 京ICP證000000号