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¶
- Người dùng truy cập domain (ví dụ: https://app.domain.com)
- DNS trỏ về Balancer
- Nginx nhận request và phân phối đến App Server
- App Server xử lý nghiệp vụ
- App Server truy vấn Database
- Database trả dữ liệu về App
- App trả kết quả về Balancer
- 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 | Có | Có |
| App | Private | Không | Có |
| DB | Private | Không | Có |
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