Architectures
Triển khai APIM trong Môi Trường DEV/STG/PRD
Trong kiến trúc này, nền tảng APIM được triển khai trên một cụm Kubernetes và được phân đoạn theo không gian tên và vai trò. Hệ thống được thiết kế để hoạt động độc lập trên nhiều môi trường khác nhau như Phát triển, Kiểm thử và Sản xuất.

Lớp Ingress và Định Tuyến Ngoài/Nội
Ở lớp trên cùng, hệ thống sử dụng hai Bộ Cân Bằng Tải (LB):
LB Nội Bộ (Truy Cập Quản Trị) - cung cấp quyền truy cập đến:
- Bảng điều khiển APIM (apim-admin.company.com)
- Bảng điều khiển IAM (tenant-admin.company.com)
- Cổng thông tin cho quản trị viên (developers-admin.company.com)
- Bảng điều khiển xác thực (auth-admin.company.com)
LB Hướng Internet (Truy Cập Người Dùng) - cung cấp quyền truy cập bên ngoài đến:
- Dịch vụ API Mở (api.company.com)
- Cổng thông tin Nhà Phát Triển Công Khai (developers.company.com)
Lưu lượng được định tuyến qua một Bộ Điều Khiển Ingress tập trung, nơi diễn ra việc kết thúc TLS, và lưu lượng được chuyển tiếp qua HTTP đến các dịch vụ nội bộ dựa trên các đường dẫn miền.
Nhóm Node: Quản Lý
Nhóm này chứa tất cả các thành phần cốt lõi cần thiết để quản lý người thuê, dự án, cổng, API và chính sách.
Không gian tên chính:
namespace: apim
Các thành phần cốt lõi:
| Thành phần | Mô tả |
|---|---|
| Quản Lý Người Thuê (IAM) | Xử lý quản lý danh tính và quyền truy cập cho người dùng hệ thống và tổ chức người thuê |
| Bảng điều khiển Quản Lý Người Thuê | Giao diện người dùng cho quản trị viên người thuê (được xây dựng bằng Vue.js) |
| Bảng điều khiển Quản Lý API BFF | Backend-for-Frontend phối hợp tương tác giữa UI và dịch vụ (Vue.js & Node.js) |
| Quản Lý Cổng | Kiểm soát việc cung cấp cổng và liên kết với các dự án |
| Quản Lý Chính Sách | Quản lý định nghĩa chính sách vào/ra như lọc IP, xác thực, ghi nhật ký |
| Cổng Thông Tin Nhà Phát Triển (Frontend & Backend) | Giao diện cho người dùng API để duyệt và thử nghiệm các API đã được công bố |
| Quản Lý Phân Tích | Xử lý phân tích và báo cáo sử dụng API theo thời gian thực (kết nối với FluentBit) |
Cơ sở dữ liệu bền vững:
- Cơ sở dữ liệu Quản Lý Người Thuê (PostgreSQL)
- Cơ sở dữ liệu APIM Master/Slave (MariaDB)
- PVC được cấu hình để đảm bảo độ bền và dự phòng dữ liệu.
Nhóm Node: Nhóm Người Dùng
Nhóm này thực hiện lưu lượng API trong thời gian thực và định tuyến các cuộc gọi API của người dùng đến các dịch vụ vi mô phía sau.
Không gian tên:
namespace: user-namespace
Các thành phần:
| Thành phần | Mô tả |
|---|---|
| API Gateway | Cổng dựa trên Kong xử lý các yêu cầu API vào |
| API Gateway DB | Kho lưu trữ PostgreSQL cho cấu hình và trạng thái cổng trong thời gian thực |
| In-Memory DB (Chủ/Tớ) | Được sử dụng để lưu trữ token/session (có thể là Redis hoặc tương tự) |
| Microservices | Các dịch vụ backend thực tế nhận lưu lượng API đã được định tuyến |
API Gateway nhận các yêu cầu từ người dùng bên ngoài và thực hiện:
- Thực thi chính sách (xác thực, lọc IP, v.v.)
- Định tuyến đến microservice thích hợp
- Trả lại phản hồi qua cổng vào
Nhóm Node: Giám sát
| Thành phần | Mô tả |
|---|---|
| Hệ thống Ghi log | Được cung cấp bởi Elasticsearch, được sử dụng để thu thập các log API có cấu trúc |
| Hệ thống Giám sát | Được cung cấp bởi Prometheus, thu thập các chỉ số cho sức khỏe hệ thống và cảnh báo |
Các thành phần ghi log và giám sát được tích hợp với FluentBit và log của API Gateway, cho phép:
- Nhận thức lưu lượng API theo thời gian thực
- Hình ảnh hóa chỉ số tùy chỉnh
Luồng Giao tiếp Hệ thống
- Quản trị viên truy cập hệ thống qua các miền nội bộ thông qua Ingress Controller.
- Người dùng gọi Open APIs và Cổng Phát triển qua các miền bên ngoài, được định tuyến đến Kong Gateway.
- Kong thực thi các chính sách API (vào/ra) và định tuyến đến các microservices tương ứng.
- Các log và chỉ số từ tất cả các thành phần được phát trực tiếp đến ngăn xếp giám sát và ghi log.
Triển khai APIM Tích hợp với Dịch vụ Đám mây & Bên Thứ Ba
Kiến trúc này cho thấy cách hệ thống APIM tích hợp với cơ sở hạ tầng bên ngoài như AWS và các dịch vụ ghi log/giám sát như CloudWatch, Datadog.
How It Works:- DNS riêng hoặc DNS công cộng (AWS Route53) được sử dụng để định tuyến các yêu cầu nội bộ đến cụm Kubernetes nơi các dịch vụ APIM cư trú.
- Khi các yêu cầu đến Kong Gateway, các chính sách đầu vào được thực thi (xác thực, chèn tiêu đề, v.v.), và sau đó lưu lượng được định tuyến đến các dịch vụ backend.
- Các phản hồi đi qua các chính sách đầu ra (ví dụ: che giấu dữ liệu, ghi log), và được trả lại cho khách hàng.
- Tất cả các log và số liệu yêu cầu/phản hồi được chuyển tiếp đến CloudWatch, Datadog, hoặc Whatap thông qua các nhà xuất khẩu bên thứ ba tích hợp.
- Đăng ký thông số dựa trên Swagger được sử dụng để công khai hoặc cập nhật các API một cách động thông qua Cổng phát triển.
Kiến trúc này hỗ trợ quản lý API an toàn, có thể mở rộng và có thể quan sát được qua các ranh giới tổ chức. Nó đảm bảo quản trị API trong khi cho phép mở rộng liền mạch đến các dịch vụ đám mây.
Triển khai nội bộ cho môi trường phát triển
Phiên bản này phản ánh một thiết lập chỉ nội bộ của nền tảng APIM cho mục đích phát triển. Nó nhấn mạnh tính bảo mật và quyền truy cập đóng trong quá trình thử nghiệm API hoặc phát triển dịch vụ.
How It Works:- Tất cả lưu lượng chảy nội bộ, thông qua DNS riêng và ALB, vào cụm.
- Các nhà phát triển nội bộ truy cập APIM Console, Cổng phát triển thông qua các tên miền phụ nội bộ đã được định nghĩa trước.
- Lưu lượng API từ các ứng dụng frontend phát triển được gửi đến Kong Gateway, nơi tất cả các chính sách đã cấu hình được áp dụng.
- Các microservices backend phản hồi các yêu cầu được định tuyến qua gateway.
- Toàn bộ ngăn xếp được tách biệt theo không gian tên để dễ bảo trì và phân tách vai trò:
- apim chứa cấu hình và logic điều khiển.
- microservices chứa các dịch vụ runtime và logic kinh doanh.
Kiến trúc này cho phép phát triển và thử nghiệm API an toàn mà không bị lộ ra mạng công cộng. Nó tối ưu cho việc xác thực các dịch vụ, áp dụng các chính sách, và xác minh quyền truy cập trước khi triển khai hoặc phát hành sản phẩm.
Mô hình luồng nội bộ chỉ dành cho phát triển
Kiến trúc này trình bày một luồng lưu lượng nội bộ chi tiết trong một môi trường phát triển, tập trung vào ranh giới mạng và sự cách ly.
How It Works:- Các ứng dụng nội bộ và các nhà phát triển tương tác với APIM Console hoặc Developer Portal thông qua các miền riêng và định tuyến NLB/ALB.
- Các yêu cầu từ frontend được định tuyến đến Kong Gateway, nơi các chính sách thời gian chạy như xác thực, giới hạn tỷ lệ và chuyển đổi được thực thi.
- Gateway định tuyến các yêu cầu đến các microservices backend được lưu trữ trong cùng một cụm.
- Việc sử dụng API, nhật ký và thống kê lưu lượng được gửi đến các công cụ quan sát nội bộ như Datadog, đảm bảo khả năng hiển thị trong các hoạt động phát triển.
- Không có điểm truy cập công khai nào trong môi trường này - tất cả các thành phần, bao gồm API Gateway, đều hoàn toàn nội bộ.
Cài đặt này đảm bảo một pipeline an toàn, cách ly cho việc phát triển và thử nghiệm các API trong khi vẫn giữ được khả năng giám sát và quản lý đầy đủ. Nó cho phép các nhóm phát triển mô phỏng hành vi API giống như sản xuất mà không bị lộ ra bên ngoài.
Mô tả Thành phần và Tài nguyên
Bảng này phác thảo các tài nguyên CPU, bộ nhớ và lưu trữ được phân bổ cho từng thành phần trong APIM Control Plane. Nó giúp các nhóm hạ tầng và DevOps lập kế hoạch và cung cấp các cụm Kubernetes một cách chính xác và hiệu quả.
| Instance | Description | kind | Replicas | CPU (m) | CPU Total (m) | Memory (Mi) | Memory Total (Mi) | Storage (GB) | Storage Total (GB) |
|---|---|---|---|---|---|---|---|---|---|
| deploy-apim-analysis-manager | Quản lý Phân tích | Triển khai | 1 | 0.5 | 0.5 | 1024 | 1024 | 0 | 0 |
| deploy-apim-bff | APIM Console BFF | Triển khai | 1 | 0.5 | 0.5 | 512 | 512 | 0 | 0 |
| deploy-apim-gateway-manager | Quản lý Gateway | Triển khai | 1 | 0.5 | 0.5 | 768 | 768 | 0 | 0 |
| deploy-apim-tenant-manager | Quản lý Người dùng (IAM) | Triển khai | 1 | 0.5 | 0.5 | 768 | 768 | 0 | 0 |
| deploy-apim-tenant-manager-console | Bảng điều khiển Quản lý Người dùng | Triển khai | 1 | 0.2 | 0.2 | 512 | 512 | 0 | 0 |
| deploy-apim-policy-manager | Quản lý Chính sách | Triển khai | 1 | 0.2 | 0.2 | 512 | 512 | 0 | 0 |
| deploy-apim-developer-portal-backend | Backend Cổng thông tin Nhà phát triển | Triển khai | 1 | 0.2 | 0.2 | 512 | 512 | 20 | 20 |
| deploy-apim-developer-portal-frontend | Frontend Cổng thông tin Nhà phát triển | Triển khai | 1 | 0.2 | 0.2 | 64 | 64 | 0 | 0 |
| deploy-apim-mariadb-master | Cơ sở dữ liệu APIM (MariaDB Master) | StatefulSet | 1 | 0.5 | 0.5 | 512 | 512 | 10 | 10 |
| deploy-apim-mariadb-slave | Cơ sở dữ liệu APIM (MariaDB Slave) | StatefulSet | 1 | 0.2 | 0.2 | 256 | 256 | 0 | 0 |
| statefulset-apim-tenant-manager-postgresql | Cơ sở dữ liệu IAM (PostgreSQL) | StatefulSet | 1 | 0.5 | 0.5 | 256 | 256 | 10 | 10 |
| Tổng | 4 | 5760 | 40 |
- CPU: 4 Lõi
- Bộ nhớ: 6 GiB
- Lưu trữ: 40 GB
Notes:
- Tăng CPU/Bộ nhớ tùy thuộc vào chính sách mở rộng bản sao
- Lưu trữ Ghi Nhận/ Giám sát mở rộng theo khối lượng lưu lượng
- Hỗ trợ một triển khai APIM công cộng và một triển khai APIM riêng tư