Wavi Books · System Design & Backend
Microservices Architecture là gì? Khi nào doanh nghiệp nên dùng?
Nguyễn Minh Trí · Biên tập chuyên môn Wavi Books

Phân tích microservices, monolith, ranh giới dịch vụ, dữ liệu, event-driven và chi phí vận hành cho đội ngũ backend.
## Microservices Architecture là gì?
Microservices là cách tổ chức hệ thống thành các dịch vụ có ranh giới rõ, có thể phát triển và triển khai tương đối độc lập. Mỗi dịch vụ thường sở hữu logic nghiệp vụ và dữ liệu của phạm vi mình phụ trách. Lợi ích chính là giảm phụ thuộc giữa đội ngũ, không phải làm hệ thống tự động nhanh hơn.
## Khi nào microservices có giá trị?
Microservices phù hợp khi sản phẩm đủ lớn, nhiều đội cần triển khai độc lập, ranh giới nghiệp vụ đã tương đối rõ và tổ chức có năng lực vận hành phân tán. Nếu một đội nhỏ đang tìm product-market fit, modular monolith thường đơn giản và kinh tế hơn.
## Chi phí thường bị đánh giá thấp
Khi tách dịch vụ, lời gọi trong bộ nhớ trở thành giao tiếp qua mạng. Bạn phải xử lý timeout, retry, idempotency, quan sát phân tán, version API và dữ liệu không đồng bộ. CI/CD, logging, tracing và platform engineering trở thành phần bắt buộc thay vì tùy chọn.
## Dữ liệu và event-driven
Một microservice nên sở hữu dữ liệu của nó thay vì nhiều dịch vụ cùng sửa một database. Khi cần phối hợp, đội ngũ có thể dùng API hoặc sự kiện. Event-driven giúp giảm liên kết trực tiếp nhưng tạo thêm thách thức về schema, thứ tự, trùng lặp và khả năng replay.
## Lộ trình đọc
Building Microservices 2nd Edition giúp hiểu ranh giới dịch vụ, tổ chức và tiến hóa kiến trúc. Microservices: Up and Running trình bày hành trình triển khai từng bước. Building Event-Driven Microservices phù hợp khi hệ thống cần Kafka, event streaming và quyền sở hữu dữ liệu theo domain.
Với doanh nghiệp Việt Nam, quyết định nên xuất phát từ cấu trúc đội ngũ, tốc độ thay đổi và năng lực vận hành. Chọn microservices chỉ vì xu hướng có thể làm chậm sản phẩm và tăng chi phí đáng kể.
Câu hỏi thường gặp
Microservices có tốt hơn monolith không?
Không có lựa chọn tốt tuyệt đối. Microservices đổi sự đơn giản của monolith lấy khả năng tách đội ngũ và triển khai, đồng thời tăng độ phức tạp vận hành.
Startup có nên dùng microservices từ đầu?
Phần lớn startup nên cân nhắc modular monolith trước, trừ khi có yêu cầu hoặc năng lực tổ chức đặc biệt.
Event-driven có bắt buộc trong microservices không?
Không. Dịch vụ có thể giao tiếp đồng bộ qua API hoặc bất đồng bộ qua sự kiện tùy yêu cầu và trade-off.