Khi nào nên tách microservices (và khi nào không)
Monolith đâu phải kẻ thù. Cách tụi mình quyết định ranh giới dịch vụ dựa trên đội ngũ và tải.
Microservices hay được nhắc tới như giải pháp cho mọi vấn đề mở rộng. Sự thiệt thì rối hơn vậy: tách dịch vụ sai thời điểm có thể giết chết tốc độ của một startup.
Monolith đâu phải kẻ thù
Hầu hết sản phẩm nên bắt đầu bằng một monolith được tổ chức tốt. Nó dễ phát triển, dễ debug và dễ deploy hồi đội còn nhỏ. Microservices thêm chi phí vận hành, mà chỉ trả công khi mình đủ lớn.
Khi nào nên tách
- Khi các phần hệ thống cần mở rộng với tốc độ rất khác nhau.
- Khi nhiều đội cần triển khai độc lập, không phải chờ nhau.
- Khi một miền nghiệp vụ đã đủ ổn định để vẽ ranh giới rõ ràng.
Hãy tách dịch vụ vì tổ chức của mình, chớ không vì sơ đồ kiến trúc trông cho đẹp.
— Minh Trần
Lời khuyên của tụi mình: bắt đầu monolith, vẽ ranh giới module rõ ràng từ sớm, và chỉ tách ra khi nỗi đau thiệt sự xuất hiện.
Thiết kế hệ thống vận hành cho doanh nghiệp sản xuất và phân phối. Ưa cái gì gọn gàng đơn giản.