歴史
起源
BFE (Beyond Front End) は Baidu 社内のトラフィックプラットフォームとして始まった。プラットフォームの構築は会社の受信 Web トラフィックを捌くため 2012 年頃に始まった。2020 年末には 1 日あたり兆単位のリクエストを転送し、ピークでは毎秒 1000 万超に達した (README overview、出典 [2])。
このうち本 OSS プロジェクトになったのは転送エンジン、つまり実際に HTTP をプロキシするデータプレーンのプロセスである。Baidu は 2019 年 7 月にこのエンジンを GitHub で公開した (リポジトリの created_at は 2019-07-31、出典 [3])。設計の根拠は baidu/bfe-book に書籍として英中両言語でまとめられており、これがプロジェクトの設計思想の一次資料である (出典 [4])。
年表
| 年 | マイルストーン |
|---|---|
| 2012 | Baidu が社内 BFE トラフィックプラットフォームの構築を開始 (出典 [2]) |
| 2019 | 転送エンジンを GitHub で OSS 化 (出典 [3]) |
| 2020 | 2020-06-25 に CNCF Sandbox として受理 (出典 [1]) |
| 2020 | エンジンが 1 日約 1 兆リクエスト、ピーク毎秒 1000 万超を転送 (出典 [2]) |
| 2026 | 2026-05-08 に v1.8.2 をリリース (出典 [3]) |
どう進化したか
本リポジトリはデータプレーンのみである。時間とともにプロジェクトは設定管理を同じ組織配下の別リポジトリへ分離した。API-Server、Conf-Agent、Dashboard に加え、Kubernetes 向けの ingress-bfe である (出典 [7])。これにより転送エンジンはトラフィックに専念でき、設定の生成・検証・配布は別コンポーネントが担う。
エンジンの機能面はモジュールシステムを通じて成長した。リポジトリは bfe_modules/ 配下に 30 個の組み込みモジュールを同梱し、アクセスログ、リライト、ブロック、複数の認証方式、圧縮、トレーシング、WebAssembly プラグインホスト (mod_wasmplugin) をカバーする。新機能は中核の転送ループの変更ではなくモジュールとして追加される傾向がある。
ロードバランサは Envoy の外部処理連携も得た。GSLB (Global Server Load Balance、広域負荷分散) 層は外部プロセッサを呼ぶ EPP モードで動作でき、Envoy の go-control-plane の型を import している (bfe_balance/bal_gslb/bal_gslb.go:39)。
現在地
BFE は引き続き CNCF Sandbox プロジェクトである。ドキュメント基準コミット時点でバージョンは v1.8.2、2026-05-08 リリースである (出典 [3])。開発は develop ブランチで行われ、基準コミット d8d6dcb は v1.8.2 リリース直後に位置する。データプレーンと各コントロールプレーンのリポジトリは bfenetworks 組織配下で別々にメンテされ続けている (出典 [7])。