Bỏ qua

Kiến trúc 3 tầng hệ thống server: Balancing - App - DB

1. Mục đích

Tài liệu này mô tả kiến trúc 3 tầng tiêu chuẩn được sử dụng cho hệ thống server:

  • Tăng khả năng mở rộng (Scalability)
  • Tăng tính sẵn sàng (High Availability)
  • Tăng tính bảo mật
  • Dễ vận hành và bảo trì

Mô hình gồm 3 lớp:

Client → Balancing (Nginx) → App Server → Database Server

2. Tổng quan kiến trúc

flowchart LR
    User[Client / User] --> LB[Nginx Load Balancer]
    LB --> APP1[App Server 01]
    LB --> APP2[App Server 02]
    APP1 --> DB[(Database Server)]
    APP2 --> DB

3. Tầng 1 – Balancing (Nginx)

3.1 Vai trò

  • Nhận toàn bộ request từ người dùng
  • Phân phối tải (Load Balancing) đến các App Server
  • SSL termination (xử lý HTTPS)
  • Reverse Proxy
  • Giới hạn truy cập (Firewall layer cơ bản)
  • Rate limiting / IP filtering

3.2 Thành phần

  • Nginx
  • Có thể chạy:
  • Trên 1 VM riêng
  • Hoặc 2 VM (active-active / active-passive)

3.3 Ví dụ đặt tên server

App-Balancer-01
App-Balancer-02

4. Tầng 2 – Application Server (App)

4.1 Vai trò

  • Chạy ứng dụng (Backend, API, Web)
  • Xử lý logic nghiệp vụ
  • Kết nối tới Database
  • Không public trực tiếp ra Internet

4.2 Đặc điểm

  • Chỉ cho phép truy cập từ Balancer
  • Có thể scale ngang (horizontal scaling)
  • Nhiều server chạy song song

4.3 Ví dụ đặt tên

App-PhanMemNhaThuoc-01
App-PhanMemNhaThuoc-02

5. Tầng 3 – Database Server (DB)

5.1 Vai trò

  • Lưu trữ dữ liệu
  • Xử lý truy vấn SQL / NoSQL
  • Backup & replication

5.2 Nguyên tắc bảo mật

  • Không mở port DB ra Internet
  • Chỉ cho phép App Server kết nối
  • Phân quyền theo IP

5.3 Ví dụ đặt tên

DB-PhanMemNhaThuoc-01

6. Luồng xử lý request

  1. Người dùng truy cập domain (ví dụ: https://app.domain.com)
  2. DNS trỏ về Balancer
  3. Nginx nhận request và phân phối đến App Server
  4. App Server xử lý nghiệp vụ
  5. App Server truy vấn Database
  6. Database trả dữ liệu về App
  7. App trả kết quả về Balancer
  8. Balancer trả response về cho người dùng

7. Phân tách mạng (Khuyến nghị)

Tầng Network Public Private
Balancer Public + Private
App Private Không
DB Private Không

8. Ưu điểm của kiến trúc 3 tầng

  • Dễ mở rộng App Server khi tải tăng
  • Database được bảo vệ tốt hơn
  • Có thể thay thế từng tầng mà không ảnh hưởng toàn hệ thống
  • Tối ưu bảo mật theo layer

9. Khuyến nghị nâng cao

  • Sử dụng HA cho Balancer
  • Database replication hoặc cluster
  • Sử dụng Firewall rule chặt chẽ giữa các tầng
  • Triển khai monitoring (Prometheus + Alertmanager)
  • Backup định kỳ DB và cấu hình

10. Ví dụ triển khai thực tế

Tầng Số lượng Ghi chú
Balancer 2 Nginx + Keepalived
App 2–4 Scale theo tải
DB 1–2 Primary + Replica

11. Kết luận

Kiến trúc 3 tầng Balancing - App - DB là mô hình tiêu chuẩn cho hệ thống ứng dụng doanh nghiệp, đảm bảo: - An toàn - Ổn định - Dễ mở rộng - Dễ vận hành