2024-12-20Hünkar Döner

EKS Üzerinde Mikroservis Mimarisi Kurulum Rehberi

MicroservicesEKSArchitectureBest Practices
E

EKS Üzerinde Mikroservis Mimarisi

Mikroservis mimarisi, uygulamaları küçük, bağımsız ve yönetilebilir parçalara bölmektir. Amazon EKS, bu parçaları çalıştırmak için ideal platformdur. Ancak mikroservisler, dağıtık sistemlerin karmaşıklığını (distributed system complexity) da beraberinde getirir.

Başarılı bir mikroservis kurulumu için EKS üzerinde şu bileşenleri kurgulamalısınız:

1. İsim Uzayları (Namespaces)

Her mikroservisi veya takımı kendi Namespace'i içine hapsedin. Bu, kaynak izolasyonu ve erişim kontrolü sağlar.

  • Örn: payment-service, user-service, monitoring.

2. Servis Keşfi (Service Discovery)

Kubernetes DNS (CoreDNS), servislerin birbirini bulmasını sağlar. Servis A, Servis B'ye IP adresiyle değil, service-b.namespace.svc.cluster.local ismiyle gitmelidir.

3. Konfigürasyon Yönetimi

Her mikroservisin ayarlarını (DB adresi, API anahtarı) kodun içine gömmeyin. ConfigMap ve Secret kullanın. Değişiklikleri uygulamayı yeniden başlatmadan algılamak için dinamik konfigürasyon kütüphaneleri kullanın.

4. Dayanıklılık Desenleri (Resiliency Patterns)

Mikroservislerden biri çökerse, tüm sistem çökmemelidir (Domino etkisi).

  • Circuit Breaker: Hata veren servise giden trafiği keser.
  • Retry & Timeout: İstek zaman aşımına uğrarsa tekrar dener ama sonsuza kadar değil. Bu desenleri uygulama kodunda yazmak yerine, Istio veya Linkerd gibi bir Service Mesh ile altyapı seviyesinde çözmek en iyi pratiktir.

5. Merkezi Loglama ve İzleme

Onlarca servisin loguna tek tek bakamazsınız. Fluent Bit ile tüm logları OpenSearch veya CloudWatch'a toplayın. OpenTelemetry ile zincirleme istek takibi (Distributed Tracing) yapın.