Skip to main content

Command Palette

Search for a command to run...

Công nghệ sử dụng cho dự án MSEC

Updated
2 min read

1. Phát triển app

Mô hình microservices

1.1 Services

Các services sẽ được xây dựng dựa trên NestJS (base trên nền ExpressJS - một NodeJS framework)

1. Basic setup

  • Triển khai một service theo doc cơ bản của NestJS
  • Sử dụng MongoDB làm database (setup theo mongo doc của NestJS)
  • Sử dụng Swagger làm api documentation (setup theo swagger doc của NestJS)
  • Sau khi setup Swagger thì mình dùng thêm express-basic-auth npm để security cho swagger doc link (xem thêm ở bài viết này)
  • Sử dụng config npm để quản lý các configs trong service thay vì hướng dẫn trong NestJS (lý do tại sao thì mình sẽ cập nhật thêm sau, do hiện tại chỉ thấy rằng các project trong dự án mình tham gia sử dụng theo cách này)
  • Setup validation theo NestJS doc (xem thêm ở bài viết này)

2. Security

  • Sử dụng helmet để bảo vệ ứng dụng khỏi một số lỗ hổng web bảo mật (xem thêm tại NestJS doc helmet )

3. Heath check

  • Sử dụng @nestjs/terminus trong NestJS để kiểm tra tình trạng sức khỏe của ứng dụng, có 2 bước cần thực hiện ở đây:
    • Step 1: Kiểm tra sức khỏe của các thành phần liên quan (ví dụ: database ( mongodb ), microservices, memory, disk,...)
    • Step 2: Cung cấp một url cho các dịch vụ của cơ sở hạ tầng (ví dụ: kubenetes) dùng để ping tới liên tục để kiểm tra sức khỏe hệ thống và xử lý các bước tiếp theo tùy vào trạng thái trả về là healthy or unhealthy.

4. Hybrid app (http + microservice)

Đối với mỗi một services chúng ta có thể thiết lập nó chỉ để phục vụ:

  • http(s) request / response
  • microservice app (sử dụng TCP / MQTT hoặc Topic,...)
  • hybrid (http + microservice)

Thì đối với hệ thống của chúng ta, chúng ta sẽ phải kết hợp cả 2 loại dịch vụ nên sẽ lựa chọn loại app là hybrid

Để thiết lập hybrid app trong NestJS ta làm như hướng dẫn trong doc của NestJS

  • 1.2 Web UI

Giao diện web sẽ được xây dựng dựa trên ReactJS library

2. Triển khai app

Các services sẽ triển khai dưới dạng Docker container và được quản lý bởi Kubenetes

3. Cơ sở hạ tầng để run app

Sử dụng các dịch vụ của AWS

4. Repository / Image registry

Sử dụng Gitlab để lưu trữ source code, Docker images

50 views