6 nguyên lý thiết kế microservices
Single Responsibility Principle - Nguyên tắc trách nhiệm duy nhất
Mỗi service chỉ nên handle một công việc. Ví dụ: Hệ thống thương mại điện tử yêu cầu người dùng đăng nhập, cho phép người dùng thanh toán đơn hàng. Trường hợp này ta cần hai service, một để xác thực người dùng (Authentication Service), thứ hai dùng để thanh toán (Payment Service).
Decentralized Data Management - Dữ liệu phi tập trung
Mỗi service tự quản lý database riêng của nó. Việc mỗi service tự quản lý được dữ liệu mà nó cần đảm bảo sự độc lập, khả năng mở rộng và độ tin cậy. Độ tin cậy ở đây được hiểu là khi một service down thì các service khác vẫn hoạt động bình thường.
API-Driven Design - Thiết kế hướng API
Các service giao tiếp với nhau qua API
Stateless
Stateless sẽ không quan tâm tới state hiện tại của request. Ví dụ: Nếu một service xử lý giỏ hàng của khách hàng trong hệ thống ecommerce, service đó sẽ không quan tâm trạng thái hiện tại của request là gì. Bản thân nó sẽ luôn xử lý request bằng cách lấy toàn bộ giữ liệu giỏ hàng và tiến hành bước tiếp theo. Chính sự không quan tâm tới state hiện tại giúp bản thân service độc lập, có thể scale up và có độ ổn định cao.
Loose Coupling - Liên kết lỏng
Các service nên được liên kết lỏng lẻo với nhau, tránh bị phụ thuộc quá nhiều lẫn nhau sẽ giúp dễ dàng scale up
Auto scaling - Tự động mở rộng
Ví dụ: nếu số lượng user truy cập tới service tăng, bản thân service phải tự mở rộng được. Khi user giảm truy cập, các instance trước đó phải được xoá bớt đi.
Hiện nay, Kubernetes có thể đáp ứng yêu cầu này.
Last updated