Microservices là gì?
Microservices là kiến trúc chia một hệ thống lớn thành nhiều service nhỏ, độc lập, mỗi service đảm nhiệm 1 domain nghiệp vụ và giao tiếp với nhau qua API (REST/gRPC). Khác với monolith - một codebase duy nhất chứa tất cả tính năng. Ví dụ: Netflix chia thành 600+ microservices.
Microservices là buzzword nhiều người nói nhưng ít ai thực sự cần. Đa số dự án VN scale nhỏ (<100 user đồng thời) nên dùng monolith. Microservices chỉ phù hợp khi quy mô đủ lớn + đội dev đủ kỹ năng manage complexity.
Thành phần
Service Boundaries
Chia theo Domain-Driven Design (DDD): user service, order service, payment service, inventory service. Mỗi service own data + business logic riêng.
API Gateway
Entry point duy nhất từ frontend → microservices. Handle auth, rate limit, route. Ví dụ: Kong, Cloudflare API Gateway.
Service-to-Service Communication
REST/gRPC cho sync calls, Message queue (RabbitMQ, Kafka) cho async events. Tránh tight coupling giữa services.
Database per Service
Mỗi service có DB riêng - không share DB. Đảm bảo loose coupling. Cross-service query qua API hoặc event sourcing.
Service Discovery
Services tìm nhau qua registry (Consul, Eureka) hoặc DNS-based (Kubernetes Service). Tự động routing.
Observability
Distributed tracing (Jaeger, OpenTelemetry), centralized logging (ELK), metrics (Prometheus + Grafana). Debug cross-service khó hơn monolith.
Lợi ích và thời điểm triển khai
Lợi ích
- Service heavy traffic (order, payment) scale up, service ít dùng giữ nguyên. Tiết kiệm resource.
- Mỗi đội own 1-2 service, deploy độc lập. Không conflict merge code, không block nhau.
- Service AI dùng Python, service web dùng Node.js, service real-time dùng Go. Chọn tool đúng cho từng job.
- 1 service crash không kéo theo cả hệ thống. Payment service down vẫn xem được catalog.
Nên triển khai khi
- Quy mô >50 dev hoặc >5 đội độc lập
- Traffic >100k user đồng thời với pattern không đều (1 phần hệ thống heavy hơn)
- Cần deploy nhiều lần/ngày, không thể chờ build monolith 30 phút
- Cần tech stack khác nhau cho từng feature (Python AI, Go realtime)
Câu hỏi thường gặp
Microservices có quá phức tạp cho SME Việt không?
Có - đa số SME VN không cần microservices. Monolith tốt cho: <50 dev, <100k user/ngày, đội nhỏ. Microservices premature optimization sẽ làm chậm dự án + đội burn out. Quy tắc: bắt đầu monolith well-structured (modular), khi grow đủ lớn mới refactor sang microservices từng phần.
Modular monolith vs Microservices - chọn cái nào?
Modular monolith: 1 deployable nhưng code chia rõ ràng theo domain (như Shopify). 90% lợi ích microservices, 10% complexity. Phù hợp 80% dự án VN. Microservices thực sự: chỉ khi cần scale từng service độc lập + multi-team. Alodev mặc định build modular monolith, refactor khi cần.
Microservices có làm dự án đắt hơn không?
Có đáng kể - gấp 2-3x. Lý do: cần infra phức tạp (Kubernetes, API gateway, service mesh), DevOps cao hơn, monitoring stack, testing distributed (E2E, contract tests), nhiều người manage. Cho dự án 200tr-2 tỷ scope thường monolith ROI tốt hơn. Microservices break-even từ dự án 3-5 tỷ+.
Chuyển từ monolith sang microservices có khả thi?
Có, gọi là 'strangler fig pattern' - tách dần từng module ra khỏi monolith. Bắt đầu từ module có boundary rõ ràng (notification, payment), test trong production, đến khi monolith chỉ còn legacy module thì retire. Mất 6-18 tháng tuỳ scope. Không bao giờ rewrite from scratch - chết.
Tại sao có lời khuyên 'monolith first'?
Vì khi mới build, domain boundaries chưa rõ - chia microservices sai = phải refactor liên tục, đắt + chậm. Monolith trước cho phép iterate nhanh, khi domain đã stable mới chia services. Đa số 'thành công microservices' (Netflix, Uber) đều bắt đầu monolith và refactor sau khi đã prove product-market fit.
DevOps là gì?
DevOps (Development + Operations) là văn hoá + tools kết hợp đội phát triển và vận hành để release phần mềm nhanh, ổn định, có thể quay đầu nhanh khi có lỗi. Bao gồm CI/CD (auto build + deploy), IaC (Infrastructure as Code), monitoring + alerting, incident response. Không phải 1 role mà là philosophy.
Zalo Mini App là gì?
Zalo Mini App là ứng dụng được phát triển bởi doanh nghiệp và chạy bên trong Zalo (75M+ user VN) - khách hàng không cần tải app riêng. Mở Zalo → tìm mini app → dùng ngay. Giống WeChat Mini Program tại Trung Quốc. Phù hợp đặc biệt cho dịch vụ địa phương VN: đặt món, đặt lịch khám, mua sắm, đặt vé.








