Bài viết liên quan
Kiến trúc Microservices
Microservices Architecture
Microservices là gì?
Microservices (hay Microservices Architecture - MSA) là kiến trúc cấu trúc ứng dụng dưới dạng tập hợp các dịch vụ nhỏ, loosely coupled, mỗi service sở hữu cơ sở dữ liệu riêng (database per service) và vận hành trong container độc lập. Khái niệm được Martin Fowler và James Lewis chính thức hóa năm 2014, trở thành nền tảng cho các dịch vụ tài chính số như MoMo, ZaloPay, VNPay và core banking của Techcombank (đã chuyển đổi từ monolith sang microservices từ năm 2020).
Năm đặc điểm cốt lõi
- Single Responsibility: mỗi service chỉ đảm nhận một nghiệp vụ duy nhất (ví dụ: Card-Service, Loan-Service, KYC-Service).
- Independent Deployment: triển khai độc lập, không ảnh hưởng service khác – Netflix deploy trung bình 4.000 lần/ngày.
- Decentralized Data: mỗi service quản lý DB riêng (PostgreSQL, MongoDB, Cassandra); không dùng chung database.
- API-first Communication: giao tiếp qua RESTful API, gRPC, GraphQL hoặc message queue (Kafka, RabbitMQ).
- Polyglot Programming: mỗi service có thể dùng ngôn ngữ khác nhau (Java, Go, Node.js, Python).
Pattern thường dùng trong ngân hàng
- API Gateway: Kong, Apigee, AWS API Gateway làm cổng vào duy nhất.
- Service Mesh: Istio, Linkerd quản lý giao tiếp, bảo mật mTLS giữa các service.
- Circuit Breaker: Hystrix, Resilience4j ngắt mạch khi service downstream lỗi, tránh cascade failure.
- Saga Pattern: xử lý giao dịch phân tán nhiều service (ví dụ: chuyển tiền liên ngân hàng).
- CQRS + Event Sourcing: tách lệnh và truy vấn, kết hợp ghi log sự kiện.
Ví dụ thực tế
Một ngân hàng Việt Nam triển khai microservices cho hệ thống cho vay: Customer-Service (quản lý khách hàng) → Credit-Scoring-Service (chấm điểm tín dụng, gọi AI model) → Loan-Origination-Service (xử lý hồ sơ) → Disbursement-Service (giải ngân) → Notification-Service (gửi SMS/Push). Khi service chấm điểm tín dụng cần nâng cấp model AI, team có thể deploy bản mới trong 30 phút mà không downtime toàn hệ thống – điều bất khả thi với monolithic. Tuy nhiên, microservices cũng đặt ra thách thức về distributed tracing, data consistency (CAP theorem) và tăng độ phức tạp vận hành, đòi hỏi đầu tư mạnh vào SRE (Site Reliability Engineering).