Microservice là một mẫu cấu trúc hướng dịch vụ, trong đó các ứng dụng được xây dựng thành một tập hợp các đơn vị dịch vụ độc lập nhỏ khác nhau. Đây là một cách tiếp cận kỹ thuật phần mềm tập trung vào việc phân rã một ứng dụng thành các module đơn chức năng với các giao diện được xác định rõ ràng. Các module này có thể được triển khai và vận hành độc lập bởi các nhóm nhỏ sở hữu toàn bộ vòng đời của dịch vụ.
Thuật ngữ "vi mô" đề cập đến kích thước của một microservice phải được quản lý bởi một nhóm phát triển duy nhất (5 đến 10 nhà phát triển). Các ứng dụng lớn được chia thành các đơn vị độc lập nhỏ nhất.
Cấu trúc nguyên khối giống như một thùng chứa lớn, trong đó tất cả các thành phần phần mềm của một ứng dụng được gom lại thành một gói duy nhất.
Trong bất kỳ ứng dụng thương mại điện tử nào, có một số tính năng tiêu chuẩn như tìm kiếm, đánh giá & xếp hạng và thanh toán. Khách hàng có thể truy cập các tính năng này bằng trình duyệt hoặc ứng dụng của họ. Khi nhà phát triển của trang thương mại điện tử triển khai ứng dụng, nó là một đơn vị nguyên khối duy nhất. Mã cho các tính năng khác nhau như tìm kiếm, đánh giá & xếp hạng và thanh toán nằm trên cùng một máy chủ. Để mở rộng ứng dụng, bạn cần chạy nhiều phiên bản (máy chủ) của các ứng dụng này.
Cấu trúc Microservice là một phong cách phát triển cấu trúc cho phép xây dựng các ứng dụng thành một tập hợp các dịch vụ độc lập nhỏ được phát triển cho một miền doanh nghiệp. Cấu trúc Microservice chứa các dịch vụ chi tiết và các giao thức nhẹ.
Hãy lấy một ví dụ về ứng dụng thương mại điện tử được phát triển với cấu trúc microservice. Trong cấu trúc Microservice này, mỗi microservice tập trung vào khả năng kinh doanh đơn lẻ. Tìm kiếm, xếp hạng & đánh giá và thanh toán đều có phiên bản (máy chủ) của chúng và giao tiếp với nhau.
Trong cấu trúc nguyên khối, tất cả các thành phần kết hợp thành một module duy nhất. Tuy nhiên, trong cấu trúc microservice, chúng được phân tán thành các module riêng lẻ (microservice) giao tiếp với nhau.
Giao tiếp giữa các microservice là giao tiếp không trạng thái trong đó mỗi cặp yêu cầu và phản hồi là độc lập. Do đó, Microservices có thể giao tiếp dễ dàng. Trong cấu trúc Microservice, dữ liệu được liên kết. Mỗi Microservice có kho dữ liệu riêng biệt.
Các MicroServices dựa vào nhau và chúng sẽ phải giao tiếp với nhau.
So với các hệ thống nguyên khối, có nhiều dịch vụ giám sát hơn được phát triển bằng các ngôn ngữ lập trình khác nhau.
Vì nó là một hệ thống phân tán, nó là một mô hình phức tạp.
Các dịch vụ khác nhau sẽ có cơ chế riêng biệt của nó, dẫn đến một lượng lớn bộ nhớ cho một dữ liệu phi cấu trúc.
Quản lý hiệu quả và làm việc theo nhóm cần thiết để ngăn chặn các vấn đề xếp tầng
Tái tạo một vấn đề sẽ là một nhiệm vụ khó khăn khi nó đã biến mất trong một phiên bản và quay trở lại trong phiên bản mới nhất.
Việc triển khai độc lập rất phức tạp với Microservices.
Khó quản lý ứng dụng khi các dịch vụ mới được thêm vào hệ thống.
Cần có nhiều chuyên gia để hỗ trợ các dịch vụ Microservice được phân phối không đồng nhất.
Microservice rất tốn kém, vì bạn cần duy trì không gian máy chủ khác nhau cho các nhiệm vụ kinh doanh khác nhau.