- Scale dọc (scale up): làm một máy mạnh hơn — thêm CPU, RAM, ổ đĩa. Đơn giản, không cần đổi kiến trúc/code, tránh được độ phức tạp phân tán. Nhược: có trần phần cứng, giá tăng phi tuyến ở cấu hình cao, và vẫn là một điểm chết duy nhất (single point of failure).
- Scale ngang (scale out): thêm nhiều máy rồi chia tải qua load balancer. Ưu: mở rộng gần như không giới hạn, chịu lỗi tốt (một máy chết vẫn còn máy khác), tận dụng phần cứng phổ thông rẻ. Nhược: đòi hỏi service stateless (đẩy state ra Redis/DB dùng chung), thêm độ phức tạp của dữ liệu phân tán (replication/sharding, nhất quán).
Thực tế: scale dọc trước vì nhanh và rẻ về công sức tới khi chạm trần hoặc cần tính sẵn sàng cao; sau đó scale ngang cho tầng ứng dụng (dễ, nếu đã stateless) và xử lý tầng dữ liệu riêng bằng read replica/sharding. Hai hướng không loại trừ nhau — thường kết hợp.