Tìm hiểu về System Design: Microservice

20:20 17/04/2023

Microservice là gì?, tại sao bây giờ mới là Microservice mà không phải là từ ngày xưa, từ cái ngày mà mình mới bắt đầu học code? Hãy cùng giải đáp những thắc mắc về Microservice một cách đơn giản và dễ hiểu nhất nhé!

Microservices là gì?

Microservices architecture (kiến trúc microservices) cho phép một đội phát triển lớn (gồm rất nhiều người) cùng xây dựng một ứng dụng scalable (scalable application – ứng dụng có khả năng mở rộng) được composed (biên soạn) từ nhiều services có liên kết lỏng lẻo.

Microservices architecture

Microservices trông như thế nào?

Microservices là những liên kết lỏng lẻo, mỗi service xử lý một chức năng cụ thể bên trong một ứng dụng lớn.

Ví dụ: trong một ứng dụng thương mại điện tử thì giỏ hàng, hóa đơn, thông tin người dùng, push notification (đẩy thông báo) đều có thể là mỗi một microservice riêng lẻ.

Những nhóm chức năng này đôi khi được gọi là domains.

Hệ thống Domains

Microservices giao tiếp với nhau thông qua các interfaces được định nghĩa chặt chẽ trên một vùng nhỏ (small surface area). Các small-surface-areas giới hạn khu vực bị ảnh hưởng của sự cố, khiến cho mỗi service trở nên dễ dàng được mô tả trên toàn bộ ứng dụng.

Microservices nói chuyện với nhau thông qua RPC (Remote Procedure Call), Even streaming, hoặc Message brokers. RPC như gRPC cho phép response (phản hồi) nhanh hơn nhưng phạm vi ảnh hưởng khi gặp sự cố cũng lớn hơn.

gRPC

Even streaming cung cấp sự cô lập tốt hơn giữa các services, nhưng cần nhiều thời gian hơn để xử lý.

Even streaming

Deploy microservices

Microservice có thể deploy (triển khai) một cách độc lập. Vì mỗi service nhỏ, dễ dàng mô tả, và có phạm vi ảnh hưởng khi gặp sự cố nhỏ hơn. Điều này giúp những người làm công việc vận hành dễ dàng deploy một cách thường xuyên và nó cũng cho phép việc mở rộng hoặc thu hẹp dễ dàng hơn.

Deploy microservices

Bảo mật

Một kiến trúc microservices được xây dựng tốt cũng giấu thông tin cực tốt. Tức là chia nhỏ một cơ sở dữ liệu (database) thành các thành phần logic, và giữ mỗi thành phần đó ẩn trong các microservice tương ứng.

Đối với các thành phần logic, điều đó có nghĩa là phân chia thành các schema bên trong 01 database cluster hoặc một database vật lý riêng biệt.

 

Schema

Khi nào thì dùng Microservices?

Việc xây dựng microservices tốn nhiều tiến cho việc xây dựng và vận hành. Nên nó chỉ có ý nghĩa với những team cực lớn. Lúc đó, mỗi domain, function có thể độc lập được bảo trì bởi một team nhất định. Mỗi service có thể được thiết kế, triển khai và mở rộng một cách độc lập. Vì vậy nó cũng không phù hợp với các startups nhỏ.

Bài viết  tìm hiểu về microservice mong rằng sẽ giúp ích cho các bạn lập trình viên trong quá trình học tập và nghiên cứu của mình. Chúc các bạn sinh viên học tập tốt và tiếp thu thêm nhiều kiến thức bổ ích chuyên sâu về ngành công nghệ thông tin nhé!

Bộ môn Công nghệ thông tin
Trường Cao đẳng FPT Mạng cá cược bóng đá cơ sở Đà Nẵng

Cùng chuyên mục

Đăng Kí học Fpoly 2023

Bình Luận