2024-08-20Hunkar Döner

Modern Observability: AWS + OpenTelemetry + Envoy Gateway

ObservabilityOpenTelemetryAWSEnvoyMonitoring
M

Modern Observability: AWS + OpenTelemetry + Envoy Gateway

Mikroservisler ve dağıtık sistemler harikadır, ta ki bir sorun çıkana kadar. Bir istek başarısız olduğunda, hatanın nerede olduğunu bulmak (Root Cause Analysis) samanlıkta iğne aramaya benzeyebilir. Eski usul log dosyalarına bakmak artık yeterli değil. İhtiyacımız olan şey: Gözlemlenebilirlik (Observability).

Modern dünyada gözlemlenebilirlik üç temel sütuna dayanır: Loglar, Metrikler ve İzler (Traces). Bu yazıda, AWS altyapısında OpenTelemetry standardını kullanarak nasıl uçtan uca görünürlük sağlayabileceğinizi anlatacağız.

OpenTelemetry (OTEL) Nedir ve Neden Önemlidir?

Eskiden her izleme aracının (Datadog, New Relic, AWS X-Ray) kendi ajanı ve kütüphanesi vardı. Bu da sizi o araca bağımlı (Vendor Lock-in) yapıyordu. OpenTelemetry (OTEL), CNCF tarafından desteklenen, veri toplama işini standartlaştıran açık kaynaklı bir projedir.

  • Fayda: Uygulamanızı bir kez OTEL ile donatırsınız (instrumentation), veriyi ister AWS X-Ray'e, ister Prometheus'a, isterseniz başka bir araca gönderirsiniz. Kodunuzu değiştirmenize gerek kalmaz.

AWS Distro for OpenTelemetry (ADOT)

AWS, OTEL projesini tam destekler ve ADOT adında, AWS servisleriyle (EKS, ECS, Lambda) önceden entegre edilmiş, güvenli ve performanslı bir dağıtım sunar. ADOT Collector, topladığı verileri Amazon CloudWatch ve AWS X-Ray servislerine güvenli bir şekilde iletir.

Envoy Gateway ile Ağ Görünürlüğü

Uygulama kodunu izlemek yetmez, ağ trafiğini de izlemelisiniz. Kubernetes giriş kapınız olan Envoy Gateway, OTEL ile doğal entegrasyona sahiptir.

  • Distributed Tracing: Envoy, gelen her isteğe benzersiz bir Trace-ID ekler. Bu ID, isteğin geçtiği tüm mikroservisler boyunca taşınır. Böylece, bir isteğin Envoy'dan girip, Servis A'ya, oradan Servis B'ye ve veritabanına gidiş yolculuğunu AWS X-Ray haritası üzerinde görselleştirebilirsiniz. Hangi adımda gecikme (latency) olduğunu milisaniye hassasiyetinde görebilirsiniz.

Nasıl Bir Mimari Kurulmalı?

  1. Uygulama Seviyesi: Uygulamalarınıza (Java, Python, Go) OpenTelemetry SDK'larını ekleyin.
  2. Altyapı Seviyesi: EKS kümenize ADOT Collector kurun (DaemonSet veya Sidecar olarak).
  3. Ağ Seviyesi: Envoy Gateway üzerinde tracing özelliğini açın ve veriyi ADOT Collector'a yönlendirin.
  4. Görselleştirme: Tüm veriyi AWS X-Ray ve CloudWatch ServiceLens üzerinde tek bir panelde izleyin.

Gözlemlenebilirlik, sistem güvenilirliği için olmazsa olmazdır. Karmaşık sistemlerinizde kör noktaları ortadan kaldırmak için Kubernetes Danışmanlığı ve AWS Danışmanlığı hizmetlerimizden yararlanarak modern bir izleme altyapısı kurabilirsiniz.