Apache APISIX là một API Gateway mã nguồn mở mạnh mẽ, được thiết kế để làm cổng vào cho lưu lượng truy cập, xử lý tất cả các dữ liệu kinh doanh của bạn. Nó cung cấp nhiều tính năng nổi bật như:
Tính năng chính:
- Điều hướng động: Hỗ trợ điều hướng các yêu cầu đến các dịch vụ upstream dựa trên các điều kiện động.
- Chứng chỉ động: Tự động tải và quản lý chứng chỉ SSL mà không cần khởi động lại.
- Thử nghiệm A/B và phát hành canary: Hỗ trợ chia tách lưu lượng truy cập để thử nghiệm tính năng hoặc phát hành dịch vụ mới theo cách kiểm soát được.
- Giới hạn tốc độ và bảo vệ chống lại tấn công độc hại: Giới hạn số lượng yêu cầu và bảo vệ hệ thống khỏi các cuộc tấn công độc hại như DoS.
- Giám sát và cảnh báo: Cung cấp các tính năng giám sát và cảnh báo để quản lý hệ thống một cách hiệu quả.
- Quản trị dịch vụ: Hỗ trợ các cơ chế quản lý dịch vụ như kiểm tra sức khỏe, theo dõi các dịch vụ không lành mạnh, và triển khai các chính sách chuyển đổi.
Đa nền tảng:
- Cloud-Native: APISIX hoạt động trên nhiều môi trường khác nhau từ bare-metal đến Kubernetes mà không phụ thuộc vào nhà cung cấp.
- Hỗ trợ ARM64: Tương thích với các kiến trúc ARM64, đảm bảo sự linh hoạt trong việc triển khai hạ tầng.
Hỗ trợ đa giao thức:
- Proxy TCP/UDP: Proxy động cho lưu lượng TCP/UDP.
- Proxy gRPC và gRPC Web: Hỗ trợ proxy và chuyển đổi giao thức gRPC.
- Proxy MQTT: Cân bằng tải cho MQTT, hỗ trợ các phiên bản MQTT 3.1.*, 5.0.
- Proxy Websocket: Hỗ trợ proxy cho Websocket.
- Forward Proxy HTTP(S): Proxy chuyển tiếp HTTP và HTTPS.
- HTTP/3 với QUIC: Hỗ trợ giao thức HTTP/3 với QUIC.
Tính năng toàn diện và động:
- Cập nhật và plugin nóng: Liên tục cập nhật cấu hình và plugin mà không cần khởi động lại hệ thống.
- Cân bằng tải động: Hỗ trợ cân bằng tải theo vòng tròn, hash-based, và dựa trên trọng số.
- Chuyển đổi giao thức gRPC: Hỗ trợ chuyển đổi giao thức để client có thể truy cập API gRPC thông qua HTTP/JSON.
An ninh:
- Xác thực và ủy quyền: Cung cấp các phương thức xác thực đa dạng như key-auth, JWT, basic-auth, và tích hợp với các hệ thống quản lý danh tính bên ngoài như Auth0, okta.
- Danh sách trắng/đen IP: Quản lý quyền truy cập theo danh sách IP.
- Chống lại tấn công ReDoS: Tích hợp các chính sách bảo vệ hệ thống khỏi tấn công từ chối dịch vụ dựa trên biểu thức chính quy.
Thân thiện với quản trị viên:
- Theo dõi và ghi nhật ký: Hỗ trợ tích hợp với các công cụ giám sát như Prometheus, Zipkin, và các logger bên ngoài.
- Cụm và độ sẵn sàng cao: Hỗ trợ cụm các nút APISIX với etcd và có khả năng phục hồi cao.
- Bảng điều khiển và CLI: Quản lý hệ thống thông qua bảng điều khiển và dòng lệnh.
Khả năng mở rộng cao:
- Plugin tùy chỉnh: Cho phép viết plugin bằng nhiều ngôn ngữ như Java, Go, Python, hoặc sử dụng WebAssembly (Wasm).
- Thuật toán cân bằng tải tùy chỉnh: Hỗ trợ người dùng triển khai các thuật toán cân bằng tải riêng.
Hỗ trợ đa ngôn ngữ:
- Hỗ trợ đa ngôn ngữ: APISIX hỗ trợ phát triển plugin thông qua RPC và Wasm, cho phép sử dụng các ngôn ngữ như Java, Golang, Python, và Node.js.
Tích hợp Serverless:
- Lua Functions: Cho phép gọi các hàm Lua trong từng giai đoạn của quá trình xử lý yêu cầu.
- AWS Lambda và Azure Functions: Tích hợp với các dịch vụ serverless của AWS và Azure.
Apache APISIX là một giải pháp linh hoạt, mạnh mẽ cho việc quản lý và điều phối lưu lượng truy cập, phù hợp với nhiều loại ứng dụng và môi trường triển khai khác nhau.