Vertical scaling tăng resource cho một máy; horizontal scaling thêm máy. Cách thứ hai cần distribution, coordination và state design nên không tự động tốt hơn.
Vertical scaling tăng resource cho một máy; horizontal scaling thêm máy. Cách thứ hai cần distribution, coordination và state design nên không tự động tốt hơn.
| Câu hỏi | Câu trả lời thực tế |
|---|---|
| Dùng khi nào? | Trong một tình huống thực tế nhỏ, hãy vẽ các thành phần, theo dõi một request hoặc quyết định từ đầu đến cuối và đánh dấu bằng chứng tạo ra ở từng bước. |
| Cần làm gì? | Từ bottleneck đã đo và traffic forecast, so sánh hai instance lớn với bốn instance nhỏ về capacity, availability, state, operation và cost. |
| Biết là đúng bằng cách nào? | Người khác có thể làm lại từ ghi chú của bạn và mỗi nhận định quan trọng đều có output, số đo, kết quả truy vấn hoặc artifact để review. |
| Lỗi hay gặp? | Lỗi phổ biến là chọn công cụ hoặc pattern trước khi nêu rõ bài toán, ràng buộc và cách đo thành công. |
flowchart LR
A[Câu hỏi] --> B[Vertical scaling và horizontal scaling]
B --> C[Ví dụ nhỏ]
C --> D[Bằng chứng]
Điểm quan trọng của sơ đồ là không dừng ở định nghĩa: hãy nối khái niệm với một ví dụ nhỏ và bằng chứng có thể quan sát.
Trong một tình huống thực tế nhỏ, hãy vẽ các thành phần, theo dõi một request hoặc quyết định từ đầu đến cuối và đánh dấu bằng chứng tạo ra ở từng bước.
Trước khi làm, hãy viết dấu hiệu thành công. Sau đó chỉ thay đổi một yếu tố, quan sát kết quả và ghi lại assumption. Với Vertical scaling và horizontal scaling, cách này giúp tách điều bạn biết khỏi điều bạn chỉ đang đoán.
Mục tiêu: Từ bottleneck đã đo và traffic forecast, so sánh hai instance lớn với bốn instance nhỏ về capacity, availability, state, operation và cost.
Kết quả mong đợi: Người khác có thể làm lại từ ghi chú của bạn và mỗi nhận định quan trọng đều có output, số đo, kết quả truy vấn hoặc artifact để review.
Lỗi phổ biến là chọn công cụ hoặc pattern trước khi nêu rõ bài toán, ràng buộc và cách đo thành công.
Khi kết quả khác dự đoán, đừng đổi nhiều thứ cùng lúc. Kiểm tra input, version, environment, quyền truy cập và log trước; sau đó lặp lại từ ví dụ nhỏ nhất.
Mở resource hoặc repository đi kèm ở cuối trang khi bạn cần implementation đầy đủ. Hãy kiểm tra version hiện hành trước khi dùng command trong dự án thật.
Học thiết kế hệ thống như một chuỗi quyết định, dùng nền tảng học tập nhỏ làm ví dụ xuyên suốt.
Functional requirement mô tả hành vi user cần; non-functional requirement nêu chất lượng và ràng buộc như latency, accessibility, security, capacity và recovery.
High-level design giải thích boundary, data flow, dependency và tradeoff lớn; low-level design mô tả component, interface, data model, algorithm và cách xử lý failure.