1. Ana Sayfa
  2. Container
  3. Service Mesh Nedir?
k_zd_m_

Service Mesh Nedir?

022620_1332_ServiceMesh1.png
Ruijie Teknoloji Günü

Service Mesh, genel olarak mikro servislerin birbirleriyle haberleşmesini sağlayan bir altyapı olarak tanımlanabilir. Mikro servisler zaten birbirleriyle API (Application Programming Interface) aracılığıyla haberleşebiliyorlar, bu haberleşme için araya farklı bir altyapı tanımlamaya neden ihtiyaç duyuyoruz? Bu soruya cevap vermeden önce kısaca Service Mesh’in nasıl çalıştığına bakalım.

4 farklı mikro servisten oluşan bir uygulamamız olduğunu düşünelim. Uygulama içerisindeki servislerden A servisi B ve D ile, B servisi D ile, C servisi de A ile haberleşsin (Resim-1).

Resim-1

Bu yapıda gerekli olan haberleşmeyi ilgili mikro servis içerisinde kodlayarak belirtmemiz gerekiyor. Burada ek bir geliştirme maliyetinin yanında bir de olası bir sorunda sorunu bulmak için de harcanacak ek bir zamana ihtiyaç olacak. Örnekte sadece 4 servisimiz var ancak büyük ölçekte bir uygulamada mikro servis sayısı da fazla olacak ve servisler arasındaki iletişim sayısı da katlanarak artacaktır. Peki servisler arası iletişim için Resim-2‘de göreceğiniz gibi her servis için bir adet proxy tanımlasak nasıl olur? Bu proxy’ler sadece iletişim için değil; yük dengeleme (load balancing), yetkilendirme (authentication/authorization), şifreleme (encryption), izleme (monitoring) ve hata durumlarında istekleri kesme (circuit breaker) gibi gereksinimler için de kullanabiliriz.

Resim-2

Bu proxy’lere sidecar proxy, bu yapıya da Service Mesh adı veriliyor. Service Mesh, 2 ana bileşenden oluşuyor.

  1. Control Plane: Adından da anlaşılacağı üzere Service Mesh’in yönetimi için kullanılacak UI ya da API’lar ile kural ve policy’ler bu kapsamda değerlendiriliyor.
  2. Data Plane: Yukarıda bahsettiğim sidecar proxy’ler ise bu kapsamda değerlendiriliyor.

Service Mesh sayesinde uygulama geliştirme yükü azaldığı gibi, uygulamanın ayakta kalması ya da hata durumlarında müdahale için farklı ekiplerin de birlikte çalışabilmesine de olarak sağlıyor. Service Mesh’i kullanmak ihtiyaçlar doğrultusunda düşünülmesi gereken bir durum, mevcut yapınızda böyle bir yapıya ihtiyaç yoksa implementasyon için ekstra bir maliyet çıkartmaya da gerek olmayacaktır.

Piyasada Istio, Linkerd, Consul ve Maesh gibi service mesh çözümleri mevcut. Bu çözümler hakkında “nedir?” makalelerimizi de çok yakında mshowto üzerinde bulabilirsiniz.

Bu konuyla ilgili sorularınızı http://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

https://docs.microsoft.com/en-gb/azure/aks/servicemesh-about

TAGs: Containers, Microservices, Service Mesh, Proxy, Sidecar, Sidecar Proxy, Control Plane, Data Plane, Istio, Linkerd, Consul, Maesh

Ruijie Teknoloji Günü
Yorum Yap

Yazar Hakkında

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'nde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir.

Yorum Yap