A modern layer 7 load balancer from baidu
BFE
English | 中文
BFE (Beyond Front End) is a modern layer 7 load balancer from baidu.

BFE is a Cloud Native Computing Foundation (CNCF) sandbox project.

Introduction
BFE opensource project includes several components, which can be used together as a integrated layer 7 load balancer and traffic management solution.
BFE system consists of data plane and control plane:
- Data plane:responsible for forwarding user's traffic, including below component:
- Control plane:responsible for management and configuration of BFE system, including below components:
Refer to Overview in BFE document for more information
Besides, we also implement BFE Ingress Controller based on BFE, to fulfill Ingress in Kubernetes
🚀 Quick Start
This quick start is for users who want to get a running setup fast: build Docker images first, then deploy the Kubernetes example.
1) Build Docker images
From the repository root:
make docker
Notes:
make dockerbuilds both prod and debug images. Image tags are derived from theVERSIONfile.- To override the image name, set
BFEIMAGENAME, for example:
make docker BFEIMAGENAME=your-registry/bfe
If you want the Kubernetes deployment to use your locally built image, push it to a registry reachable by your cluster nodes (or load it into a local cluster), then update the bfe image mapping under images: in examples/kubernetes/kustomization.yaml.
For more details on building and pushing images (including make docker-push), see:
2) Deploy via Kubernetes example (kustomize)
cd examples/kubernetes
kubectl apply -k .
kubectl apply -f whoami-deploy.yaml
For details (image mirror settings, initialization notes, cleanup and finalizer troubleshooting, etc.), see:
Advantages
- Multiple protocols supported, including HTTP, HTTPS, SPDY, HTTP2, WebSocket, TLS, FastCGI, etc.
- Content based routing, support user-defined routing rule in advanced domain-specific language.
- Support multiple load balancing policies.
- Flexible plugin framework to extend functionality. Based on the framework, developer can add new features rapidly.
- Efficient, easy and centralized management, with RESTful API and Dashboard support.
- Detailed built-in metrics available for service status monitor.
Getting Started
- Data plane: BFE Server build and run
- Control plane: English document coming soon. Chinese version
- Kubernetes example (kustomize): examples/kubernetes/README.md
Running the tests
- See Build and run
Documentation
Book
- In-depth Understanding of BFE (Released in Feb 2023)
Contributing
- Please create an issue in issue list.
- Contact Committers/Owners for further discussion if needed.
- Following the golang coding standards.
- See the CONTRIBUTING file for details.
Authors
- Owners: MAINTAINERS
- Contributors: CONTRIBUTORS
Communication
- BFE community on Slack: Sign up CNCF Slack and join bfe channel.
- BFE developer group on WeChat: Send a request mail with your WeChat ID and a contribution you've made to BFE(such as a PR/Issue). We will invite you right away.
License
BFE is under the Apache 2.0 license. See the LICENSE file for details.