System Design không chỉ là kỹ năng dành cho kiến trúc sư phần mềm – mà còn là chìa khóa để xây dựng hệ thống bền vững, có khả năng mở rộng và đáng tin cậy. Nếu bạn đang bắt đầu, hãy nắm vững các khái niệm cốt lõi dưới đây:
1️⃣ Kiến Trúc Cốt Lõi (Core Architecture)
- Monolith: Ứng dụng tất cả trong một, chạy như một dịch vụ duy nhất.
- Modular Monolith: Cấu trúc module độc lập, dễ bảo trì, triển khai cùng nhau.
- Microservices: Dịch vụ độc lập, dễ mở rộng và triển khai riêng lẻ.
- Serverless: Chạy code mà không cần quản lý máy chủ.
- Event-Driven Architecture: Các dịch vụ phát và phản hồi theo sự kiện.
2️⃣ Mẫu Thiết Kế (Design Patterns)
- Idempotency: Gọi lại nhiều lần vẫn cho kết quả như nhau.
- Circuit Breaker: Ngăn lỗi lan rộng trong hệ thống microservices.
- API Gateway: Cổng vào API, định tuyến và bảo mật.
- Service Registry: Theo dõi động các dịch vụ đang hoạt động.
- Service Mesh: Lớp hạ tầng quản lý giao tiếp giữa các dịch vụ.
- Message Queue: Giao tiếp bất đồng bộ giữa các thành phần.
- Orchestration: Điều phối tập trung giữa các dịch vụ.
- Choreography: Giao tiếp phân tán qua sự kiện.
3️⃣ Khả Năng Mở Rộng & Độ Tin Cậy (Scalability & Reliability)
- Replication: Nhân bản dữ liệu để tăng tính sẵn sàng.
- Failover: Tự động chuyển sang hệ thống dự phòng khi có lỗi.
- Autoscaling: Tự động mở rộng tài nguyên theo nhu cầu.
- Rate Limiting: Giới hạn số lượng yêu cầu trong thời gian nhất định.
- Sharding: Chia nhỏ cơ sở dữ liệu để xử lý song song.
- Load Balancer: Phân phối lưu lượng đều giữa các máy chủ.
- Load Shedding: Bỏ qua yêu cầu ưu tiên thấp để bảo vệ hệ thống.
- Containerization: Đóng gói ứng dụng để dễ triển khai.
- Kubernetes: Tự động hóa triển khai và mở rộng container.
4️⃣ Truy Cập Dữ Liệu (Data Access)
- CDN: Mạng phân phối nội dung theo vị trí người dùng.
- Database Indexing: Tăng tốc truy vấn bằng cấu trúc dữ liệu.
- SQL vs NoSQL: Cơ sở dữ liệu quan hệ vs phi quan hệ.
- ACID vs BASE: Tính nhất quán mạnh vs nhất quán dần.
- Cache: Lưu trữ dữ liệu truy cập thường xuyên.
- Data Lake: Kho lưu trữ dữ liệu thô linh hoạt.
- OLTP vs OLAP: Xử lý giao dịch vs phân tích dữ liệu.
- CAP Theorem: Không thể có cả 3: Tính nhất quán, sẵn sàng và chịu phân mảnh.
- Data Warehouse: Kho dữ liệu có cấu trúc phục vụ phân tích.
- Quorum: Cơ chế đồng thuận trong hệ thống phân tán.
📌 Kết Luận
System Design = Kiến thức nền tảng + Tư duy kiến trúc + Kỹ năng thực chiến
Hãy bắt đầu từ những khái niệm trên và luyện tập qua các bài toán thực tế. Bạn sẽ dần xây dựng được tư duy thiết kế hệ thống mạnh mẽ.