Mặc dù tôi còn khá mới đối với thế giới microservices, nhưng tôi sẽ cố gắng trả lời câu hỏi của bạn đầy đủ nhất có thể.
Khi bạn sử dụng kiến trúc microservices, bạn sẽ tăng khả năng tách và tách các mối quan tâm. Vì bạn đang chia nhỏ ứng dụng của mình.
Điều này dẫn đến việc cơ sở mã của bạn sẽ dễ quản lý hơn (mỗi ứng dụng độc lập với các ứng dụng khác để duy trì và chạy). Do đó, nếu bạn làm đúng , việc thêm các tính năng mới vào ứng dụng của bạn sẽ dễ dàng hơn trong tương lai . Trong khi với một kiến trúc nguyên khối, nó có thể trở thành một điều rất khó thực hiện nếu ứng dụng của bạn lớn (và bạn có thể giả định rằng nó sẽ xảy ra vào một thời điểm nào đó).
Việc triển khai ứng dụng cũng dễ dàng hơn , vì bạn đang xây dựng các microservices độc lập riêng biệt và triển khai chúng trên các máy chủ riêng biệt. Điều này có nghĩa là bạn có thể xây dựng và triển khai các dịch vụ bất cứ khi nào bạn muốn mà không cần phải xây dựng lại phần còn lại của ứng dụng.
Vì các dịch vụ khác nhau có quy mô nhỏ và được triển khai riêng biệt, nên rõ ràng là dễ dàng mở rộng quy mô chúng hơn, với lợi thế là bạn có thể mở rộng các dịch vụ cụ thể của ứng dụng ứng dụng đang tải quá mức).
Tuy nhiên, đối với các ứng dụng không có ý định trở nên quá lớn để quản lý trong tương lai. Tốt hơn là giữ nó ở kiến trúc nguyên khối. Vì kiến trúc microservices có một số khó khăn nghiêm trọng liên quan. Tôi đã nói rằng việc triển khai microservices dễ dàng hơn, nhưng điều này chỉ đúng khi so sánh với các khối lớn. Sử dụng microservices, bạn có thêm sự phức tạp khi phân phối các dịch vụ đến các máy chủ khác nhau ở các vị trí khác nhau và bạn cần tìm cách quản lý tất cả những điều đó. Xây dựng microservices sẽ giúp bạn về lâu dài nếu ứng dụng của bạn lớn, nhưng đối với các ứng dụng nhỏ hơn, việc duy trì nguyên khối sẽ dễ dàng hơn.