Bạn có biết?
Hai ứng dụng cùng tính năng, cùng công nghệ — một cái chết ngạt ở 1.000 user, một cái phục vụ 10 triệu user vẫn ngon lành. Khác biệt không nằm ở code, mà nằm ở kiến trúc: dữ liệu đặt ở đâu, cache tầng nào, queue nào đỡ đằng sau, và khi một thành phần sập thì chuyện gì xảy ra. Đó chính là System Design — kỹ năng tách biệt developer khỏi engineer.
System Design là gì?
System Design là quá trình thiết kế kiến trúc hệ thống trước khi viết code: chọn thành phần (web server, database, cache, queue, CDN), xác định cách chúng kết nối, và cân bằng giữa các yếu tố — hiệu năng, chi phí, độ phức tạp, khả năng chịu lỗi. Không có "đáp án đúng duy nhất" — chỉ có trade-off: mỗi quyết định đánh đổi thứ gì đó.
Ví dụ: để chịu tải 1 triệu request/giây, bạn có thể mua 100 server rẻ (scale ngang) hoặc 10 server đắt (scale dọc). Cả hai đều "đúng" — nhưng chi phí, độ phức tạp vận hành và hành vi khi lỗi hoàn toàn khác nhau.
Vì sao Backend Developer cần biết System Design?
- Phỏng vấn — vòng system design là tiêu chuẩn ở mọi công ty lớn (FAANG, unicorn VN); nó đánh giá tư duy kiến trúc, không phải khả năng thuộc lòng API
- Thực tế production — hệ thống của bạn sẽ lớn: 1 server → vài server → cluster; nếu không thiết kế trước, bạn vá mãi không hết
- Giao tiếp — nói chuyện được với team hạ tầng, database, DevOps bằng cùng ngôn ngữ kiến trúc
- Ra quyết định — biết khi nào cần cache, khi nào cần queue, khi nào "đừng thêm phức tạp"
Các khối xây dựng cơ bản (Building Blocks)
| Khối | Giải quyết vấn đề gì | Bài liên quan trong series |
|---|---|---|
| Load Balancer | Phân phối request ra nhiều server | Load Balancer |
| Cache | Đọc nhanh, giảm tải database | Caching & CDN |
| Database Scaling | Dữ liệu lớn hơn một máy | DB Scaling |
| Message Queue | Bất đồng bộ, giảm ghép nối | Message Queue |
| API Design | Giao tiếp giữa client và server | REST vs gRPC vs GraphQL |
| Consistency | Dữ liệu đồng bộ thế nào khi phân tán | CAP & Consistency |
Lộ trình học 4 bước
- Nắm vững từng khối — hiểu sâu từng building block: load balancer, cache, queue, database (chính là series này)
0 bình luận
Đang tải bình luận...
Để lại bình luận