Microservices hiểu về ưu nhược điểm

Thực ra không có định nghĩa chính thức cho Microservices, nhưng bạn có thể hiểu đó là một phong cách xây dựng kiến trúc một ứng dụng, hệ thống sẽ bao gồm tập hợp các dịch vụ (Service) triển khai độc lập, được ghép nối với nhau.

Ví dụ 1 hệ thống microservice bán hàng online bao gồm các service: Sản phẩm, đơn hàng, khách hàng, 3 service này đặt trên 3 máy chủ khác nhau, khi hoạt động chúng sẽ kết nối gọi sang nhau.

Mỗi microservice tập trung vào một nhiệm vụ cụ thể và giao tiếp với các dịch vụ khác thông qua các hình thức kết nối như API, GRPC. Cách làm này cho phép tính linh hoạt, khả năng mở rộng và khả năng phục hồi cao hơn so với kiến trúc nguyên khối (Monolith), trong đó tất cả các thành phần được liên kết chặt chẽ và triển khai cùng nhau.

Khả năng mở rộng

Microservices có thể được triển khai và mở rộng (Scale up) quy mô một cách độc lập, cho phép sử dụng tài nguyên hiệu quả hơn và khả năng mở rộng lớn hơn. Để dễ hiểu hơn, giả sử một hệ thống bán hàng có service đơn hàng tăng đột biến vào ngày tết, bạn có thể nâng cấp server đơn hàng lên mà không ảnh hưởng server khác.

Tính độc lập

Nếu một vi dịch vụ bị lỗi, tác động sẽ chỉ bị ảnh hưởng đối với dịch vụ đó và phần còn lại của ứng dụng có thể tiếp tục hoạt động bình thường.

Tính linh hoạt

Microservices có thể được phát triển và triển khai bằng các công nghệ, ngôn ngữ và công cụ khác nhau, giúp dễ dàng áp dụng các công nghệ mới và tích hợp với các hệ thống hiện có. Ví dụ bạn có thể triển khai Service 1 là ngôn ngữ Python, Service 2 là Golang, Service 3 là Nodejs …v..v mà không ảnh hưởng tới hoạt động hệ thống.

Ra sản phẩm nhanh

Microservices cho phép phát triển và triển khai song song các thành phần riêng lẻ, điều này có thể đẩy nhanh quá trình phát triển tổng thể, thay vì kiến trúc nguyên khối, mỗi lần triển khai(deploy) sẽ ảnh hưởng toàn hệ thống.

Dễ bảo trì

Microservices có thể được bảo trì và cập nhật một cách độc lập, cùng với sự hỗ trợ của các công cụ tự động deploy, monitoring… giúp bạn nhanh chóng phát hiện sự cố ở đâu và nhanh chóng sửa chữa.

Nhược điểm

Đương nhiên rồi, không hệ thống nào hoàn hảo, nó cũng có những thách thức, chẳng hạn như sự phức tạp gia tăng trong việc quản lý và triển khai một số lượng lớn dịch vụ cũng như nhu cầu kết nối và phối hợp hiệu quả giữa các dịch vụ với nhau.

Các service kết nối với nhau sẽ không nhanh bằng kiến trúc nguyên khối.

Nếu các Service sử dụng nhiều những công nghệ không đồng nhất khác, có thể gia tăng chi phí cho việc bảo trì, phát triển, nhân lực.

Khi nào sử dụng Microservice

Kiến trúc nguyên khối phù hợp hơn với các ứng dụng vừa và nhỏ, còn các hệ thống có logic xử lý phức tạp nên sử dụng Microservice. Việc lựa chọn hoàn toàn dựa vào nhu cầu và điều kiện của cá nhân tổ chức, tránh lãng phí không đáng có.

Kết luận

Hiện tại Microservices là một kiến trúc phổ biến để xây dựng các ứng dụng hiện đại, lớn, có thể mở rộng và linh hoạt, nó hiện nay được sử dụng bởi nhiều công ty tập đoàn lớn.

Total
0
Shares
Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Previous Post

Các bước cải thiện kỹ năng nghe tiếng Anh

Next Post

Monolithic kiến trúc nguyên khối trong hệ thống CNTT

Related Posts