TB
← Tüm yazılar

API gateway rolleri

API gateway'in mikro servis mimarisindeki rolu, cross-cutting concern yönetimi, routing, yük dengeleme ve servis kesfi uzerine kapsamlı bir mimari inceleme.

API gateway, istemciler ile arka plandaki mikro servisler arasina konumlanan tek giriş noktasidir. Mobil uygulama, web istemcisi veya üçüncü parti entegrasyonlar dogrudan onlarca servise baglanmak yerine gateway uzerinden iletişim kurar. Bu merkezi katman routing, kimlik dogrulama, rate limiting, SSL sonlandirma, request transformation ve gozlemlenebilirlik gibi cross-cutting concern'leri servislerden ayirarak tekrar eden kodu azaltir ve operasyonel tutarlılık sağlar.

Neden dogrudan servis erisimi yeterli degil?

Mikro servis mimarisinde her servisin kendi portu ve endpoint'i vardir. Istemci tarafinda servis kesfi, retry, auth token yenileme ve protokol uyumu her tuketicide tekrarlanir. Servis sayisi arttikca entegrasyon maliyeti katlanir. Gateway bu karmasikligi tek bir sözleşme ve tek bir bağlantı noktasina indirger.

Temel sorumluluklar

  • Routing: Path ve host bazli istek yonlendirme.
  • Load balancing: Servis instance'lari arasi dagitim.
  • Authentication: JWT dogrulama, API key kontrolu.
  • Rate limiting: Global ve client bazli kota.
  • SSL/TLS termination: Sifreleme gateway'de sonlanir.

Gateway pattern vs BFF

Genel amacli API gateway tüm istemci turleri icin ortak yuzey sunar. Backend for Frontend (BFF) ise mobil ve web gibi belirli istemci profilleri icin ozellestirilmis API katmanidir. BFF, istemciye uygun veri birlestirme ve alan modeli sağlar; gateway altyapi ve güvenlik odaklidir. Büyük sistemlerde ikisi birlikte kullanılır: gateway edge güvenlik, BFF istemci deneyimi.

Routing ve servis kesfi

Gateway statik konfigurasyon veya servis registry ile hedef belirler. Kubernetes ortaminda Ingress controller ve service mesh alternatifleri gateway islevlerinin bir kismini ustlenir. Consul, Eureka veya built-in DNS tabanli kesif dinamik routing sağlar.

routes:
  - id: orders
    uri: lb://order-service
    predicates:
      - Path=/api/v1/orders/**
    filters:
      - StripPrefix=2
      - name: RequestRateLimiter
        args:
          redis-rate-limiter.replenishRate: 100

Cross-cutting concern yönetimi

Her mikro serviste JWT dogrulama kodu yazmak yerine gateway token'i validate eder ve downstream servislere güvenilir header iletir. Internal servisler gateway disindan erisilemez şekilde ag segmentasyonu ile korunur. Bu model zero trust ic ag güvenliğini basitlestirir.

Request ve response transformation

Gateway istek govdesini, header'lari veya path'i degistirebilir. Eski API versiyonu ile uyumluluk icin path rewrite, header ekleme ve alan eslestirme yapilir. Response aggregation ile birden fazla servis çağrısı tek yanitta birlestirilebilir; ancak asiri aggregation gateway'i is mantigi katmanina donusturur, dikkatli kullanılmalıdır.

Güvenlik katmanı

OAuth2 token introspection, API key dogrulama ve mTLS client sertifikasi gateway'de uygulanir. WAF kurallari SQL injection ve XSS gibi saldirilari edge'de filtreler. IP allowlist ve geo blocking kurumsal gereksinimler icin eklenir.

  1. TLS 1.2+ zorunlulugu ve sertifika yönetimi.
  2. OAuth2/OIDC entegrasyonu.
  3. Rate limit ve bot korumasi.
  4. Request size limiti ve timeout.

Dayaniklilik

Circuit breaker, retry ve timeout politikalari gateway seviyesinde tanimlanabilir. Agresif retry downstream servisleri boğabilir; retry sayisi ve idempotency kurallari net olmalidir. Bulkhead pattern ile farklı route'lar izole edilir; bir servisin cokmesi tüm gateway'i etkilemez.

Gozlemlenebilirlik

Gateway merkezi log, metrik ve trace üretim noktasidir. Her istek icin correlation ID oluşturulur ve downstream servislere iletilir. Prometheus metrikleri, distributed tracing ve erişim loglari SLO takibi icin kullanılır.

X-Correlation-Id: 7f3a9c2e-4b1d-4e8a-9f0c-1d2e3f4a5b6c
X-Forwarded-For: client-ip
X-Request-Start: 1710000000123

Populer gateway cozumleri

Kong, NGINX, Traefik, AWS API Gateway, Azure API Management ve Google Apigee kurumsal ve açık kaynak seçenekler sunar. Kubernetes native ortamlarda Ingress + service mesh kombinasyonu gateway rolunu dagitik şekilde ustlenir. Seçim olcege, ekip yetkinligine ve bulut bagimliligina gore yapilir.

Self-hosted vs managed

  • Self-hosted: Tam kontrol, operasyon yuku.
  • Managed: Hızlı baslangic, vendor bagimliligi.
  • Hybrid: Edge managed, ic self-hosted.

Anti-pattern'ler

Gateway'e is mantigi tasimak en yaygın hatadir. Siparis toplam hesaplama, stok kontrolu gibi domain kurallari servislerde kalmalidir. Ikinci hata, gateway'i tek basina SPOF yapmadan olceklendirmemektir. Gateway cluster'i yüksek erisilebilirlik ve health check ile tasarlanmalidir.

Performans ve ölçeklendirme

Gateway ek hop ve latency ekler; genelde bir ila bes milisaniye kabul edilebilir. Connection pooling, HTTP/2 ve keep-alive downstream baglantilari optimize eder. CPU yogun işlemler (JWT imza dogrulama) hardware acceleration veya cache ile hafifletilir.

GraphQL ve gRPC gateway

REST dışında GraphQL gateway tek endpoint uzerinden birden fazla servise federasyon sağlar. gRPC-gateway veya Envoy gRPC-JSON transcoding protokol donusumunu yapar. Istemci REST kullanırken arka plan gRPC ile calisabilir.

Migration ve evrim

Monolitten mikro servise geciste gateway ilk adimlardan biridir. Eski monolit route'lari gateway uzerinden yeni servislere kademeli yonlendirilir. Strangler fig pattern ile trafik yuzdesi artirilir.

Özet

API gateway mikro servis mimarisinin operasyonel omurgasidir. Routing, güvenlik, limit ve gozlemlenebilirlik tek noktada toplanir; servisler is mantigina odaklanir. BFF ile birlikte dusunuldugunde istemci deneyimi ve altyapi endiseleri ayrilir. Asiri is mantigi yuklemeden, yüksek erisilebilirlik ve net politika tanimlariyla gateway uzun vadede entegrasyon maliyetini dusurur.

Servis mesh ile gateway rolleri kismen ortusur: mesh servisler arasi mTLS ve traffic policy, gateway dis istemci trafigini yönetir. Ikisinin birlikte calistigi hibrit modeller büyük kuruluslarda yaygindir. Doğru sınır cizgisi, operasyonel netlik ve performans icin kritiktir.

Canary ve mavi-yesil deploy

Gateway traffic splitting ile yeni servis surumune isteklerin yüzde onu yonlendirilebilir. Hata orani ve latency metrikleri izlenerek trafik kademeli artirilir. Rollback aninda route konfigurasyonu geri alinir.

Maliyet optimizasyonu

Managed gateway istek basina ucretlendirme yapabilir. Cache'lenebilir GET yanitlari gateway cache katmaninda tutularak origin yuku azaltilir. Gereksiz transformation ve log hacmi maliyeti artirir; sampling ve log seviyesi ayarlanmalidir.

Compliance ve veri residency

Gateway bolgesel routing ile veriyi belirli bolgedeki servislere yonlendirir. PII iceren istekler loglanmadan once maskelenir. Audit trail gateway erişim loglarinda tutulur.

Zero trust entegrasyonu

Gateway dis istemciden gelen her istegi dogrular; ic servisler birbirine guvenmez. SPIFFE/SPIRE ile servis kimligi, OPA ile policy evaluation gateway filter olarak çalışır. Her hop'ta kimlik ve yetki yeniden degerlendirilir.

Disaster recovery

Gateway konfigurasyonu Git'te versiyonlanir. Aktif-pasif veya aktif-aktif cluster failover otomatik olmalidir. DNS ve anycast ile bolgesel kesinti durumunda trafik baska bolgeye yonlendirilir.

API tasarımında bu konu operasyonel olgunluk, ölçülebilir metrikler ve tuketici odaklı sözleşme yönetimi ile desteklenmelidir. Ekip icinde karar kayitlari, review surecleri ve otomatik testler kaliteyi sürdürülebilir kilar. Üretim verisi ve geri bildirim dongusu ile politika ve limit degerleri periyodik güncellenir.