Istio: Service Mesh

0 3,735

Service Mesh kavramına geçiş yapmadan önce microservice mimarisinin üzerinden geçmek faydalı olabilir. Çünkü bu kavram, bu mimariyle anlam kazanan bir yapı.

Monolith – Microservice

Servis Mesh Nedir?

Servis sayılarımız arttıkça operasyonel işlerimiz artıyor ve zorlaşıyor. Mimarideki fonksiyonel gereksinimlerin yanında fonksiyonel olmayan gereksinimlere de odaklanmanız gerekiyor. Service Mesh ürünleri de bu noktada devreye girer.

Service mesh, servislerin iletişimini üzerine alarak scalability, security, load balancing, ve monitoring gibi konuları farklı ürünler yerine tek bir noktadan sunuyor. Bunlar yerine Eureka, Hystrix ve Ribbon gibi ürünleri yapılandırmanız gerekmektedir.

  • service discovery
  • load balancing
  • encryption
  • observability
  • traceability
  • authentication and authorization
  • circuit breaker pattern
nginx.com/blog/what-is-a-service-mesh
nginx.com/blog/what-is-a-service-mesh

Ben bu özellikleri duyduğumda aklıma API Gateway geliyor. Fakat API Gateway’in ana görevi dışarıdan gelen isteği iç network’e almak iken service mesh, servislerin birbirleriyle olan iletişimine odaklanmıştır.

Istio

Istio, Kubernetes cluster’larına kurulan ve open source bir service mesh ürünüdür. Kubernetes’i yazan ekip tarafından yazılıp daha sonra Cloud Native Foundation devredilmiştir.

Kubernetes platformalarındaki kuruluma buradan erişebilirsiniz.

Ayrıca hiç şüphe yok ki Google, Istio’da kazandığı tecrübelerini Anthos’a taşıdı. Anthos ile ilgili habere aşağıdaki linkten ulaşabilirsiniz.

https://bilisim.io/2020/04/23/googlein-bulut-cozumu-anthos-artik-awste/

  • HTTP, gRPC, WebSocket için otomatik Load Balancing
  • Routing rules, failovers, ve fault injection.
  • Cluster içinde otomatik metric, loglama ve bütün trafiğin traces eder.
  • Service-to-Service iletişimde authentication ve authorization sağlar.

Control Plane

İstio belirttiği özellikleri aşağıdaki diagramda gördüğünüz gibi control plane‘den yönetmenizi sağlar.

istio diagram

 

Envoy

Istio, Envoy proxy’sinin extended bir sürümünü kullanır. Envoy, ağdaki tüm servisler için tüm gelen ve giden trafiğe aracılık etmek üzere C ++ ‘da geliştirilen yüksek performanslı bir proxy’dir.

  • Dynamic service discovery
  • Load balancing
  • HTTP/2 and gRPC proxies
  • Circuit breakers
  • Health checks
  • Fault injection

Mixer

Mixer, erişim kontrolünü ve kullanım politikalarını uygular ve Envoy proxy’den telemetri verilerini toplar.

Pilot

Pilot, servislerin service discovery, trafik yönetimini ve resiliency(timeouts, retries, circuit breakers) sağlar.

Kaynak;

Not: Kavramlar, istio’nun kendi dökümanından çeviridir.

Faydalı olması dileğiyle.

Email adresiniz yayınlanmayacaktır.