Chuyển tới nội dung chính

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 Tra 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 Nhà Phát Triển cho quản trị (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 đường dẫn miền.

Nhóm Nút: 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ầnMô 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 BFFBackend-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ổngKiể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áchQuản lý định nghĩa chính sách vào/ra như lọc IP, xác thực, ghi log
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 đã xuất bản
Quản Lý Phân TíchXử 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 Nút: Nhóm Người Dùng

Nhóm này thực hiện lưu lượng API thời gian chạy 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ầnMô tả
Cổng APICổng dựa trên Kong xử lý các yêu cầu API vào
Cơ sở dữ liệu Cổng APIKho PostgreSQL cho cấu hình và trạng thái cổng thời gian chạy
Cơ sở dữ liệu Trong Bộ Nhớ (Master/Slaves)Được sử dụng để lưu trữ token/session (có thể là Redis hoặc tương tự)
Dịch vụ Vi MôCác dịch vụ phía sau thực tế nhận lưu lượng API đã được định tuyến

Cổng API 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 dịch vụ vi mô thích hợp
  • Trả lại phản hồi qua cổng vào

Nhóm Nút: Giám Sát

Thành phầnMô 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 Cổng API, cho phép:

  • Thông tin lưu lượng API theo thời gian thực
  • Hình ảnh hóa chỉ số tùy chỉnh
  • Cảnh báo qua kênh Slack/Email

Luồng Giao Tiếp Hệ Thống

  1. Các quản trị viên truy cập hệ thống qua các miền nội bộ thông qua Bộ Điều Khiển Ingress.
  2. Người dùng gọi các API Mở và Cổng Thông Tin Nhà Phát Triển qua các miền bên ngoài, được định tuyến đến Cổng Kong.
  3. Kong thực thi các chính sách API (vào/ra) và định tuyến đến các dịch vụ vi mô tương ứng.
  4. Các log và chỉ số từ tất cả các thành phần được truyền đế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 hoặc Firehose.

How It Works:
  • Người dùng bên ngoài truy cập hệ thống thông qua một miền công khai, được định tuyến qua AWS API Gateway thông qua VPC Link đến Cổng APIM Nội Bộ.
  • Các miền riêng tư và 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 Cổng Kong, các chính sách vào được thực thi (xác thực, tiêm tiêu đề, v.v.), và sau đó lưu lượng được định tuyến đến các dịch vụ phía sau.
  • Các phản hồi đi qua các chính sách 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à chỉ số yêu cầu/phản hồi được chuyển tiếp đến CloudWatch, Datadog hoặc Firehose thông qua các xuất khẩu tích hợp.
  • Đăng ký đặc tả 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 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 Bảng Điều Khiển APIM, Cổng Thông Tin Nhà Phát Triển và IAM thông qua các 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 Cổng Kong, nơi tất cả các chính sách đã được cấu hình được áp dụng.
  • Các dịch vụ vi mô phía sau (được lưu trữ trong không gian tên bo) phản hồi các yêu cầu được định tuyến qua cổng.
  • 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ụ thời gian chạy 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 chính sách và xác minh quyền truy cập trước khi triển khai lên môi trường staging hoặc sản xuất.

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 các ranh giới mạng và sự cách ly.

How It Works:
  • Các ứng dụng và nhà phát triển nội bộ tương tác với Bảng Điều Khiển APIM hoặc Cổng Thông Tin Nhà Phát Triển 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 Cổng Kong, 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à biến đổi được thực thi.
  • Cổng định tuyến các yêu cầu đến các dịch vụ vi mô phía sau được lưu trữ trong cùng một cụm hoặc thông qua mesh dịch vụ (nếu có).
  • Sử dụng API, log 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 Cổng API, đều hoàn toàn nội bộ.

Thiết lập này đảm bảo một quy trình 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 trị đầ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 Plane Kiểm Soát APIM. 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ả.

InstanceDescriptionkindReplicasCPU (m)CPU Total (m)Memory (Mi)Memory Total (Mi)Storage (GB)Storage Total (GB)
deploy-apim-analysis-managerQuản lý Phân tíchTriển khai10.50.51024102400
deploy-apim-bffAPIM Console BFFTriển khai10.50.551251200
deploy-apim-gateway-managerQuản lý CổngTriển khai10.50.576876800
deploy-apim-tenant-managerQuản lý Thuê bao (IAM)Triển khai10.50.576876800
deploy-apim-tenant-manager-consoleBảng điều khiển Quản lý Thuê baoTriển khai10.20.251251200
deploy-apim-policy-managerQuản lý Chính sáchTriển khai10.20.251251200
deploy-apim-developer-portal-backendBackend Cổng thông tin Nhà phát triểnTriển khai10.20.25125122020
deploy-apim-developer-portal-frontendFrontend Cổng thông tin Nhà phát triểnTriển khai10.20.2646400
deploy-apim-mariadb-masterCơ sở dữ liệu APIM (MariaDB Master)StatefulSet10.50.55125121010
deploy-apim-mariadb-slaveCơ sở dữ liệu APIM (MariaDB Slave)StatefulSet10.20.225625600
statefulset-apim-tenant-manager-postgresqlCơ sở dữ liệu IAM (PostgreSQL)StatefulSet10.50.52562561010
Tổng4576040
Total Control Plane Resources:
  • 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ật/Kiểm tra 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ư