Infrastructure Diagram:
Components hệ thống:
- Front Load Balancer: Được triển khai trên một instance độc lộc sử dụng Nginx.d để làm reverse proxy cho hệ thống, mục đích chính của FLB là SSL Termination và setup proxy route đến Kong API Gateway, đồng thời sẽ đáp ứng firewall rule cơ bản ở phía đầu.
- Kong API Gateway: Platform API được phát triển dựa trên nginx và lua, mục đích là để cấu hình cho service route được linh hoạt và mở rộng hơn. Ngoài ra, Instance này còn được dùng để xử lý các luồng authen trước khi request đến service bên trong.
- Docker Swarm Instance (for Rest + gRPC): Đây là các instance dùng để triển khai các container cho mục đích giao tiếp với API Gateway.
- Docker Swarm Insatnce (for Worker): Đây là các instance dùng để triển khai các container được sử dụng dạng cronjob or process event từ RabbitMQ
- Database & Storage: gồm PostgresSQL và Minio Bucket for file store
- RabbitMQ for process eventStreaming: Phát trực tuyến video
- Notification: Gửi thông báo đến client thông qua email/sms
- Data warehouse: tracking hành vi người dùng của ICK & change data capture (CDC)
Ứng dụng của bên thứ 3
- Streaming (VOD): Phát trực tuyến video sử dụng của third party Vnetwork
- Elsa: đánh giá phát âm tiếng Anh
Requirement cho hệ thống gồm 4 node cho Swarm và 5 instance dùng để host các Service Database, Queue, LB, ...
| Code Block | ||
|---|---|---|
| ||
System Requirements:
Services:
Infrastructure: ick
Platform: docker-swarm
OS: linux
Architecture: amd64
RAM: 16GB
CPU: 4
Number of Nodes: 4
Storage: 100GB
Databases:
PostgresSQL Master:
Image: postgres:9.6.1013-alpine
Replicas: 1
RAM: 16GB
CPU: 4
Storage: 500GB
Backup: 1
PostgresSQL Slave:
Image: postgres:13-alpine
Replicas: 1
RAM: 16GB
CPU: 4
Storage: 500GB
Backup: 1 ObjectStorage:
Image: minio/minio:RELEASE.2018-10-06T00-53-53Z
Replicas: 1
RAM: 4GB
CPU: 2
Storage: 500GB
Backup: 1
Queue:
Image: rabbitmq:3.7.7-management-alpine
Replicas: 1
RAM: 4GB
CPU: 2
Storage: 50GB
Backup: 1
LoadBalancer:
Image: nginx:1.18.0-alpine
Replicas: 1
RAM: 4GB
CPU: 2
Storage: 50GB
Backup: 1
Apigateway:
Image: kong:2.3.3
Replicas: 1
RAM: 4GB
CPU: 2
Storage: 50GB
Backup: 1 |
