Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 event
  • Notification: Gửi thông báo đến client thông qua email/sms

Ứ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
  • Email service: Sendgrid
  • SMS service: FPT & VNPAY

Lưu ý:

  • Database của ICK có một số tables được lấy data xuống hệ thống Data Warehouse qua cơ chế CDC. Nên cần thay đổi lại chổ này nếu Data Warehouse và Database không cùng mạng hạ tầng

Requirement tối thiểu cho hệ thống ICK:

Code Block
languageyml
System Requirements:
  Services:
    Infrastructure: ick
    Platform: docker-swarm
    OS: linux
    Architecture: amd64
    RAM: 16GB
    CPU: 4
    Number of Nodes: 3
    Storage: 100GB
  Databases:
    PostgresSQL Master:
      Image: postgres:13-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: 8GB
      CPU: 2
      Storage: 500GB
      Backup: 1
    Queue:
      Image: rabbitmq:3.7.7-management-alpine
      Replicas: 1
      RAM: 4GB
      CPU: 2
      Storage: 50GB
      Backup: 1
    Caching:
      Image: redis:6-alpine
      Replicas: 1
      RAM: 8GB
      CPU: 2
      Storage: 50GB
      Backup: 1      
  LoadBalancer:
      Image: nginx:1.18.0-alpine       
	  Replicas: 1
      RAM: 4GB
      CPU: 4
      Storage: 50GB
      Backup: 1
  Apigateway:
      Image: kong:2.3.3
      Replicas: 1
      RAM: 4GB
      CPU: 8
      Storage: 50GB
      Backup: 1


Danh sách VMs:

HOSTNAMEOwnerOSStatusIP PraviteIP PublicCPURAMDATA OSDATASATA/NVMeNOTE
glxedu-ick-lb01Galaxy EducationUbuntu 20.04 TLSRunning

443050SATA
glxedu-ick-api01Galaxy EducationUbuntu 20.04 TLSRunning

483050SATA
glxedu-ick-app01Galaxy EducationUbuntu 20.04 TLSRunning

41630100SATA
glxedu-ick-app02Galaxy EducationUbuntu 20.04 TLSRunning

41630100SATA
glxedu-ick-app03Galaxy EducationUbuntu 20.04 TLSRunning

41630100SATA
glxedu-ick-db01Galaxy EducationUbuntu 20.04 TLSRunning

41630500NVMe
glxedu-ick-db02Galaxy EducationUbuntu 20.04 TLSRunning

41630500NVMe
glxedu-ick-s3Galaxy EducationUbuntu 20.04 TLSRunning

2830500NVMe
glxedu-ick-mq01Galaxy EducationUbuntu 20.04 TLSRunning

243050SATA
glxedu-ick-redis01Galaxy EducationUbuntu 20.04 TLSRunning

283050SATA


Phương án migrate:

Kế hoạchThông tin Mô tả chi tiếtƯu điểmNhược điểm
Phương án 1

Sử dụng chung với hạ tầng GP (nếu có)

  • Sử dụng công cụ Container Orchestration của Galaxy Play(GP) đang có sẵn mà không cần build mới
  • Sử dụng các công cụ khác như DB, MinIO, RabbitMQ, ...
  • Cần GP team đánh giá theo danh sách requirement các ứng dụng có dùng chung được hay không?
  • Tiết kiệm tài nguyên
  • Quản lý tập trung
  • Cần quản lý và control chặt chẻ các services của ICK để không ảnh hưởng đến các service của GP và ngược lại
Phương án 2Triển khai mới hoàn toàn
  • Triển khai mới hoàn toàn theo danh sách VMs yêu cầu.
  • Tách biệt hoàn toàn với các hệ thống GP đang chạy
  • Tránh được sự ảnh hưởng của các các dịch vụ giữa ICK và GP
  • Tài nguyên không được tối ưu
  • Không quản lý tập trung





Lưu ý cho việc migration:

  • Các Phương án đề xuất bên dưới chỉ dành cho ICK application. Các hệ thống khác cho mục đích vận hành như Jenkins, các hệ thống khác như logging, monitoring được mặt định hiểu là dùng chung với hệ thống sẵn có của Galaxy Play (GP). Không cần phải triển khai thêm dành riêng cho ICK