Page tree

Versions Compared

Key

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

Infrastructure Diagram:

Image Removed

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/NVMeNOTEglxedu-ick-lb01Galaxy EducationUbuntu 20.04 TLSRunning443050SATAglxedu-ick-api01Galaxy EducationUbuntu 20.04 TLSRunning483050SATAglxedu-ick-app01Galaxy EducationUbuntu 20.04 TLSRunning41630100SATAglxedu-ick-app02Galaxy EducationUbuntu 20.04 TLSRunning41630100SATAglxedu-ick-app03Galaxy EducationUbuntu 20.04 TLSRunning41630100SATAglxedu-ick-db01Galaxy EducationUbuntu 20.04 TLSRunning41630500NVMeglxedu-ick-db02Galaxy EducationUbuntu 20.04 TLSRunning41630500NVMeglxedu-ick-s3Galaxy EducationUbuntu 20.04 TLSRunning2830500NVMeglxedu-ick-mq01Galaxy EducationUbuntu 20.04 TLSRunning243050SATAglxedu-ick-redis01Galaxy EducationUbuntu 20.04 TLSRunning283050SATA

Danh sách physical server:

STTENVType DeviceModelRackRaidPerformanceMục đích sử dụngRAMCPUDATA
OSLuu ýSTATUS
1productServerIBM X3650 M42U5Max: 99% - Av:30%HA proxy16422029022centos 6.7 final
Running
2productServerDell R6301U5Max: 99,44% - Av:18%Site Hocmai.vn1265628029022centos 7 core
Running
4productServerIBM X3650 M52U5Max: 43,2% - Av: 21.3%Streaming video 2642847529022centos 7 corePort 10GRunning
5productServerIBM X3650 M42U5Max: 43,2% - Av: 21.3%Streaming video 132854929022centos 7 corePort 10GRunning
6productServerDell R6301U5Max: 99.43% - Av: 10%DB12656170029022centos 7 core
Running
7productServerHP ProLiant DL380 Gen102U5Max: 4% - Av: 2 %DB Slave6440220029022centos 7 core
Running
8productServerHP ProLiant DL380 Gen102U5Max: 20.5% - Av: 17.2%Db slave 2644062029022centos 7 core
Running
9productStorageIBM V37002U513T/13TLưu trữ video 1




Port 10GRunning
10productStorageIBM Storwize V50002U517T/19TLưu trữ video 2




Port 10GRunning
11productServerHP ProLiant DL380 Gen92U5Max: 100%, Av: 5%API site Hocmai.vn và site Hướng nghiệp7864130022centos 7 core
Running

Thành phần hệ thống:

  • Front Load Balancer: Được triển khai trên 2 physical độc lập, sử dụng HA Proxy load balancer.
  • Hệ thống streaming: được triển khai trên 2 physical server độc lập, sử dụng port 10G kết nối iscsi với hệ thống Storages
  • Application: Được triển khai trên 2 physical server độc lập
  • Database Cluster: Gồm 3 physical server độc lập, gồm 1 Master và 2 Slave
  • Storage: gồm 2 thiết bị IBM V3700 và IBM Storwize V5000 để lưu trữ video

Lưu ý:

  • Một số kết nối phải đảm bảo băng thông từ 10G trở lên
  • Một số một số requirement về tốc độ đọc ghi của disk
    • Application:
      • Read performance : 328MB/s
      • Write performance: 109MB/s
    • Database:
      • Read performance : 368MB/s
      • Write performance: 120MB/s

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

Migate Database & Application 

  • GP chuẩn bị tài nguyên tương đương theo danh sách trên (có thể là physical hoặc VM tương ứng)
  • Có thời gian migration
  • Giảm thiểu thời gian downtime tối thiểu
  • Có hệ thống backup để rollback
  • Chi phí đầu tư hạ tầng ban đầu để đủ tài nguyên cung cấp theo danh sách trên
  • Cần có thời gian để triển khai hạ tầng
  • Cần có kế hoạch tái sử dụng resource cho hạ tầng cũ sau khi migration hoàn tất
Phương án 2Move Hocmai streaming server  to GP's Rack cabinet
  • Move Hocmai streaming server to GP's Rack Cabinet in FPT Data Center HCM
  • Không cần đầu tư hạ tầng ban đầu
  • Do khác location nên phương án này rất rủi ro, thời gian downtime dài.  Nên để triển khai phương án này cần triển khai hệ thống backup trước
  • Hệ thống backup chỉ chạy tạm trong thời gian migrate
  • Cần có hệ thống để backup data, mục đích để rollback nếu có sự cố phát sinh khi move server