360 Improves Cloud Resource Management With APISIX
December 11, 2020
Overview
About 360 Basic Operations and Maintenance Platform
The 360 Basic Operations and Maintenance Platform is an enterprise-oriented cloud-based application management and monitoring platform designed to help businesses better manage their cloud resources, improve the availability and performance of applications, and meet the growing demands of their business needs.
Before using APISIX, the gateway layer of the 360 Basic Operations and Maintenance Platform had some deficiencies, such as poor performance and scalability when handling large traffic volumes, as well as high complexity in management and monitoring. Therefore, the team plans to renovate the gateway layer to improve the platform's response time and management efficiency. The team aims to create a high-performance, scalable, and easy-to-manage gateway layer to better manage and monitor cloud applications.
Challenges
- Application Complexity: Cloud-based applications are typically more complex than traditional applications, involving multiple modules and services, requiring more complex deployment and management.
- Application Availability and Performance: Cloud-based applications need to maintain high availability and performance to meet user demands. This requires better monitoring and troubleshooting.
- Application Security: Cloud-based applications need to ensure data security and privacy, requiring better access control and security policies.
Results
- The plugin-based architecture has been successfully built, allowing for greater flexibility in the customization and extension of the system.
- The platform can maintain high levels of availability and responsiveness even under heavy load.
- Administrators can monitor the system in real-time and quickly identify and resolve issues, ensuring the system is always operating at peak efficiency.
Why 360 Chose APISIX
The 360 Basic Operations and Maintenance Platform team ultimately chose Apache APISIX mainly due to the storage option of etcd, which is more suitable for the usage scenario. When selecting a storage solution, multiple factors must be considered, such as data type, data volume, read/write frequency, data access pattern, and data security. Compared to etcd, other storage options may have some deficiencies.
For example, Postgres is suitable for complex data queries and transaction processing but lacks in terms of read/write performance and scalability. Cassandra is suitable for large-scale data storage and analysis but lacks high read/write performance and data consistency. Redis is suitable for high-speed caching and data storage but still needs to improve data consistency and reliability. PaaS is suitable for quick application building, deployment, and management but requires a more flexible and scalable storage solution. Zookeeper is suitable for distributed application management and coordination but still has deficiencies in data consistency and reliability.
By comparison, etcd, as a highly reliable, scalable, performant, and easy-to-use distributed key-value storage system, better meets the needs of the 360 cloud computing Basic Operations and Maintenance Platform and was therefore chosen as the storage solution. In addition to the storage option, APISIX has also brought other surprises to the 360 Basic Operations and Maintenance Platform team. The table below shows the differences between APISIX and similar products in various aspects besides storage selection.
API Gateway | APISIX | Kong | Tyk | Apigee | AWS | Aliyun |
---|---|---|---|---|---|---|
Deployment Mode | single-node & cluster | single-node & cluster | single-node & cluster | Not compatible with single-node deployment | PaaS | PaaS |
Storage Selection | etcd | Postgres, Cassandra | Redis | Postgres, Cassandra, Zookeeper | PaaS | PaaS |
Open-source or not | Apache License 2.0 | Apache License 2.0 | MPL License | No | No | No |
Core Technology | NGINX + Lua | NGINX + Lua | Golang | / | / | / |
Private Deployment | ✓ | ✓ | ✓ | ✕ | ✕ | ✕ |
Custom Plugins | ✓ | ✓ | ✓ | ✕ | ✕ | ✕ |
Community Engagement | High | High | High | Moderate | Low | Low |
Support YAML or not | Support | Support | Do not support | Do not support | Do not support | Do not support |
The following diagram shows the final architecture of the 360 Basic Operations and Maintenance Platform project, including the gateway service deployed on the company's container cloud and the etcd service deployed on a set of clusters across 3 virtual machines.
Achievements after Using APISIX
Successfully Built Plugin-Based Development
Apache APISIX utilizes plugins to satisfy customers' various requirements for handling traffic and any specific scenarios. Currently, there are more than 100 ready-to-use plugins, and users can develop custom plugins to support new features.
Currently, the 360 Operations and Maintenance Platform has implemented various functions using both self-developed and native plugins provided by APISIX, including but not limited to user authentication, IP rate limiting, request forwarding, log recording, and alarm functions.
The project files of the 360 Basic Operations and Maintenance Platform have two directories, "libs" and "plugins". The "libs" directory contains some commonly used libraries, while the "plugins" directory contains custom business plugins. All business operations in the 360 platform are developed using a plugin mechanism. The project has two entry domain names: one for OpenAPI access, which uses the basic-auth authentication plugin, and one for web browser access, which uses the web-auth (cookie authentication) plugin. The following figure shows the plugins currently used in the project.
Easily Manage High Traffic Volumes
By choosing the right technologies and implementing them effectively, the 360 Basic Operations and Maintenance Platform has been able to build a highly performant and robust cloud-based application management platform that can meet the growing demands of its business needs.
The 360 Basic Operations and Maintenance Platform currently has almost 900 APIs added to its gateway, with a daily average of around 10 million PVs. According to its monitoring system, both the gateway and its various microservices are running smoothly. This indicates that the platform's infrastructure is capable of handling high traffic volumes and ensuring high availability for its users. It also shows that its development team has done a great job in designing and implementing its system architecture by choosing APISIX as the gateway layer. This success can be attributed to several factors, including the scalability and reliability of APISIX, as well as its use of etcd as the storage solution. Moving forward, the platform will continue to monitor its system performance and make improvements as needed to ensure that it maintains high levels of quality and service for its users.
Efficiently Monitor the System
The observability features provided by APISIX bring multiple benefits to the 360 basic operations and maintenance platform:
-
Firstly, APISIX's observability features can help developers monitor the system more efficiently, detect and resolve potential issues in a timely manner, and improve system reliability.
-
Secondly, access logs and real-time metric monitoring can help developers quickly locate issues, optimize system performance, and improve system availability and performance.
-
Finally, health checks can ensure the availability of backend services and automatically adjust request forwarding strategies, improve user experience, and provide better services for users.
The observability features of APISIX can help the 360 Basic Operations and Maintenance Platform monitor and manage the system more efficiently, improve system availability, performance, and reliability, and provide a better service experience for users.
Summary
The 360 Basic Operations and Maintenance Platform chose APISIX due to its storage option of etcd, which better suited their usage scenario. APISIX also brought other benefits such as plugin-based development, good observability, and better monitoring and management of the system.