Sobes.tech
Middle

Mikroservislerin doğru çalıştığını nasıl belirleyebiliriz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bunu izleme, günlük kaydı ve izleme yoluyla belirleyebilirsiniz.

İzleme

  • Sağlık metrikleri: Erişilebilirlik durumu (uptime), yanıt gecikmesi, hata oranı, kaynak kullanımı (CPU, bellek, disk G/Ç).
  • İş metrikleri: Başarılı işlemler sayısı, kullanıcı etkinliği.
  • Araçlar: Prometheus, Grafana, Nagios, Zabbix.

Günlük Kaydı (Logging)

  • Merkezi günlük toplama: Tüm mikroservislerden günlüklerin toplanması, hataların, arızaların ve anormal davranışların bulunması.
  • Yapılandırılmış günlükler: JSON veya diğer ayrıştırılabilir yapıdaki günlükler, analizi kolaylaştırmak için.
  • Araçlar: ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Loki.

İzleme (Distributed Tracing)

  • İstek takibi: Bir isteğin birçok mikroservis üzerinden izlenmesi, dar boğazların ve hataların tespiti.
  • Görselleştirme: İsteğin akışını diyagram şeklinde gösterme.
  • Araçlar: Jaeger, Zipkin, OpenTelemetry.

Hazırlık ve canlılık kontrolleri (Readiness and Liveness Probes)

  • Canlılık kontrolleri (Liveness probes): Konteynerin çalışıp çalışmadığını belirler. Kontrol başarısız olursa, kubelet konteyneri yeniden başlatır.
  • Hazırlık kontrolleri (Readiness probes): Konteynerin trafik almaya hazır olup olmadığını belirler. Kontrol başarısız olursa, kubelet trafiği bu pod'a yönlendirmez.

Otomatik testler

  • Birim ve entegrasyon testleri: Bireysel bileşenlerin ve etkileşimlerinin doğru çalıştığını doğrular.
  • Yük testleri: Sistem performansını yüksek yük altında değerlendirir.
  • Kaos mühendisliği (Chaos Engineering): Sistem arızalarını simüle ederek dayanıklılığını test eder.

Hatalı çalışma belirtileri:

  • Günlüklerde veya izleme araçlarında hata sıklığında artış.
  • Yanıt gecikmesinde artış.
  • İşlem kapasitesinde azalma.
  • Anormal kaynak kullanımı.
  • İş süreçlerinde arızalar.

Kubernetes'te hazırlık kontrolü ayarına örnek:

# Konteyner için hazırlık kontrolü tanımı
readinessProbe:
  httpGet:
    path: /health # Hazır olma durumunu döndüren HTTP uç noktası yolu
    port: 8080 # Servis portu
  initialDelaySeconds: 5 # İlk kontrol öncesi gecikme
  periodSeconds: 10 # Kontroller arasındaki süre