Vebende Akademi - api-gateway-architecture
Uzmanla Konuşun
Blog
MAKALE

API Gateway Mimarisi: Merkezî Giriş Katmanı, Tasarım Kararları ve En İyi Uygulamalar

Yayınlayan: Vebende Akademi  |  Okuma süresi: ~60–160 dk

API Gateway Mimarisi: Merkezî Giriş Katmanı, Tasarım Kararları ve En İyi Uygulamalar

Yayınlayan: Vebende Akademi  |  Okuma süresi: ~60–160 dk

1. GİRİŞ

API Gateway, modern dağıtık ve mikroservis tabanlı uygulamalarda istemci isteklerini merkezi bir noktada karşılayan, yönlendiren ve işleyen katmandır. Monolitik mimariden mikroservislere geçiş ile birlikte yüzlerce küçük servis ortaya çıkar; istemcilerin doğrudan tüm servislere erişmesi yönetim, güvenlik ve performans sorunlarına yol açar. API Gateway, bu karmaşıklığı soyutlayıp tek bir uç nokta (single entry point) sağlayarak istekleri uygun servislere yönlendirir, cross‑cutting (kesitsel) ihtiyaçları karşılar ve operasyonu merkezi hale getirir.

Bu konu neden bugün önemli?

  • Microservice benimsemesi, çok sayıda API yüzeyi ve heterojen istemci gerektirir.
  • Mobil cihazlar, web uygulamaları ve üçüncü taraf entegrasyonları farklı latency ve payload beklentileriyle gelip API'lerin tek bir noktada optimize edilmesini gerektirir.
  • Güvenlik, gözlemlenebilirlik, rate limiting ve A/B routing gibi operasyonel gereksinimler merkezi politika uygulamalarıyla daha kolay yönetilir.

Kimler için önemli?

  • Platform mühendisleri ve API yöneticileri
  • Yazılım mimarları ve backend geliştiriciler
  • Güvenlik, SRE ve DevOps ekipleri

Hangi problemleri çözüyor?

  • İstemciler ile servis iç yapısı arasındaki bağımlılığı azaltma
  • Tek noktadan güvenlik politikaları, throttling ve access kontrol uygulama
  • Protocol translation, response aggregation ve payload shaping gibi istemci odaklı optimizasyonlar

2. KAVRAMSAL TEMELLER

2.1 API Gateway nedir — kısa tanım

API Gateway, istemci isteklerini kabul eden, doğrulayan, yönlendiren ve gerektiğinde yanıtları birleştirerek geri dönen bir orta katmandır. Gateway, load balancer, reverse proxy, authentication/authorization ve policy enforcement işlevlerini içerir; bazı implementasyonlar caching, rate limiting, transformation ve observability özelliklerini de sunar.

2.2 Temel bileşenler ve terminoloji

  • Routing: İstekleri hedef servislere yönlendirme (path, host, header, content‑based).
  • Authentication & Authorization: JWT, OAuth2, API key, mTLS gibi mekanizmalarla kimlik doğrulama ve yetkilendirme.
  • Rate Limiting / Throttling: İstemci başına veya global olarak istek hızını sınırlandırma.
  • Request/Response Transformation: Payload şeması dönüştürme, protocol bridge (REST ⇄ gRPC) ve response aggregation.
  • Caching: Sık kullanılan yanıtların tutulmasıyla latency düşürme.
  • Observability: Trace, metrics, logging ve access logs.
  • Policy Management: Güvenlik ve routing politikalarının merkezi tanımı.

2.3 API Gateway vs. Service Mesh

API Gateway ve service mesh farklı ama tamamlayıcı katmanlardır. Gateway, kuzey‑güney trafiğini (client ↔ cluster) yönetirken service mesh, doğu‑batı trafiğini (service ↔ service) ele alır. Gateway genelde API yönetimi, authentication ve dış erişim kontrolü için kullanılır; mesh ise servis içi güvenlik, mTLS, observability ve fine‑grained routing sağlar.

3. NASIL ÇALIŞIR? — TEKNİK MİMARİ VE AKIŞ

3.1 İstek akışı (Request flow)

  1. İstemci, API Gateway'e istek yapar (HTTPS/TLS). Gateway authentication/authorization uygular.
  2. Gateway routing kararını verir — doğrudan servis, canary, A/B veya fallback hedefi.
  3. Gerekirse payload transformasyonu ve aggregation yapılır (ör. birden çok servisten veri toplayıp tek cevap üretme).
  4. Rate limiting ve throttling kontrolü uygulanır; cache check yapılır.
  5. İstek hedef servise yönlendirilir; response alındıktan sonra response transformation uygulanır ve istemciye döndürülür.

3.2 Routing stratejileri

  • Path/Host‑based routing: Basit ve yaygın; örneğin /orders → order‑service.
  • Header/Param‑based routing: Özelleştirilmiş davranış için header veya query parametrelerine göre yönlendirme.
  • Content‑based routing: Payload içeriğine göre (örn. tenant id) farklı backend'lere yönlendirme.
  • Canary / A/B routing: Trafiğin belirli yüzdesinin yeni sürüme yönlendirilmesi.

3.3 Aggregation ve Backend For Frontend (BFF)

API Gateway bazı durumlarda birden fazla servisten veri çekip tek bir birleşik cevap dönebilir — bu, istemci tarafında istek sayısını azaltır ve uç nokta optimizasyonu sağlar. BFF pattern ise farklı istemci tipleri (web, mobile) için özelleştirilmiş gateway katmanları sağlar; her BFF kendi kullanıcı deneyimi ve performans hedeflerine göre şekillenir.

3.4 Güvenlik akışı

Gateway genelde authentication token'larını doğrular (JWT, OAuth2 introspection). Authorization kararları rol‑bazlı veya policy‑bazlı (RBAC / ABAC) olabilir. Ek olarak mTLS ile istemci kimliği sağlanabilir ve IP‑whitelisting, WAF entegrasyonu gibi ek katmanlar uygulanır.

3.5 Performans ve caching

Caching, gateway seviyesinde dikkate değer performans kazançları sağlar. Response cache, TTL, cache key stratejileri ve invalidation politikaları (purge) doğru tasarlanmalıdır. Ayrıca connection pooling, HTTP keep‑alive ve HTTP/2, gRPC gibi protokoller performansı artırmak için kullanılabilir.

3.6 Fault tolerance ve resiliency

Gateway, circuit breaker, retry, backoff ve bulkhead gibi desenleri uygulayarak downstream servislerin hatalarından gateway'i korur. Fallback stratejileri (cached response, degraded functionality) ile kullanıcı deneyimi korunur.

4. GERÇEK DÜNYA KULLANIMLARI

Netflix / Zuul ve BFF örneği

Netflix, Zuul tabanlı gateway çözümleri ve BFF pattern ile mobil ve web istemcileri için optimize edilmiş uç noktalar sağlar. Gateway, authentication, routing ve bazı aggregation işlerini gerçekleştirirken arka plan servisleri izole eder.

Amazon API Gateway — managed service

AWS API Gateway, developer portal, rate limiting, caching, WAF entegrasyonu ve Lambda proxy gibi özelliklerle managed bir çözüm sunar. Özellikle küçük ekipler için hızlı başlangıç ve yönetim kolaylığı sağlar ancak vendor‑lockin riski değerlendirilmelidir.

Istio + Gateway + Service Mesh entegrasyonu

Istio, Ingress Gateway ve sidecar proxy (Envoy) kombinasyonu ile hem kuzey‑güney hem doğu‑batı trafiğini yönetir. Envoy tabanlı gateway'ler yüksek performanslı routing, observability ve güvenlik özelliklerini sağlar.

Stripe / Amazon gibi büyük sistemlerde gateway rolleri

Finansal platformlar gateway'i kimlik doğrulama, idempotency key geçerliliği, anti‑fraud önkontroller ve rate limiting için kritik bir noktada kullanır. Ayrıca 3rd party ödeme ağ geçitleriyle entegrasyonlar gateway üzerinden yönlendirilir.

5. AVANTAJLAR VE SINIRLAMALAR

Avantajlar

  • İstemci‑servis bağımlılığını azaltır ve versiyonlama yükünü yönetir.
  • Güvenlik, rate limiting ve caching gibi cross‑cutting görevleri merkezi hale getirir.
  • BFF ile istemci odaklı optimizasyon ve aggregation sağlar.

Sınırlamalar

  • Gateway bir SPOF (Single Point of Failure) haline gelebilir; yüksek erişilebilirlik ve scaling gerektirir.
  • Latency ekleyebilir — özellikle kompleks aggregation ve transformation senaryolarında.
  • Yanlış yapılandırma durumunda güvenlik veya performans riskleri ortaya çıkar.

6. ALTERNATİFLER VE KARŞILAŞTIRMA

Yaklaşım Avantaj Dezavantaj
Direct client‑to‑service Basit, düşük gateway gecikmesi Yönetilemez karmaşıklık ve güvenlik zorlukları
API Gateway (centralized) Centralized policy, security, routing ve aggregation SPOF riski; düzgün ölçeklenmezse darboğaz
BFF (per‑client gateway) İstemciye özel optimizasyon, daha iyi UX Ek operasyonel katman, bakım maliyeti
Service Mesh + lightweight ingress Doğu‑batı trafiğinde güçlü güvenlik ve observability Öğrenme eğrisi ve infrastructure maliyeti

7. EN İYİ PRATİKLER

Production kullanımı

  • Gateway'i stateless tutun veya state'i external store'da yönetin; böylece yatay ölçekleme kolaylaşır.
  • HPA (horizontal autoscaling), multi‑AZ dağıtımı ve health check'ler ile gateway'in yüksek erişilebilirliğini sağlayın.
  • Canary release, A/B testing ve trafik yüzdeleme ile yeni özellikleri kademeli dağıtın.

Performans optimizasyonu

  • Response caching ve edge caching (CDN) ile latency azaltın.
  • HTTP/2, gRPC ve connection pooling gibi protokolleri değerlendirin; long‑lived connections performansı artırır.

Güvenlik

  • JWT validation, OAuth2 introspection, mTLS ve WAF entegrasyonlarını uygulayın.
  • Rate limiting, quota ve bot detection ile kötü amaçlı trafiği sınırlayın.

Observability

  • Distributed tracing (OpenTelemetry), structured logs ve metrikler ile uçtan uca izleme yapın.
  • Access log'ları, latency histogram ve error rate metriklerini SLA'lara göre izleyin.

8. SIK YAPILAN HATALAR

  • Gateway'i monolitik hale getirmek — çok sayıda business logic eklemek bakım zorluğu yaratır.
  • İstemci taleplerini backend'e aynen geçirmek — payload shaping ve BFF ile optimize edin.
  • Authentication/authorization'u sadece backend'e bırakmak — gateway'de ilk defa güvenlik uygulanmalı.
  • Observability yokluğu — gateway, merkezi bir gözlem noktası olduğundan metriksizlik problemlerin geç fark edilmesine yol açar.

9. GELECEK TRENDLER

  1. API gateway as a platform: Gateway'ler policy as code, plugin ekosistemleri ve declarative management ile platformlaşacak.
  2. AI‑assisted routing ve anomaly detection: Gerçek zamanlı telemetri ile akıllı trafik yönlendirme ve anomali tespiti yapılacak.
  3. Edge gateways ve distributed ingress: Daha fazla iş yükü edge'e taşınacak; edge‑native gateway modelleri gelişecek.
  4. Deep integration with service mesh: Ingress/egress ve service‑level policy koordinasyonu artacak; merkezi control plane'ler olgunlaşacak.

EK BÖLÜMLER

Sık Sorulan Sorular (FAQ)

  1. 1. Her projeye API Gateway gerekli midir?

    Hayır. Küçük, tek servisli uygulamalarda gerek olmayabilir. Ancak mikroservis mimarilerinde, çok sayıda istemci veya üçüncü taraf entegrasyonu varsa gateway önemli fayda sağlar.

  2. 2. Gateway'de ne kadar logic olmalı?

    Gateway'de sadece cross‑cutting, routing, security ve dönüşümsel logic tutulmalı; business logic backend'de kalmalıdır. Aksi halde gateway monolitik olur.

  3. 3. API Gateway yerine service mesh yeterli mi?

    Service mesh, servis‑içi trafiğe odaklanır. Dış istemci trafiği, authentication ve developer portal ihtiyaçları için gateway gereklidir. İkisi birlikte daha güçlüdür.

  4. 4. Gateway performansını nasıl ölçeceğim?

    Latency p50/p95/p99, throughput, error rate ve cache hit ratio gibi metrikleri izleyin; load test ile ölçeklenebilirlik sınırlarını keşfedin.

  5. 5. BFF ne zaman kullanılmalı?

    İstemciler farklı veri şekillerine veya latency hedeflerine sahipse BFF mantıklı bir tercihtir: her istemci türü için özelleştirilmiş uç nokta sunar.

  6. 6. Gateway stateful olabilir mi?

    Genelde stateless olmak tercih edilir; state gerekiyorsa external store (Redis, DB) kullanılmalı. Stateless olması yatay ölçeklemeyi kolaylaştırır.

  7. 7. Rate limiting nasıl uygulanmalı?

    Token bucket veya leaky bucket algoritmaları; tenant/consumer bazlı quota ve global limits kombinasyonu ile uygulanır. Burst toleransı ve backpressure politikaları belirleyin.

  8. 8. Vendor‑managed gateway mi yoksa open source mı?

    Vendor çözümler hızlı kurulum ve entegrasyon sağlar; open source daha esnek ve kapalı altyapılarda tercih edilir. Seçim operasyonel yetkinlik ve vendor‑lockin riskine göre yapılmalı.

Anahtar Kavramlar

API Gateway
İstemci isteklerini kabul eden ve servisleri yönlendiren merkezi giriş katmanı.
BFF (Backend For Frontend)
Farklı istemciler için özelleştirilmiş gateway katmanları.
Rate Limiting
İstek hızını kontrol eden mekanizma.
Aggregation
Birden çok backend cevabını birleştirip tek bir response üretme.
Service Mesh
Servisler arası iletişim, güvenlik ve gözlemlenebilirlik için kullanılan altyapı katmanı.

Öğrenme Yol Haritası

  1. 0–1 ay: Reverse proxy, load balancer, temel HTTP kavramları ve TLS/HTTPS öğrenin.
  2. 1–3 ay: API Gateway ürünlerini (Envoy, Kong, AWS API Gateway, NGINX) ve BFF pattern uygulamalarını deneyin.
  3. 3–6 ay: Service mesh (Istio/Linkerd) ve gateway entegrasyonları, distributed tracing (OpenTelemetry) ve rate limiting stratejilerini uygulayın.
  4. 6–12 ay: Canary/A‑B routing, policy as code, edge gateway ve AI‑assisted routing gibi ileri seviye stratejilerle üretim deneyimi kazanın.