Istio là gì?

Ngày nay, từ "microservices" khá là phổ biến ở nhiều công ty. Các bác dev thì sử dụng "microservices" để thiết kế hệ thống architect, trong khi các bác sys admin quản lý hệ thống cực kỳ phức tạp, hydrid, multi-cloud ... thì istio là công nghệ mới nhất được sử dụng để làm giảm đi độ phức tạp trong quá trình vận hành.

Istio là công cụ mã nguồn mở cho service mesh, là một layer transparent trên chính hạ tầng ứng dụng đã có của các bạn.

Istio có rất nhiều chức năng để cho bạn sử dụng như cung cấp cách secure, kết nối và monitor giữa các service với nhau.

Vậy thì service mesh là gì? Service mesh là một hệ thống microservices được tạo nên bởi hàng trăm ứng dụng và sự tương tác, kết nối giữa các service đó. Những yêu cầu cho 1 hệ thống service mesh:

  • Discovery
  • Load balancing
  • Failure recovery
  • Metrics
  • Monitoring
  • A/B testing
  • Canary releases
  • Rate limiting
  • Access control
  • End-to-end authentication

Istio, tại sao nó quan trọng?

Istio dễ dàng tạo ra hệ thống network giữa các service với load balancing, service-to-service authen, monitoring, tracing debug ... Istio hỗ trợ điều đó bằng cách inject 1 cái gọi là proxy sidecar được chạy bằng envoy proxy, cái mà sẽ chặn tất cả mọi request trong network tới service và sau đó được cấu hình lại và quản lý bởi Istio control plane với nhiều chức năng như:

  • Auto Load balancing HTTP, gRPC, Web socket, TCP.
  • Routing rules, retries, failover ...
  • Cung cấp lớp access control, rate limits và quotas.
  • Log tất cả các request bao gồm cả ingress và egress.

Istio và chức năng

Istio có 5 chức năng chính:

  • Traffic Management
  • Security
  • Observability
  • Platform support
  • Integration and customization
Mô hình của Istio service mesh.

Istio bao gồm 2 phần đó là Data plane và Control plane.

  • Data plane là các envoy proxy sidecar, cái mà istio sẽ đặt cạnh ứng dụng và sẽ giao tiếp với ứng dụng đó thông qua envoy proxy sidecar.
  • Control plane là quản lý và cấu hình các route của traffic trong service mesh.
Istio Control Plane

Mixer:

  • Là 1 thành phần platform-independent cái mà quản lý access control, đi collect metrics data monitor từ các envoy proxy sidecar.

Pilot:

  • Cung cấp service-discovery cho proxy sidecar, quản lý traffic với routing, A/B testing, canary deployment ... timeout, retries, circuit breaker  ...

Citadel:

  • Là 1 thành phần quan trọng trong istio service mesh. Nó cung cấp chức năng làm tăng tính bảo mật giữa các service, end user authen với định danh và quản lý credential.

Trên đây là bài giới thiệu về istio, hy vọng các bạn có cái nhìn tổng quan về service mesh và Istio. Bài kế tới sẽ nói về cách triển khai Istio và đừng quên comment phía dưới để thảo luận nhé. :D