Backend nền tảng
Tư duy khi thiết kế một hệ thống
Năm bước từ bài toán đến vận hành, kèm số nên nhớ và sáu sai lầm hay gặp.
Đi từ nhu cầu đến cách xây, không nhảy thẳng vào công nghệ.
Năm bước
- Hiểu bài toán. Ai dùng, ngoại lệ gì, quy mô nào, sai dữ liệu thì hậu quả gì.
- Mô hình dữ liệu và API. Thực thể, truy vấn chính, danh sách endpoint vừa đủ.
- Thiết kế tổng quan. Client, gateway, cân bằng tải, service, DB, cache, queue. Chỉ thêm khối khi có lý do.
- Đào sâu và đánh đổi. Chọn hai hoặc ba điểm rủi ro: đồng thời, hiệu năng, mạng, bảo mật. Ghi được gì và mất gì.
- Đưa lên và vận hành. Test, deploy, rollback, log, metrics, cảnh báo.
Số nên có trong đầu
- 1 ngày khoảng 86.400 giây. 1 triệu request/ngày khoảng 12 request/giây trung bình. Giờ cao điểm thường gấp 2–10 lần.
- Đọc RAM hoặc Redis: micro giây đến dưới 1 ms. Truy vấn DB có index: vài ms đến vài chục ms.
- Round-trip xuyên lục địa: khoảng 100–150 ms. Vì vậy CDN có ích.
- 99,9% sẵn sàng là khoảng 8,8 giờ downtime mỗi năm.
Sáu sai lầm
- Xây khi chưa hiểu nghiệp vụ.
- Thiết kế thừa, kể cả khi AI gợi ý hệ thống lớn.
- Chọn công nghệ mà không ghi đánh đổi.
- Chỉ nghĩ đường suôn sẻ, quên timeout, retry, idempotency, transaction.
- Bỏ bảo mật cơ bản: query có tham số, quyền sở hữu, hash mật khẩu, secret.
- Lên production mà không có test và giám sát.