Modern bulut tabanlı uygulamalar, mikroservis mimarisi üzerine inşa edilir ve bu mimari büyüdükçe servisler arası iletişimi yönetmek daha karmaşık hale gelir. Bu noktada "hizmet ağı (service mesh)" ile "API ağ geçidi (API gateway)" ayrımı kritikleşir. Temel farklarını ve birlikte nasıl kullanılabileceklerini bilmek; mimarlar, geliştiriciler ve DevOps ekipleri için zorunludur.
Bu rehberde, hizmet ağı ve API ağ geçidinin tanımlarını, kullanım alanlarını, farklarını, benzerliklerini ve pratik uygulama örneklerini bulacaksınız. Ayrıca Apidog gibi araçların bu süreçte API geliştirmeyi nasıl hızlandırdığını göstereceğiz.
Hizmet Ağı ve API Ağ Geçidi Nedir?
Başlamadan önce, terimleri netleştirip neden önemli olduklarını görelim.
API Ağ Geçidi Nedir?
Bir API ağ geçidi, mikroservis sisteminiz için tüm istemci isteklerinin tek giriş noktasıdır. Kuzey-güney trafiğini, yani harici istemcilerden iç servislere giden trafiği yönetir. Temel özellikleri:
- Kimlik doğrulama ve yetkilendirme
- İstek yönlendirme ve toplama
- Oran sınırlama
- Protokol çevirisi (REST ↔ gRPC vb.)
- API versiyonlama
- İzleme ve analitik
API ağ geçidi, servislerinizi dış dünyaya güvenli ve yönetilebilir şekilde açmak için kullanılır.
Hizmet Ağı Nedir?
Hizmet ağı, doğu-batı trafiğini (mikroservisler arası iletişim) yöneten bir altyapı katmanıdır. Özellikle servisler arası etkileşimlerin karmaşık ağ gereksinimleri için aşağıdaki işlevleri sunar:
- Hizmet keşfi ve yük dengeleme
- Karşılıklı TLS ile güvenli iletişim
- Trafik bölme, canary deploy ve A/B testleri
- Yeniden deneme, zaman aşımı, devre kesici
- Dağıtılmış izleme
Genellikle her servisin yanında bir sidecar proxy ile çalışır ve tüm dahili trafiği şeffaf şekilde yönetir.
Hizmet Ağı ve API Ağ Geçidi Neden Önemlidir?
- Farklı güvenlik sınırlarında kontrol sağlamak
- Trafik yönetimini ve dağıtımları kolaylaştırmak
- Gözlemlenebilirlik ve ayrıntılı analiz sunmak
- Karmaşıklığı ve ek yükü minimize etmek
Doğru seçim, API'lerin ve servislerin sağlam, güvenli ve yönetilebilir olmasını sağlar.
Hizmet Ağı ve API Ağ Geçidi: Temel Farklılıklar
1. Trafik Kapsamı
- API Ağ Geçidi: Harici istemciler ile dahili servisler arasındaki trafiği (kuzey-güney) yönetir.
- Hizmet Ağı: Servisten servise (doğu-batı) trafiği yönetir.
2. Temel Sorumluluklar
| Özellik/İşlevsellik | API Ağ Geçidi | Hizmet Ağı |
|---|---|---|
| Kimlik Doğrulama | Evet | Evet (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 girişinde, istekler iç ağa girmeden önce bulunur.
- Hizmet Ağı: Her servisin yanında (sidecar) çalışır, cluster içi trafiği yönetir.
4. Güvenlik Odak Noktası
- API Ağ Geçidi: Perimeter güvenliği, API anahtarları, OAuth, JWT doğrulama
- Hizmet Ağı: Dahili güvenlik, karşılıklı TLS, servisler arası yetkilendirme
5. Gözlemlenebilirlik
- API Ağ Geçidi: Üst düzey API izleme ve kullanım analitiği
- Hizmet Ağı: Detaylı servis etkileşimi gözlemlenebilirliği, dağıtılmış izleme, metrikler
Hizmet Ağı ve API Ağ Geçidi: Nerede Örtüşürler?
Her iki yapı da aşağıdaki ortak işlevleri içerebilir:
- Kimlik doğrulama ve yetkilendirme
- Trafik yönlendirme ve yük dengeleme
- Gözlemlenebilirlik ve izleme
Ancak odak noktaları farklıdır. API ağ geçidi, harici istemci trafiğinde API anahtarı doğrulaması gibi işlevlere odaklanırken; hizmet ağı, dahili trafiğe mTLS gibi uygulamalar getirir.
Hizmet Ağını ve API Ağ Geçidini Ne Zaman Kullanmalı (veya Her İkisini)
API Ağ Geçidi Kullanım Senaryoları
- Mikroservislerinizi harici istemcilere güvenli şekilde açmak
- Merkezi kimlik doğrulama ve yetkilendirme
- İstek dönüşümü, protokol çevrimi
- API dokümantasyon ve geliştirici portalı
- Arka uç servisleri korumak için oran sınırlama
Örnek: Bir SaaS platformunda mobil/web istemciler için API anahtar yönetimi ve kullanım analitiği için API ağ geçidi uygulanır.
Hizmet Ağı Kullanım Senaryoları
- Canary deploy, trafik bölme, A/B testi gibi gelişmiş trafik yönetimi
- Servisten servise güvenli iletişim (mTLS)
- Detaylı gözlemlenebilirlik (dağıtılmış izleme, metrikler)
- Otomatik hizmet keşfi ve yük dengeleme
- Yeniden deneme, zaman aşımı, devre kesici gibi esneklik desenleri
Örnek: Büyük ölçekli Kubernetes mikroservis dağıtımlarında, servisler arası güvenliği ve trafiği yönetmek için hizmet ağı kurulur.
Her İkisini de Kullanma
- API ağ geçidi harici trafiği ve API yönetimini üstlenir.
- Hizmet ağı, dahili servis trafiğini ve politikalarını yönetir.
Bu katmanlı yaklaşım, güvenliği ve yönetilebilirliği artırır.
Pratik Örnekler: Hizmet Ağı ve API Ağ Geçidi Uygulamada
Örnek 1: E-Ticaret Platformu
- API Ağ Geçidi: Giriş, ödeme, ürün arama gibi müşteri isteklerini yönetir. Kimlik doğrulama, oran sınırlama, dış partnerler için API dokümantasyonu sağlar.
- Hizmet Ağı: Envanter, ödeme ve öneri servisleri arasındaki dahili trafiği güvenli ve gözlemlenebilir şekilde yönetir.
Örnek 2: API'den Para Kazanma
- API Ağ Geçidi: Geliştirici portalı, API anahtarı yönetimi, kullanım takibi ve faturalandırma entegrasyonu sunar. API monetizasyonu için kritik.
- Hizmet Ağı: Faturalandırma ve analitik servisler arası trafiği güvenli ve esnek şekilde yönetir.
Örnek 3: Canary Dağıtımları
- API Ağ Geçidi: Harici trafiğin belirli bir kısmını yeni API sürümüne yönlendirir.
- Hizmet Ağı: Servisler arası daha detaylı trafik bölme ve gözlemlenebilirlik sağlar, güvenli canary veya blue-green dağıtımlarını mümkün kılar.
Örnek 4: Protokol Çevirisi
- API Ağ Geçidi: Harici REST çağrılarını dahili gRPC/GraphQL'e çevirir. Eski istemciler, modern mikroservislerle kolayca entegre olur.
- Hizmet Ağı: Dahili gRPC trafiğini optimize eder ve güvenliğini sağlar.
Hizmet Ağı ve API Ağ Geçidi: Kod ve Yapılandırma Örnekleri
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 örnekle, harici API trafiği için oran sınırlama ve anahtar doğrulama sağlanır.
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 VirtualService tanımı, servisler arası dahili yönlendirme ve yeniden deneme mantığını ayarlar.
Hizmet Ağı ve API Ağ Geçidi: En İyi Uygulamalar
- Hizmet ağını API ağ geçidi yerine kullanmayın: Hizmet ağı, harici API yönetimi veya protokol çevrimi için uygun değildir.
- API ağ geçidini aşırı yüklemeyin: API ağ geçidi, büyük ölçekli dahili trafik yönetimi için tasarlanmamıştır.
- Katmanlı güvenlik için her ikisini de kullanın: Harici istemci trafiği için API ağ geçidi, dahili servis trafiği için hizmet ağı kullanın.
- Apidog'u kullanın: API tasarımı, dokümantasyonu ve testi için Apidog ile hem API ağ geçidi hem de hizmet ağı senaryolarına uygun API'ler geliştirin. Ayrıca servisler arası etkileşimleri modelleyerek, tasarım aşamasında tüm iletişim desenlerini kolayca simüle edin.
Apidog ve Hizmet Ağı ve API Ağ Geçidi
- API tasarımı ve dokümantasyonu: API gateway yönetimine hazır, spesifikasyon bazlı API'ler oluşturun.
- Sahte (mock) ve test ortamı: Hem istemciden servise hem de servisten servise çağrıları simüle edin. Her iki mimari için de işlevseldir.
- Versiyonlama ve ekip işbirliği: Karmaşık mikroservis mimarileri için idealdir.
Hizmet ağı ve API ağ geçidi ile çalışırken, Apidog'un kapsamlı API tasarımı ve test özellikleriyle uygulama ve dağıtım süreçlerinizi hızlandırabilirsiniz.
Sonuç: Hizmet Ağı ve API Ağ Geçidi Arasında Doğru Seçimi Yapmak
Sonuç olarak, hizmet ağı ve API ağ geçidi birbirinin alternatifi değil, tamamlayıcısıdır. API ağ geçitleri harici API trafiğini yönetirken; hizmet ağları, mikroservisler arası iletişimi güvenli, gözlemlenebilir ve esnek şekilde yönetir.
Modern mimarilerde genellikle her ikisini de birlikte kullanmak en iyi sonucu verir. Apidog gibi araçlarla, seçtiğiniz mimaride API tasarım ve test süreçlerini kolaylaştırabilirsiniz.
Top comments (0)