Baidu trillion traffic forwarding engine BFE open source!

BFE (Baidu Front End, Baidu unified front-end) is a unified seven Baidu traffic forwarding platform. BFE platform Baidu currently has access to most of the traffic, forwarding requests daily close to 1 trillion peak QPS over 10 million. In 2019 Baidu Spring Festival red envelopes activities, BFE platform in the large user pressure, peak flow several times to run smoothly, to ensure the smooth progress of Spring Festival red envelopes activities.

Forward as an integrated platform for traffic, BFE platform integrates the following four major functions:

  • Access and traffic forwarding: support for HTTP, HTTPS, HTTP / 2, QUIC and other protocols, and supports a powerful application-layer routing capabilities

  • Traffic global scheduling: scheduling system supports global traffic flow from the external network and internal network traffic scheduling dispatch together constitute the

  • Security and anti-attack: support blacklist ban, fine and limiting the application layer firewall (WAF) and other anti-attack capability

  • Real-time data analysis: Support for ultra-high-level dimension minute timing report

As a core component of the platform BFE, BFE forwarding engine began to develop from 2012, and use the Go language to complete reconstruction in 2014.

As compared with Go language, and Nginx open source software industry generally used, BFE has the following advantages:

  • High R & D efficiency: Go language development efficiency is much higher than the C language (and Lua), in terms of maintainability of the code also has a huge advantage.

  • High security and stability of the system: Go language is not inherent in the C language buffer overflow problems, avoid a lot of stability and security risks; in addition to the exception can capture, to ensure that the program does not collapse in the case of rapid iteration on the line.

Reason to believe that the long term trend, based on a more high-level programming language software systems will gradually gain a competitive advantage. The price of hardware resources such as CPU will drop fast, and the development of human costs, project development risks, system stability / safety will become a more important decisions to consider. From this viewpoint, mainly based on the C language Nginx will gradually decline, while similar BFE this higher-level programming language based software will gradually become the mainstream.

In addition, BFE in the design, but also providing considering enterprise application scenarios:

  • Forwarding scene direct support: Nginx and so the transition from Web Server to a different evolutionary path of Proxy, BFE is forwarded directly to the design scene, more needs to forward a scene from the forward model and forwarding configuration

  • Multi-tenant support: In the cloud computing scenarios, multi-tenant reuse is widespread demand. In BFE design, built-in provides support for multi-tenancy

  • Structured configuration: BFE the configuration design, the use of such a large amount of the JSON structured way, and configuration management system to facilitate docking

  • Rich monitoring probe: as an industrial software, BFE design fit the specific needs of online monitoring, BFE procedures thousands of internal state variables is exposed over HTTP outwardly

In order to promote the exchange and development of load balancing technology, BFE forwarding engine in the summer of 2019 officially open.

https://github.com/baidu/bfe

BFE is currently open source and supports the following key capabilities:

1, the main access network protocol

  • Support HTTP / HTTPS / SPDY / HTTP2 / WebSocket, etc.

  • Support TLS / HTTP / WebSocket reverse proxy mode

2, the extension frame

  • Through an extensible plug-in framework, the rapid development of custom expansion modules, customized to meet business needs

    begging

  • Built-rewriting, redirection, traffic changes, and other rich plug banned

3, based on the request content shunt

  • Based on a proprietary shunt rule language areas to meet the complex business scenarios customized traffic forwarding

  • Support complete shunt primitives conditions, including the requested content based on the condition (URI / Header / Cookie, etc.) and the request context (IP, protocol, labels, time, etc.) primitives.

4, flexible load balancing strategy

  • Supports load balancing cluster level and instance-level load balancing, multi-area disaster recovery and overload protection available

  • Built WRR, weighted least connections policy, implement an IP-based session or maintaining user requested content identifier

About BFE open source version and follow the road map details , please pay attention to interested users

https://github.com/baidu/bfe, or log github direct search BFE .

BFE forwarding engine development process, uphold the fine tradition of research and development Baidu, after many years of accumulation of technology. BFE has stabilized at Baidu operation for many years, and after the baptism of multiple large flow. Contribution to the open source community, is an important way reflects Baidu technical value. Hopes to take the opportunity BFE open source, open source technology with colleagues to learn from eco-technology, to build the network access sector.

Guess you like

Origin www.oschina.net/news/111425/bfe-opensouced