hizmet ağıAPI ağ geçidimakine öğrenimibulut altyapısıKubernetesmikro hizmetler
Makine Öğrenimi için Servis Ağı ile Geleneksel API Ağ Geçitleri Karşılaştırması
Makine öğrenimi iş yükleri için oluşturulan servis ağları, dinamik ve yüksek hacimli çıkarım trafiğini ince taneli trafik yönetimiyle ele alırken, geleneksel API ağ geçitleri standart mikro hizmetler için istek yönlendirme, kimlik doğrulama ve hız sınırlamasına odaklanır. Bunlar arasında seçim yapmak, öncelikli endişenizin makine öğrenimine özgü gözlemlenebilirlik ve model sürümleme mi yoksa genel amaçlı API düzenlemesi mi olduğuna bağlıdır.
Öne Çıkanlar
Servis ağları, kademeli dağıtım (canary model) için yerleşik trafik bölme özelliği sağlarken, API ağ geçitleri özel yapılandırma gerektirir.
API ağ geçitleri yalnızca uç noktada gecikme eklerken, servis ağı yan bileşenleri her iç atlamada ek yük getirir.
Servis ağları, makine öğrenimi işlem hatları genelinde dağıtılmış izleme olanağı sunarak API ağ geçitlerinin sağlayamayacağı bir görünürlük sağlar.
GPU destekli yönlendirme, servis ağlarında mümkündür ancak geleneksel API ağ geçitlerinin bir özelliği değildir.
Makine Öğrenimi için Servis Ağı nedir?
Makine öğrenimi hizmetleri arasındaki iletişimi yönetmek, çıkarım trafiğini ele almak, model sürümlemeyi ve GPU'ya duyarlı yönlendirmeyi sağlamak üzere tasarlanmış bir altyapı katmanı.
Istio ve Linkerd gibi servis ağları, çıkarım yönlendirmesi için KServe gibi makine öğrenimine özgü bileşenlerle genişletilebilir.
Gelişmiş trafik bölme özelliğini destekleyerek, üretim ortamında yeni model sürümlerinin kademeli olarak devreye alınmasını ve A/B testlerinin yapılmasını sağlarlar.
Dahili karşılıklı TLS (mTLS), uygulamada kod değişikliği gerektirmeden mikro hizmetler arasındaki iletişimi güvence altına alır.
Envoy gibi sidecar proxy'leri, makine öğrenimi çıkarım çağrıları için gecikme süresi, hata oranları ve veri yükü boyutları da dahil olmak üzere her istek hakkında ayrıntılı telemetri verileri toplar.
Servis ağları, Kubernetes tabanlı makine öğrenimi platformlarıyla entegre olarak bulut tabanlı model sunma ortamları için oldukça uygun hale gelir.
Geleneksel API Ağ Geçitleri nedir?
API isteklerini yönlendiren, kimlik doğrulamayı sağlayan, hız sınırlamaları uygulayan ve arka uç hizmetleri için veri paketlerini dönüştüren merkezi bir giriş noktası.
Popüler API ağ geçitleri arasında Kong, Apigee, AWS API Gateway ve kurumsal ortamlarda yaygın olarak kullanılan NGINX yer almaktadır.
Genellikle ağın uç noktalarında faaliyet gösterirler ve istemciler ile arka uç hizmetleri arasında kuzey-güney yönlü trafiği yönetirler.
API ağ geçitleri, REST, gRPC veya WebSocket isteklerini arka uçla uyumlu formatlara dönüştürerek protokol çevirisi sağlar.
Çoğu, halka açık uç noktaların güvenliğini sağlamak için OAuth 2.0, JWT doğrulaması ve API anahtar yönetimini varsayılan olarak destekler.
Genellikle durumsuzdurlar ve makine öğrenimi çıkarımında yaygın olan uzun ömürlü akış bağlantılarından ziyade istek-yanıt modelleri için optimize edilmişlerdir.
Karşılaştırma Tablosu
Özellik
Makine Öğrenimi için Servis Ağı
Geleneksel API Ağ Geçitleri
Birincil Kullanım Senaryosu
ML çıkarım trafiği yönetimi ve model sürümleme
Genel API istek yönlendirme ve düzenleme
Trafik Modeli
Doğu-batı (hizmetler arası) ve yüksek hacimli çıkarım çağrıları
Kuzey-güney (istemci-hizmet) istek-yanıt
Dağıtım Modeli
Her servisin yanında bulunan Sidecar proxy'si (örneğin, Envoy, Linkerd-proxy).
Ağ kenarına yerleştirilmiş merkezi ağ geçidi.
Model Sürümleme Desteği
Kanarya ve mavi-yeşil model uygulamaları için yerel trafik bölme
Sınırlı; genellikle özel yönlendirme kuralları gerektirir.
Gözlemlenebilirlik
İstek bazlı ölçümler, dağıtılmış izleme ve makine öğrenimine özgü telemetri.
Toplu ölçümler, temel günlük kaydı ve istek sayıları
Güvenlik Özellikleri
Hizmetler arasında otomatik mTLS, ayrıntılı yetkilendirme politikaları
API anahtarı doğrulama, OAuth 2.0, JWT ve IP beyaz listeleme
GPU'ya Duyarlı Yönlendirme
GPU kullanılabilirliğine ve kaynak kullanımına bağlı olarak yönlendirme yapılabilir.
Yerel olarak desteklenmiyor
Gecikme Ek Yükü
Sidecar işlemesi nedeniyle her atlama için genellikle 1-3 ms sürer.
Genellikle tek aşamalı ağ geçidi aramaları için daha düşüktür.
En Uygun Olduğu Kişi
Mikroservisler içeren Kubernetes tabanlı makine öğrenimi platformları
Herkese açık API'ler, mobil arka uçlar ve monolitik hizmet sunumu
Ayrıntılı Karşılaştırma
Trafik Yönetimi ve Model Dağıtımı
Servis ağları, özellikle ekiplerin yeni model sürümlerini kademeli olarak kullanıma sunması gerektiğinde, makine öğrenimi sistemlerinin oluşturduğu karmaşık trafik modellerini yönetmede mükemmeldir. Altyapı düzeyinde model sürümleri arasında trafiği bölmenize olanak tanırlar; böylece isteklerin %5'inde yeni bir model çalıştırırken, geri kalanında eski model kullanılabilir. Geleneksel API ağ geçitleri, özel yönlendirme kuralları aracılığıyla benzer bölmeleri sağlayabilir, ancak model sürümleme göz önünde bulundurularak tasarlanmadıkları için yapılandırmaları daha kırılgan ve büyük ölçekte bakımı daha zor hale getirirler.
Gözlemlenebilirlik ve Hata Ayıklama
Makine öğrenimi çıkarım hattında bir sorun oluştuğunda, sorunun modelden mi, veriden mi yoksa ağdan mı kaynaklandığını bilmeniz gerekir. Servis ağları, bir isteği birden fazla serviste izleyen, her adımda gecikmeyi yakalayan ve bunu belirli model sürümleriyle ilişkilendiren dağıtılmış izleme sağlar. API ağ geçitleri iyi bir günlük kaydı ve metrik sunar, ancak genellikle ağ geçidi sınırında dururlar ve servis ağınızda veya mikro servis ortamınızda neler olduğunu kendiniz bir araya getirmeniz gerekir.
Güvenlik Mimarisi
Her iki yaklaşım da güvenliği ciddiye alıyor, ancak farklı sorunları çözüyorlar. Servis ağları, hassas çıkarım verilerinin düzinelerce mikro servis arasında aktığı durumlarda önemli olan, tüm servisler arası iletişimi mTLS ile otomatik olarak şifreleyerek sıfır güven ağını uyguluyor. API ağ geçitleri ise çevre güvenliğine odaklanarak, gelen isteklerin arka uca ulaşmadan önce meşru olduğunu doğruluyor. Sağlık veya finansal bilgiler gibi düzenlemeye tabi verileri işleyen makine öğrenimi sistemleri için, her iki katmanı birleştirmek genellikle en mantıklı çözüm oluyor.
Kaynak Farkındalığı ve GPU Optimizasyonu
Makine öğrenimi iş yükleri, genellikle GPU'ya bağımlı ve bellek yoğun oldukları için tipik web servislerinden farklı davranırlar. Bazı servis ağı uygulamaları, GPU kullanılabilirliğine bağlı olarak istekleri yönlendirmek ve trafiği kullanılabilir hızlandırıcı kapasitesine sahip düğümlere göndermek üzere yapılandırılabilir. Geleneksel API ağ geçitlerinin altta yatan donanım kaynakları kavramı yoktur ve her arka ucu kara kutu olarak ele alırlar. Bu durum, bir dizi çıkarım sunucusu genelinde pahalı GPU kullanımını en üst düzeye çıkarmanız gerektiğinde onları daha az verimli hale getirir.
Operasyonel Karmaşıklık
Servis ağları, her servisin dağıtılması, izlenmesi ve güncellenmesi gereken bir yan proxy'ye sahip olması nedeniyle ek operasyonel yük getirir. Kubernetes'e zaten aşina olan bir ekip için bu yönetilebilir, ancak bir öğrenme eğrisi ekler. API ağ geçitleri genellikle tek bir bileşen oldukları için kullanımı daha basittir, ancak Apigee gibi kurumsal ağ geçitleri, geliştirici portalları ve API ürün yönetimi konusunda kendi karmaşıklıklarını da beraberinde getirir.
Maliyet ve Performans Dengeleri
Servis ağlarındaki yan uygulama modeli, her adımda genellikle birkaç milisaniyelik gecikme ekler ve bu gecikme, derin mikro servis zincirlerinde birikerek artabilir. Gerçek zamanlı öneri sistemleri gibi gecikmeye duyarlı makine öğrenimi uygulamaları için bu ek yük önemlidir. API ağ geçitleri, gecikmeyi yalnızca uç noktada bir kez ekler ve bu da onları basit istek-yanıt modelleri için daha tahmin edilebilir hale getirir. Bununla birlikte, bir servis ağını büyük ölçekte çalıştırmanın operasyonel maliyeti, azaltılmış hata ayıklama süresi ve makine öğrenimi modelleri için daha iyi dağıtım güvenliği ile dengelenebilir.
Artılar ve Eksiler
Makine Öğrenimi için Servis Ağı
Artılar
+Yerel model sürümleme
+Ayrıntılı trafik kontrolü
+Otomatik mTLS şifrelemesi
+Derin gözlemlenebilirlik
+GPU'ya duyarlı yönlendirme
Devam
−Daha yüksek operasyonel karmaşıklık
−Her atlama başına eklenen gecikme
−Daha dik öğrenme eğrisi
−Yan işlemlerden kaynaklanan kaynak maliyeti
Geleneksel API Ağ Geçitleri
Artılar
+Kurulumu daha kolay
+Daha düşük gecikme yükü
+Olgun ekosistem
+Güçlü kimlik doğrulama özellikleri
Devam
−Sınırlı model versiyonu
−GPU farkındalığı yok
−Daha zayıf içsel gözlemlenebilirlik
−Doğu-batı trafiği için daha az uygundur.
Yaygın Yanlış Anlamalar
Efsane
Servis ağları ve API ağ geçitleri aynı işi yapar ve yalnızca birine ihtiyacınız vardır.
Gerçeklik
Bunlar farklı amaçlara hizmet eder. API ağ geçitleri uç noktada kuzey-güney trafiğini yönetirken, hizmet ağları hizmetler arasında doğu-batı trafiğini yönetir. Birçok kuruluş her ikisini de eş zamanlı olarak çalıştırır ve her biri en iyi yaptığı işi yapar.
Efsane
API ağ geçitleri, makine öğrenimi modeli sürümleme işlemlerini tıpkı bir servis ağı kadar iyi yönetebilir.
Gerçeklik
API ağ geçitleri başlıklar veya yollar temelinde yönlendirme yapabilir, ancak servis ağlarının sunduğu dağıtım sistemleriyle derin entegrasyondan yoksundurlar. Sorunlu bir model sürümünü geri almak, servis ağı ile daha hızlı ve güvenlidir çünkü trafik bölmeleri ağ geçidi yapılandırmalarını yeniden dağıtmaya gerek kalmadan dinamik olarak ayarlanabilir.
Efsane
Servis ağları, üretim amaçlı makine öğrenimi sistemleri için çok fazla gecikmeye neden oluyor.
Gerçeklik
Envoy ve Linkerd-proxy gibi modern sidecar proxy'ler, çoğu kıyaslamada her adımda yalnızca 1-3 milisaniye ekler. Çoğu makine öğrenimi çıkarım iş yükü için, bu ek yük, genellikle 10-100 milisaniye veya daha fazla olan gerçek model çıkarım süresine kıyasla ihmal edilebilir düzeydedir.
Efsane
Eğer zaten bir API ağ geçidiniz varsa, bir servis ağına ihtiyacınız yoktur.
Gerçeklik
Bir API ağ geçidi çevre güvenliğinizi korur, ancak dahili hizmetler arasındaki trafiği güvence altına almaz veya gözlemlemez. Düzinelerce hizmet içeren bir mikro hizmet mimarisinde, bir hizmet ağı, bir API ağ geçidinin sağlayamayacağı sıfır güvenliğe dayalı güvenlik ve gözlemlenebilirlik sunar.
Efsane
Servis ağları yalnızca Kubernetes ortamları için kullanışlıdır.
Gerçeklik
Servis ağları en yaygın olarak Kubernetes ile ilişkilendirilse de, Consul Connect ve Linkerd gibi uygulamalar sanal makinelerde ve fiziksel sunucularda çalışabilir. Sidecar modeli, bir uygulamanın yanına bir proxy dağıtabileceğiniz her yerde çalışır.
Sıkça Sorulan Sorular
Bir servis ağı, bir API ağ geçidinin yerini tamamen alabilir mi?
Teoride evet, ancak pratikte nadiren mümkün. Servis ağları, giriş ağ geçitleriyle uç trafiği yönetebilir, ancak kurumsal API ağ geçitlerinin sağladığı geliştirici portalları, API ürün yönetimi ve abonelik faturalandırması gibi özelliklerden yoksundurlar. Çoğu ekip, dahili trafik için bir servis ağı ve dışa dönük API'ler için bir API ağ geçidi kullanır.
Makine öğrenimi modellerinin dağıtımı için hangisi daha iyidir, servis ağı mı yoksa API ağ geçidi mi?
Servis ağları, altyapı düzeyinde trafik bölme, kademeli sürüm yayınlama ve otomatik geri alma özelliklerini destekledikleri için genellikle makine öğrenimi modeli dağıtımı için daha iyidir. API ağ geçitleri farklı model sürümlerine yönlendirme yapabilir, ancak manuel yapılandırma değişiklikleri gerektirir ve makine öğrenimi dağıtım süreçleriyle o kadar sıkı entegre olmazlar.
Bir servis ağı, bir API ağ geçidine kıyasla ne kadar gecikmeye neden olur?
Servis ağı yan bileşenleri (sidecar'lar) genellikle her atlamada 1-3 milisaniye gecikme ekler ve trafik bir mikro servis zincirinde birden fazla yan bileşenden geçebileceğinden, toplam ek yük 5-15 milisaniye olabilir. API ağ geçitleri ise gecikmeyi yalnızca uç noktada bir kez, genellikle toplamda 1-5 milisaniye ekler. Gecikmenin kritik olduğu uygulamalar için bu fark önemlidir.
Makine öğrenimi platformum için hem servis ağına hem de API ağ geçidine ihtiyacım var mı?
Makine öğrenimi platformunuz harici istemcilere API'ler sunuyorsa ve aynı zamanda dahili mikro hizmetler arasında iletişim kuruyorsa, her ikisini de kullanmak yaygın ve önerilen bir yaklaşımdır. API ağ geçidi, harici trafik için kimlik doğrulama ve hız sınırlamasını yönetirken, hizmet ağı dahili hizmetler arası iletişimi, mTLS'yi ve gözlemlenebilirliği yönetir.
Makine öğrenimi iş yükleri için en popüler hizmet ağı uygulamaları nelerdir?
Istio, Linkerd ve Consul Connect en yaygın kullanılan servis ağlarıdır. Makine öğrenimine özgü iş yükleri için KServe ve Seldon Core, trafik yönetimiyle model sunumu sağlamak üzere bu ağlarla entegre olur. NVIDIA'nın çıkarım platformu da GPU'ya duyarlı yönlendirme için servis ağı modellerinden yararlanır.
API ağ geçitleri, makine öğrenimi çıkarımı için gRPC trafiğini işleyebilir mi?
Evet, Kong, Envoy tabanlı ağ geçitleri ve AWS API Gateway dahil olmak üzere çoğu modern API ağ geçidi gRPC'yi desteklemektedir. Bununla birlikte, servis ağları genellikle gRPC'yi daha doğal bir şekilde ele alırlar çünkü bunlar HTTP/2 ve çift yönlü akış göz önünde bulundurularak tasarlanmıştır; bu da makine öğrenimi çıkarım senaryolarında yaygındır.
Servis ağı, makine öğrenimi modellerinin gözlemlenebilirliğine nasıl yardımcı olur?
Servis ağları, her servis etkileşimi için istek gecikmesi, hata oranları ve trafik hacmi gibi ölçümleri otomatik olarak toplar. Prometheus ve Jaeger gibi araçlarla birleştirildiğinde, tek bir çıkarım isteğini birden fazla servis genelinde izleyebilir ve darboğazları belirleyebilirsiniz; bu da makine öğrenimi işlem hatlarında hata ayıklama sırasında son derece değerlidir.
Büyük ölçekte bir hizmet ağı çalıştırmak pahalı mıdır?
Servis ağları, her bir yan sunucu (sidecar proxy) kaynak tükettiği için işlemci ve bellek yükü oluşturur. 100 servisli bir dağıtım için, yalnızca ağ için düğüm başına 2-4 ek işlemci çekirdeği ve 1-2 GB RAM gerekebilir. Bununla birlikte, bu maliyet genellikle hata ayıklama süresinin azalması ve daha güvenli dağıtımlar ile dengelenir.
Servis ağı mı yoksa API ağ geçidi mi kurulumu daha kolaydır?
API ağ geçitlerinin kurulumu genellikle daha kolaydır çünkü net bir yapılandırma arayüzüne sahip tek bir bileşenden oluşurlar. Servis ağları ise kontrol düzlemlerinin kurulmasını, sidecar'ların eklenmesini ve karşılıklı TLS'nin yapılandırılmasını gerektirir; bu daha fazla zaman alır ancak çalışır duruma geldiğinde daha derin işlevsellik sağlar.
Servis ağları, sunucusuz makine öğrenimi çıkarım platformlarıyla birlikte çalışır mı?
Servis ağları öncelikle uzun süreli çalışan servisler için tasarlanmıştır, bu nedenle sık sık başlatılıp durdurulan sunucusuz fonksiyonlarla iyi entegre olmazlar. AWS Lambda veya Google Cloud Run gibi platformlarda sunucusuz makine öğrenimi çıkarımı için, trafiği yönetmek için genellikle bir API ağ geçidi daha iyi bir seçimdir.
Karar
Altyapınız sık model güncellemeleri ve karmaşık hizmetler arası iletişim içeren Kubernetes tabanlı makine öğrenimi platformlarına odaklanıyorsa, makine öğrenimi iş yükleri için özel olarak tasarlanmış bir hizmet ağı size daha iyi kontrol ve gözlemlenebilirlik sağlayacaktır. Harici istemcilere veya mobil uygulamalara birkaç makine öğrenimi uç noktası sunan kuruluşlar için geleneksel bir API ağ geçidi yönetimi daha basittir ve iş için yeterlidir. Birçok üretim sistemi her ikisini de kullanır; API ağ geçidi harici trafiği, hizmet ağı ise dahili makine öğrenimi hizmeti iletişimini yönetir.