Service mesh nedir, nasıl çalışır, ne zaman gerekir
Service mesh, mikroservisler arası trafiği güvenlik, yönlendirme ve gözlemlenebilirlikle yöneten altyapı katmanıdır. Çalışma mantığı ve API gateway farkı.
Service mesh nedir?
Service mesh (servis ağı), mikroservisler arasındaki iletişimi yöneten özel bir altyapı katmanıdır. Servislerin birbirine yaptığı çağrılar için güvenli bağlantı, yönlendirme, yeniden deneme, zaman aşımı ve izleme gibi işleri uygulama koduna dokunmadan üstlenir.
Mikroservis sayısı arttıkça her servisin bu işleri kendi kodunda tekrar yazması hem zahmetli hem hataya açık hale gelir. Service mesh bu ortak ihtiyaçları servislerin dışına, platform katmanına taşır. Böylece geliştiriciler iş mantığına odaklanır, ağ davranışı ise merkezi politikalarla yönetilir.
Service mesh nasıl çalışır?
Klasik yapıda her servisin yanına bir vekil (proxy) yerleştirilir; bu yaklaşıma sidecar modeli denir. Servise gelen ve servisten çıkan tüm trafik bu vekilden geçer. Vekiller veri düzlemini (data plane) oluşturur. Bunları yapılandıran ve politikaları dağıtan merkezi bileşen ise kontrol düzlemidir (control plane).
Kontrol düzlemi, vekillere hangi servisin hangisiyle konuşabileceğini, trafiğin nasıl bölüneceğini ve hangi sertifikaların kullanılacağını söyler. Sidecar kullanmayan, düğüm bazlı çalışan ambient gibi yaklaşımlar da vardır; hedef aynıdır: ağ davranışını uygulamadan ayırmak.
Service mesh ne sağlar?
Başlıca yetenekler şunlardır: • Güvenlik: servisler arası trafiğin karşılıklı kimlik doğrulamalı şifreli (mTLS) bağlantıyla taşınması ve hangi servisin hangisine erişebileceğinin politikayla belirlenmesi. • Trafik yönetimi: yeni sürümü kademeli açmak (canary), trafiği oranlayarak bölmek, yönlendirme kuralları. • Dayanıklılık: yeniden deneme, zaman aşımı, devre kesici gibi desenlerin merkezi olarak uygulanması. • Gözlemlenebilirlik: servisler arası çağrıların metrik, log ve izleme verisinin uygulama değiştirilmeden toplanması.
Bu yetenekler dağıtık bir sistemde sorunun nerede olduğunu bulmayı ve riskli değişiklikleri güvenle yayına almayı kolaylaştırır.
Service mesh ile API gateway arasındaki fark
API gateway, dış dünyadan gelen isteklerin sisteme girdiği tek kapıdır; dışarıdan içeriye (kuzey-güney) trafiği karşılar. Kimlik doğrulama, hız sınırlama ve yönlendirme gibi işleri istemciler ile servisler arasında yapar. Service mesh ise servislerin kendi aralarındaki (doğu-batı) trafiği yönetir.
Örneğin bir mobil uygulama sipariş isteği gönderdiğinde istek önce API gateway'e gelir ve doğrulanır. Sipariş servisi, stok ve ödeme servislerini çağırdığında bu iç çağrıların güvenliği, yeniden denemesi ve izlenmesi service mesh tarafından yönetilir. İki bileşen birçok mimaride birlikte kullanılabilir; biri diğerinin yerini almaz.
Istio, Linkerd ve ne zaman gerekir?
Istio ve Linkerd en bilinen service mesh çözümleridir. Istio geniş özellik setiyle öne çıkar ve daha kapsamlı bir yapılandırma gerektirir; Linkerd hafif ve sade bir yaklaşım sunar. Seçim, ekibin ihtiyacına ve işletme kapasitesine göre yapılır.
Service mesh her sistem için gerekli değildir. Az sayıda servisten oluşan bir yapıda ek karmaşıklık ve kaynak maliyeti getirebilir. Servis sayısı arttığında, servisler arası güvenlik ve gözlemlenebilirlik standardı ihtiyacı belirginleştiğinde ve kademeli yayın gibi kontrollü dağıtımlar gerektiğinde anlam kazanır.
Mindset'te service mesh nerede çalışılır?
Mindset'in Istio ile Service Mesh Uygulamaları eğitiminde Service Mesh Kavramı ve Istio Mimarisi, Kurulum ve Sidecar Enjeksiyonu, Trafik Yönetimi Temelleri, Dayanıklılık Desenleri, Güvenlik ve mTLS ile Mesh Gözlemlenebilirliği modülleri yer alır. Linkerd ile Hafif Service Mesh İşletimi ve API Gateway ve Servis Mesh (Kong, Istio) eğitimleri konuyu farklı açılardan ele alır.
İlgili Mindset programı
Istio ile Service Mesh Uygulamaları
Sık sorulan sorular
Service mesh Türkçe'de ne demek?
Türkçe'de servis ağı olarak çevrilir; ancak yaygın kullanımda service mesh olarak kalır. Mikroservisler arası iletişimi yöneten altyapı katmanını ifade eder. Güvenli bağlantı, yönlendirme, yeniden deneme ve izleme gibi işleri her servisin kendi koduna yazmak yerine platform katmanında merkezi olarak çözer.
Istio nedir?
Istio, açık kaynak bir service mesh çözümüdür. Trafik yönetimi, güvenlik ve gözlemlenebilirlik yeteneklerini mikroservis mimarilerine uygulama kodunu değiştirmeden ekler. Geniş özellik setiyle öne çıkar; bunun karşılığında daha kapsamlı bir yapılandırma ve işletim bilgisi gerektirir. Daha hafif bir yaklaşım arayanlar sıklıkla Linkerd'e bakar.
Service mesh performansı etkiler mi?
Her isteğin vekilden geçmesi küçük bir gecikme ve kaynak kullanımı ekler. Hafif çözümler ve sidecar'sız modeller bu maliyeti azaltmayı hedefler. Etkiyi kendi ortamınızda ölçmek gerekir.
Service mesh için Kubernetes şart mı?
Yaygın çözümler Kubernetes üzerinde çalışacak şekilde tasarlanmıştır ve en çok orada kullanılır. Kavramsal olarak mesh fikri başka ortamlara da uygulanabilir ancak araç desteği değişir ve kurulum ile işletim daha zahmetli olabilir. Bu yüzden pratikte service mesh çoğunlukla Kubernetes ile birlikte düşünülür.
İlgili rehberler
İlgili eğitimler
Kategori: DevOps ve Bulut Teknolojileri, Yazılım Geliştirme