DEV Community

Yilia for Apache APISIX

Posted on • Edited on • Originally published at api7.ai

API7 Solution: High Availability for B2B Services

In the course of client communication, a key question frequently arises: "Do you provide high availability? and how? "

In essence, when discussing high-availability architecture, the API7 Solution stands out as a noteworthy choice. The rationale lies in providing a suite of high-availability features designed to ensure the system can deliver available API services under diverse circumstances, whether achieving the availability of 99.99% or 99.999%.

In the business environment, the high availability of API services is particularly critical as it directly impacts client continuity and reliability. Why is high availability so crucial for B2B business? Because, as a key metric, any interruption or failure of API services during critical moments can severely impact client business, resulting not only in financial losses but also potentially damaging client reputation and credibility.

How Does API7 Achieve High Concurrency?

High availability is a technical concern and a business strategy that can earn client trust and loyalty. So, how is the high availability of the API7 Solution achieved? How does it ensure high availability?

Stateless Control Plane

Firstly, the key lies in the high availability of the control plane. The API7 Solution's control plane is the core of API configuration and management, adopting a stateless design. This means that components of the control plane can rapidly initiate new instances to replace potentially failing components. This stateless design enhances system resilience, allowing it to continue providing services even in the event of component failures.

PostgreSQL as Default Configuration Center

Another crucial decision is to use PostgreSQL as the default configuration center, rather than the etcd chosen by APISIX. This choice is made because running etcd may pose new challenges for enterprises, while PostgreSQL is a more familiar and maintainable database system. PostgreSQL is the only stateful component in the API7 Solution, with all other components being stateless. Furthermore, PostgreSQL provides mature high-availability solutions, including master-slave and multi-master backup, ensuring that even if the main node of the configuration center fails, a standby node can quickly take over, ensuring configuration availability.

High Availability of API7 Enterprise

Stateless Data Plane

The high availability of the data plane is equally important. The data plane processes actual business traffic and is built on top of APISIX, inheriting many of APISIX's features. Similar to the control plane, components of the data plane are stateless, enabling them to easily scale horizontally and vertically to adapt to changes in traffic. Whether there's a need to scale instances during sudden traffic peaks or quickly remove a node when it fails, the data plane can handle it, ensuring service continuity.

Independent Data Plane and Control Plane

Another significant advantage is the separation of the data plane from the control plane, where abnormalities in any component do not affect each other. Furthermore, the data plane, upon startup, saves the configuration from the control plane in memory, avoiding the need to fetch configurations from the control plane for each request, thus improving performance and response speed. This also ensures that in the event of control plane anomalies, the data plane can continue to serve subsequent requests.

Usage Scenarios and Benefits of High-Availability Architecture

The deployment of a high-availability architecture is applicable to API7 and can be implemented in various environments and scenarios. For instance, when deploying through Docker or in a virtual machine, it's common to set up a load balancer at the traffic entrance, such as AWS's load balancer or LVS, combined with health check mechanisms. This enables the automatic removal of failed components and the initiation of new instances when components fail. Another common deployment method is in Kubernetes, leveraging Kubernetes' health check policies to manage service high availability. Kubernetes can automatically detect and replace failed pods, ensuring system stability.

The benefits brought by high availability extend beyond providing continuous service. They also contribute to increased client satisfaction, prevention of business interruptions, enhanced competitiveness, and reduced maintenance costs. Although achieving high availability may require some additional investment, it ultimately lowers maintenance costs by enabling rapid recovery and continued processing of business traffic in the event of system failures.

Conclusion

In summary, the high availability architecture of the API7 Solution is a comprehensive design. Through the separation of the control plane and data plane, rapid startup and horizontal expansion of stateless components, and flexible deployment methods, the system ensures continuous availability of API services under various circumstances. These features make the API7 Solution a resilient, flexible, and reliable system, capable of meeting the high requirements of enterprises for API service availability.

High availability is not just a technical consideration but also a business strategy that can strengthen client relationships, improve competitiveness, and bring more opportunities and success to enterprises. Therefore, the high availability of the API7 Solution is an indispensable capability, providing B2B clients with a trustworthy API management tool, ensuring their business operates smoothly without interruption.

Top comments (0)