Modern bulut tabanlı uygulamalar büyük ölçüde mikroservislere dayanır ve bu mimariler büyüdükçe, hizmetten hizmete ve istemciden hizmete iletişimi yönetmek giderek karmaşıklaşır. İşte bu noktada "hizmet ağı (service mesh) ve API ağ geçidi (API gateway)" tartışması ön plana çıkıyor. Temel farklılıkları, örtüşmeleri ve nasıl birlikte çalışabileceklerini anlamak, mimarlar, geliştiriciler ve DevOps ekipleri için hayati önem taşır.
Bu kılavuzda, hizmet ağını ve API ağ geçidini ayrıntılı olarak inceleyecek, tanımlarını, birincil kullanım alanlarını, farklılıklarını, benzerliklerini ve gerçek dünya örneklerini ele alacağız. Ayrıca Apidog gibi araçların her iki yaklaşımda da API geliştirmeyi nasıl kolaylaştırdığını göstereceğiz.
Hizmet Ağı ve API Ağ Geçidi Nedir?
"Hizmet ağı ve API ağ geçidi" arasındaki nüanslara dalmadan önce, her terimi tanımlayalım ve aralarındaki ayrımın neden önemli olduğunu görelim.
API Ağ Geçidi Nedir?
Bir API ağ geçidi, tüm istemci isteklerinin mikroservis sisteminize girdiği tek giriş noktası olarak işlev gören bir sunucu veya hizmettir. Kuzey-güney trafiğini (harici istemciler ile dahili hizmetler arasındaki trafik) yönetir. API ağ geçitleri aşağıdaki gibi özellikler sunar:
- Kimlik doğrulama ve yetkilendirme
- İstek yönlendirme ve toplama
- Oran sınırlama ve kısıtlama
- Protokol çevirisi (örneğin, REST'ten gRPC'ye)
- API versiyonlama
- İzleme, günlükleme ve analitik
API ağ geçitleri, dahili hizmetlerinizi dış dünyaya güvenli, yönetilebilir ve ölçeklenebilir bir şekilde sunmak için kritik öneme sahiptir.
Hizmet Ağı Nedir?
Hizmet ağı, doğu-batı trafiğini—dahili mikroservisler arasındaki iletişimi—yöneten bir altyapı katmanıdır. Hizmet ağı, istemciden hizmete trafiğe odaklanmak yerine, hizmetten hizmete etkileşimlerin karmaşık ağ gereksinimlerini ele alır; bunlar arasında:
- Hizmet keşfi ve yük dengeleme
- Karşılıklı TLS ve güvenli iletişim
- Trafik bölme, canary yayınları ve A/B testleri
- Yeniden denemeler, zaman aşımları ve devre kesme
- Dağıtılmış izleme ve gözlemlenebilirlik
Bir hizmet ağı, dahili trafiği şeffaf bir şekilde ele geçirmek ve yönetmek için genellikle her hizmet örneğinin yanında hafif yan araba (sidecar) vekil sunucularını kullanır.
Hizmet Ağı ve API Ağ Geçidi Neden Önemlidir?
Bir hizmet ağı ve bir API ağ geçidi arasında seçim yapmak—veya ikisini birden ne zaman kullanacağınızı anlamak—şunlar için hayati önem taşır:
- Farklı sınırlarda güvenlik sağlamak
- Trafik yönetimini ve dağıtımları basitleştirmek
- Ayrıntılı gözlemlenebilirlik ve kontrol sağlamak
- Gereksiz karmaşıklıktan ve ek yükten kaçınmak
Doğru yaklaşım, API'lerinizin ve hizmetlerinizin sağlam, güvenli ve bakımı kolay olmasını sağlar.
Hizmet Ağı ve API Ağ Geçidi: Temel Farklılıklar
Hizmet ağı ve API ağ geçidini çeşitli kritik boyutlar kullanarak karşılaştıralım.
1. Trafik Kapsamı
- API Ağ Geçidi: Harici istemciler ile dahili hizmetler arasındaki trafiği (kuzey-güney) yönetir.
- Hizmet Ağı: Dahili mikroservisten mikroservise trafiği (doğu-batı) yönetir.
2. Temel Sorumluluklar
| Özellik/İşlevsellik | API Ağ Geçidi | Hizmet Ağı |
|---|---|---|
| Kimlik Doğrulama | Evet | Evet (yalnızca dahili) |
| Oran Sınırlama | Evet | Bazen |
| İstek Dönüşümü | Evet | Hayır |
| Hizmet Keşfi | Temel | Gelişmiş |
| Yük Dengeleme | Temel | Gelişmiş |
| Trafik Bölme | Sınırlı | Kapsamlı |
| Gözlemlenebilirlik | Evet | Gelişmiş |
| Esneklik Desenleri | Sınırlı | Gelişmiş |
| Protokol Çevirisi | Evet | Hayır |
| Geliştirici Portalı | Evet | Hayır |
3. Mimarideki Yeri
- API Ağ Geçidi: Ağınızın kenarında, istekler dahili ağınıza girmeden önce bulunur.
- Hizmet Ağı: Her hizmetin yanında (genellikle bir yan araba olarak) çalışır ve kümenizin içindeki trafiği yönetir.
4. Güvenlik Odak Noktası
- API Ağ Geçidi: Çevre güvenliğine, API anahtarlarına, OAuth'a, JWT doğrulamasına vb. odaklanır.
- Hizmet Ağı: Dahili güvenliğe, karşılıklı TLS'ye, hizmetten hizmete yetkilendirmeye odaklanır.
5. Gözlemlenebilirlik
- API Ağ Geçidi: Üst düzey API izleme, kullanım analitiği sağlar.
- Hizmet Ağı: Her hizmet etkileşimi için derinlemesine gözlemlenebilirlik, dağıtılmış izleme ve ayrıntılı metrikler sağlar.
Hizmet Ağı ve API Ağ Geçidi: Nerede Örtüşürler?
Hizmet ağı ve API ağ geçidi farklı olsa da, bazı örtüşme alanları vardır. Her ikisi de şunları yapabilir:
- Kimlik doğrulama ve yetkilendirmeyi yönetebilir
- Belli düzeyde trafik yönlendirme ve yük dengeleme sağlayabilir
- Gözlemlenebilirlik ve izlemeyi etkinleştirebilir
Ancak, bu alanlardaki odakları ve derinlikleri farklıdır. Örneğin, bir API ağ geçidi harici istemciler için API anahtarı doğrulaması sağlayabilirken, bir hizmet ağı dahili hizmetler arasında karşılıklı TLS uygular.
Hizmet Ağını ve API Ağ Geçidini Ne Zaman Kullanmalı (veya Her İkisini)
API Ağ Geçidi: Doğru Seçim Olduğu Zamanlar
Bir API ağ geçidi, şunlara ihtiyacınız olduğunda kullanın:
- Mikroservislerinizi harici istemcilere güvenli bir şekilde sunmak
- Tüm API'ler için merkezi kimlik doğrulama ve yetkilendirme
- İstek dönüşümü, protokol aracılığı veya toplama
- API dokümantasyonu ve entegrasyonu için geliştirici portalı
- Arka uç hizmetlerini kötüye kullanımdan korumak için oran sınırlama
Örnek: Mobil ve web uygulamalarına REST API'leri sunan bir SaaS ürünü, kimlik doğrulamayı, API versiyonlamayı ve kullanım analitiğini yönetmek için bir API ağ geçidi kullanır.
Hizmet Ağı: Temel Olduğu Zamanlar
Şunlara ihtiyacınız varsa bir hizmet ağı seçin:
- Gelişmiş trafik yönetimi (canary yayınları, trafik bölme, A/B testi)
- Güvenli, şifreli hizmetten hizmete iletişim (mTLS)
- Ayrıntılı gözlemlenebilirlik (dağıtılmış izleme, hizmet başına metrikler)
- Otomatik hizmet keşfi ve yük dengeleme
- Yeniden denemeler, zaman aşımları ve devre kesme gibi esneklik özellikleri
Örnek: Yüzlerce hizmetin etkileşimde bulunduğu Kubernetes'teki büyük ölçekli bir mikroservis dağıtımı, dahili güvenliği ve güvenilirliği yönetmek için bir hizmet ağı kullanır.
Her İkisini de Ne Zaman Kullanmalı
Birçok modern mimaride, hizmet ağı ve API ağ geçidi birbirini tamamlar:
- API ağ geçidi tüm gelen trafiği ve harici API yönetimini yönetir.
- Hizmet ağı hizmet içi iletişimi ve dahili trafik politikalarını ele alır.
Bu katmanlı yaklaşım, güvenliği, ölçeklenebilirliği ve yönetilebilirliği en üst düzeye çıkarır.
Pratik Örnekler: Hizmet Ağı ve API Ağ Geçidi Uygulamada
Hizmet ağının ve API ağ geçidinin gerçek dünya senaryolarında nasıl çalıştığını görelim.
Örnek 1: E-Ticaret Platformu
- API Ağ Geçidi: Tüm müşteri odaklı istekleri (giriş, ödeme, ürün arama) yönetir. Kimlik doğrulamayı, oran sınırlamayı ve harici iş ortakları için API dokümantasyonunu yönetir.
- Hizmet Ağı: Mikroservisler (envanter, ödeme, öneriler) arasındaki dahili trafiği yöneterek güvenli, güvenilir ve gözlemlenebilir hizmetten hizmete çağrıları sağlar.
Örnek 2: API'den Para Kazanma
- API Ağ Geçidi: Geliştirici portalı, API anahtarı yönetimi, kullanım takibi ve faturalandırma entegrasyonu sağlar— API'lerden para kazanmak için hayati öneme sahiptir.
- Hizmet Ağı: Faturalandırma, analitik ve çekirdek hizmetler arasındaki dahili trafiğin güvenli ve esnek olmasını sağlar.
Örnek 3: Canary Dağıtımları
- API Ağ Geçidi: Harici trafiğin bir kısmını yeni bir API sürümüne yönlendirir.
- Hizmet Ağı: Dahili hizmetler için daha ayrıntılı trafik bölme ve gözlemlenebilirliği yöneterek güvenli canary veya blue-green dağıtımlarını etkinleştirir.
Örnek 4: Protokol Çevirisi
- API Ağ Geçidi: Harici REST çağrılarını dahili gRPC veya GraphQL'e dönüştürerek eski istemcilerin modernleştirilmiş mikroservislerle etkileşim kurmasına olanak tanır.
- Hizmet Ağı: Dahili gRPC trafiğini optimize etmeye ve güvenliğini sağlamaya odaklanır.
Hizmet Ağı ve API Ağ Geçidi: Kod ve Yapılandırma Örnekleri
Hizmet ağını ve API ağ geçidini daha da netleştirmek için basitleştirilmiş yapılandırma parçacıkları aşağıdadır:
API Ağ Geçidi Örneği (Kong)
apiVersion: configuration.konghq.com/v1
kind: KongIngress
metadata:
name: rate-limited-api
route:
strip_path: true
protocols:
- https
plugin:
- name: rate-limiting
config:
minute: 100
policy: redis
- name: key-auth
config:
key_names:
- x-api-key
Bu yapılandırma, harici trafik için oran sınırlama ve API anahtarı kimlik doğrulamasını ayarlar.
Hizmet Ağı Örneği (Istio)
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: reviews-routing
spec:
hosts:
- reviews
http:
- match:
- sourceLabels:
app: productpage
route:
- destination:
host: reviews
subset: v2
retries:
attempts: 3
perTryTimeout: 2s
retryOn: 5xx
Bu Istio VirtualService, hizmetler arasındaki dahili yönlendirme ve yeniden deneme mantığını yönetir.
Hizmet Ağı ve API Ağ Geçidi: En İyi Uygulamalar
- Hizmet ağını API ağ geçidi olarak kullanmayın: Hizmet ağı, harici API yönetimini, protokol çevirisini veya geliştirici entegrasyonunu ele almak için tasarlanmamıştır.
- API ağ geçidinizi aşırı yüklemeyin: Bazı API ağ geçitleri sınırlı hizmet keşfi veya ağ benzeri özellikler sunsa da, dahili trafik yönetiminde büyük ölçekte kullanmaktan kaçının.
- Katmanlı güvenlik için her ikisini de kullanın: Harici istemciler için ağ geçidi düzeyinde kontroller uygulayın ve dahili trafik için ağ düzeyinde güvenlik kullanın.
- Apidog gibi araçlardan yararlanın: Apidog ile, API ağ geçidiniz tarafından yönetilecek API'leri tasarlayabilir, belgeleyebilir ve test edebilirsiniz. Ayrıca hizmetten hizmete etkileşimleri modelleyebilir ve simüle edebilirsiniz, bu da hizmet ağı kullanan ortamlar için tasarım yaparken idealdir.
Apidog ve Hizmet Ağı ve API Ağ Geçidi
Bir hizmet ağı, bir API ağ geçidi veya her ikisi etrafında mimari oluşturuyor olsanız da, Apidog güçlü destek sunar:
- API tasarımı ve dokümantasyonu: Ağ geçidi yönetimi için hazır, spesifikasyon odaklı API'ler oluşturun.
- Sahte oluşturma (Mocking) ve test etme: Hem istemciden hizmete hem de hizmetten hizmete çağrıları simüle edin; bu, hem API ağ geçidi hem de hizmet ağı senaryoları için esastır.
- Versiyonlama ve işbirliği: Karmaşık mikroservis mimarilerini yöneten ekipler için mükemmeldir.
Hizmet ağı ve API ağ geçidini karşılaştırırken, Apidog ile kapsamlı API tasarım ve test uygulamalarına sahip olmak, tasarım, uygulama ve dağıtım arasında sorunsuz bir geçiş sağlar.
Sonuç: Hizmet Ağı ve API Ağ Geçidi Arasında Doğru Seçimi Yapmak
Hizmet ağı ve API ağ geçidi, birini diğerine tercih etme meselesi değil, rollerini ayırt etme meselesidir. API ağ geçitleri harici API trafiğini yönetmek ve birleşik bir giriş noktası sağlamak için hayatiyken, hizmet ağları karmaşık dahili hizmet iletişimini yönetmek için vazgeçilmezdir.
Çoğu modern mimaride, her ikisini birlikte kullanmak her iki dünyanın da en iyisini sunar: sağlam harici API yönetimi ve güvenli, gözlemlenebilir, esnek dahili iletişim. Apidog gibi araçlar, seçtiğiniz mimariden bağımsız olarak tasarım ve test sürecini daha da kolaylaştırır.
