Cơ bản Service Mesh

meotism - Sep 24 - - Dev Community

Hi, mình là Meotism. Bài viết này sẽ hỗ trợ các bạn hiểu sơ lược về Service Mesh để triển khai mô hình Microservices.
Nội dung bài viết sẽ có 4 phần chính:

  • Khái niệm
  • Thành phần trong Service Mesh
  • Đánh giá Service Mesh
  • Triển khai ứng dụng trong thực tế

1. Khái niệm Service Mesh

Service Mesh là một layer hạ tầng trung gian trong mô hình Microservices, được sử dụng điều khiển và giám sát toàn bộ các luồng packets (network traffic) được gửi nhận giữa các services (service-to-service)thông qua các APIs bằng các giao thức(HTTP/1.1, HTTP/2, TCP TLS/mTLS).

2. Thành phần trong Service Mesh

Có 2 thành phần chính trong Service Mesh:

  • Data Plane

  • Control Plane

Data Plane là vùng triển khai mô hình network là tập hợp các Sidecar Proxy với các Sidecar giám sát các luồng packets gửi nhận của từng instance services. Các ứng dụng Data Plane như: Service Discovery, Load Balancing, Authentication and Authorization, Request Tracing, Traffic Management, Fault Injection, Rate Limiting, Data Observability. Một số Data Plane phổ biến là NGINX, HAProxy,...

Control Plane là trung tâm điều khiển mọi hoạt động của của service-mesh, để thiết lập cấu hình của Sidecar Proxy và thu thập, cung cấp dữ liệu giám sát và phân tích network trong nội bộ Microservices. Một số Control Plane phổ biến như Istio, Consult,...

3. Đánh giá Service Mesh

***** Ưu điểm:

  • Quản lý và kiểm soát giao tiếp mạng vào/ra giữa các services hiệu quả.

  • Dễ dàng quan sát, phân tích lỗi liên quan đến network tại các services.

  • Đinh danh và xác thực các kết nối mạng giữa các instance service.

  • Triển khai và kiểm thử rất tiện và hiệu quả, chỉ cần config một lần sẽ không cần config những lần sau và không quan tâm đến vấn đề network và giao tiếp giữa các services.

***** Nhược điểm:

  • Phức tạp hơn khi triển khai ứng dụng theo mô hình Microservices.

  • Làm tăng độ trễ cho thời gian thực thi ứng dụng & giao tiếp, do request phải đi qua những Sidecar Proxy kiểm tra.

  • Không định danh được các third-party tích hợp với các services hoặc hệ thống bên ngoài như: routing type — loại định tuyến (static routing, dynamic routing) , transformation mapping — ánh xạ chuyển đổi giữa các giao thức kết nối (HTTP rest <-> gRPC)

Happy Reading and happy Coding!

*References: *

  1. https://www.nginx.com/blog/what-is-a-service-mesh/

  2. https://blog.envoyproxy.io/the-universal-data-plane-api-d15cec7a

  3. https://medium.com/vinid/c%C6%A1-b%E1%BA%A3n-service-mesh-istio-cho-ng%C6%B0%E1%BB%9Di-m%E1%BB%9Bi-b%E1%BA%AFt-%C4%91%E1%BA%A7u-3563b582ed51

. . . . . . . . . . . . . .
Terabox Video Player