Kiến trúc Microservices: Mạng lưới các Dịch vụ Độc lập

By JoeVu, at: 20:46 Ngày 28 tháng 10 năm 2022

Thời gian đọc ước tính: __READING_TIME__ phút

Microservices Architecture Explained: The Network of Independent Services
Microservices Architecture Explained: The Network of Independent Services

Nếu thiết kế nguyên khối là một tòa nhà lớn duy nhất, Kiến trúc Microservices là một thành phố hiện đại hoàn toàn. Đó là một phương pháp tiếp cận phân tán, trong đó một ứng dụng lớn được chia thành các dịch vụ nhỏ hơn, độc lập, giao tiếp với nhau qua một mạng.

 

Microservices là gì?

 

Một ứng dụng microservices là một tập hợp các dịch vụ nhỏ, tự chủ, mỗi dịch vụ đại diện cho một khả năng kinh doanh riêng biệt (như "Hàng tồn kho", "Thanh toán" hoặc "Quản lý người dùng")

 

  • Triển khai độc lập: Mỗi dịch vụ có thể được xây dựng, kiểm tra và triển khai độc lập mà không ảnh hưởng đến các dịch vụ khác
     

  • Các dịch vụ tách rời: Chúng không chia sẻ cơ sở mã hoặc cơ sở dữ liệu. Giao tiếp xảy ra thông qua các cơ chế nhẹ như API (ví dụ: REST hoặc gRPC) hoặc hàng đợi tin nhắn
     

  • Tính không đồng nhất về công nghệ: Các nhóm được tự do chọn ngôn ngữ lập trình, framework và cơ sở dữ liệu tốt nhất cho từng dịch vụ cụ thể.

 

Mặt Tốt của Thành Phố

 

Microservices tỏa sáng khi xử lý sự phức tạp và quy mô:

 

  • Khả năng mở rộng vượt trội: Bạn có thể mở rộng các dịch vụ riêng lẻ dựa trên tải. Nếu dịch vụ "Tìm kiếm" của bạn bận, bạn chỉ cần sao chép dịch vụ đó, tiết kiệm chi phí và tài nguyên
     

  • Chu kỳ phát triển nhanh hơn: Các nhóm nhỏ có thể làm việc độc lập trên dịch vụ của riêng họ, dẫn đến phát triển, thử nghiệm và triển khai các tính năng nhanh hơn
     

  • Khả năng cách ly lỗi (Khả năng phục hồi): Nếu một dịch vụ bị lỗi (ví dụ: "Công cụ Đề xuất" bị sập), phần còn lại của ứng dụng (như "Thanh toán" và "Đăng nhập") vẫn hoạt động
     

  • Tính linh hoạt về công nghệ: Các nhóm có thể áp dụng các công nghệ mới mà không cần phải viết lại toàn bộ ứng dụng

 

Những Thách thức của Mạng Phân tán

 

Độ phức tạp chuyển từ cơ sở mã sang môi trường hoạt động:

 

  • Độ phức tạp về hoạt động: Việc chạy hàng chục hoặc hàng trăm dịch vụ đòi hỏi các công cụ chuyên dụng để giám sát, ghi nhật ký và phối hợp (như DockerKubernetes)
     

  • Giao dịch phân tán: Các hoạt động bao gồm nhiều dịch vụ (ví dụ: đặt hàng để cập nhật hàng tồn kho và xử lý thanh toán) trở nên khó quản lý và đảm bảo tính nhất quán của dữ liệu
     

  • Chi phí gỡ lỗi: Theo dõi một yêu cầu trên nhiều dịch vụ và các cuộc gọi mạng phức tạp hơn nhiều so với việc theo dõi một cuộc gọi hàm trong một ứng dụng duy nhất
     

  • Chi phí cao hơn: Cơ sở hạ tầng hoạt động (mạng, máy chủ, service mesh) cần thiết để hỗ trợ một hệ thống phân tán tốn kém hơn so với một khối đơn lẻ.

 

Khi nào nó có ý nghĩa?

 

Microservices là tiêu chuẩn vàng cho các ứng dụng lớn, phức tạp và có khả năng mở rộng cao (như Netflix, Amazon hoặc Uber), nơi tính khả dụng cao, triển khai độc lập nhanh chóng và đa dạng về công nghệ là những yêu cầu quan trọng.

 

Đối với các ứng dụng đơn giản hoặc mới, chi phí vận hành thường lớn hơn lợi ích.

 

Tag list:

Theo dõi

Theo dõi bản tin của chúng tôi và không bao giờ bỏ lỡ những tin tức mới nhất.