Microservice

Câu hỏi:

Thế nào thì có thể gọi là Micro-Service?

Gợi ý:

- Không có định nghĩa rõ ràng, nhưng khi phát triển dựa vào kiến trúc microservice thì thường mong muốn đạt được các điều sau:

+ Thực hiện một chức năng nhất định của business domain

+ Độc lập về development (không phụ thuộc vào team khác, môi trường khác, mỗi team có thể develop một stack khác nhau)

+ Độc lập về delpoy ( thằng khác chết kệ nó, mình chết ko ảnh hưởng đến thằng khác)

+ Dễ mở rộng cũng như update những thay đổi về bussiness và environment 

+ Develop nhanh, làm đến đâu có thể golive đến đó

+ Tận dụng thế mạnh của stack khác nhau cho các mục đích implement khác nhau.

- Nên kế thừa Conway's law, thiết kế service phải theo cơ cấu của tổ chức nữa. Ví dụ, công ty phòng IT & phòng kỹ thuật tách biệt nhau, mà lúc thiết kế gom lại làm 1 service là không được gọi là micro rồi. Nên trở lại câu chuyện bạn BA phải giỏi để design cái bulkhead cho ngon

- Service đó phải cover vừa và đủ các bounded context thì quan trọng hơn việc xác định các size. Chia nhỏ quá không khéo thành function as a service cũng không tốt, quan trọng là chia nhỏ đến bao nhiêu là đủ

 Tham khảo từ cộng đồng Việt Nam Microservices Group