Awesome
BFE
English | 中文
BFE (Beyond Front End) is a modern layer 7 load balancer from baidu.
<img src="./docs/images/logo/horizontal/color/bfe-horizontal-color.png" alt="bfe logo" width="300" />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:
- BFE Server:BFE forward engine (this repository, bfenetworks/bfe). BFE Server performs content based routing, load balancing and forwards the traffic to backend servers.
- Control plane:responsible for management and configuration of BFE system, including below components:
- API-Server:provides API and handles update, storage and generation of BFE config
- Conf-Agent:component for loading config, fetches latest config from API-Server and triggers BFE Server to reload it
- Dashboard:provides a graphic interface for user to manage and view major config of BFE
Refer to Overview in BFE document for more information
Besides, we also implement BFE Ingress Controller based on BFE, to fulfill Ingress in Kubernetes
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
Running the tests
- See Build and run
Documentation
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.