Kubernetes in der Cloud: Ein Leitfaden zur Beobachtbarkeit

Gemäß dem Sprichwort „Was du nicht misst, kannst du nicht managen“ von Deming, ist Beobachtbarkeit und Überwachung unser Weg, um unsere Dienste zu messen.

Kubernetes ist ziemlich revolutionär, wenn es um den Umgang mit Bereitstellungen und Skalierung geht. Aber die kontinuierliche Erstellung und Zerstörung von Containern kann manchmal Herausforderungen bei der Überwachung darstellen. Hier kommt die Beobachtbarkeit ins Spiel und bietet entscheidende Einblicke in die Leistung Ihres Systems und warum Probleme auftreten.

Möchten Sie die Terminologie von Kubernetes noch einmal durchgehen? Lesen Sie Entmystifizierung von Kubernetes in 5 Minuten.

Was ist Beobachtbarkeit in Kubernetes?

Die Leute verwenden gerne Beobachtbarkeit als Oberbegriff. Aber typischerweise bedeutet es Metriken, Protokolle und Traces. Es ist, als hätten Sie einen Einblick in das Herz Ihrer Anwendungen und Infrastruktur. Durch das Sammeln und Analysieren dieser Ausgaben hilft Ihnen die Beobachtbarkeit, potenzielle Probleme zu erkennen, bevor sie den Service stören, und die Gesamtleistung des Systems zu optimieren.

Drei Dinge kommen einem in den Sinn:

Metriken

Dies sind Zahlen, und sie liefern Daten über die Ressourcennutzung, Fehlerquoten und Leistung. Einige beliebte Metriken sind die CPU-Auslastung und die Speicherauslastung in Prozent, zusammen mit zusätzlichen Metadaten zu den Metriken selbst (manchmal als Dimensionen bezeichnet).

Protokolle

Protokolle bieten eine detaillierte Historie von Ereignissen innerhalb Ihres Systems, wie Fehler oder Benutzeraktionen. Sie bieten Kontext für die Fehlerbehebung und das Verständnis des Anwendungsverhaltens. Ich bin sicher, dass Sie bereits ein „Protokoll“ gesehen haben: 

SystemVerilog

 

Spuren

Das Tracing bietet einen End-to-End-Blick auf Anfragen, während sie durch Dienste verlaufen, und hilft dabei, Engpässe oder Latenzprobleme zu identifizieren. Indem Sie Anfragen über mehrere Mikroservices hinweg verfolgen, können Sie feststellen, wo Leistungsprobleme auftreten.

Protokolle und Traces klingen vielleicht ähnlich, sind aber unterschiedlich. Denken Sie an Protokolle als eine Momentaufnahme dessen, was passiert ist, während Traces Ihnen sagen, wie und warum es im gesamten System passiert ist.

Die Observabilität ist nicht wirklich auf eine Rolle in einer Organisation beschränkt, sondern ist selbst ein wichtiges Informationsstück, das zwischen verschiedenen Rollen ausgetauscht wird. Zum Beispiel instrumentieren Sie als Softwareingenieur den Anwendungscode mit Metriken, Protokollen und Traces. Jetzt benötigen Sie etwas, um diese Daten zu sammeln, zu speichern und zu analysieren, unter Verwendung von Tools wie Prometheus für Metriken und Jaeger für Traces.

Wenn Sie noch nicht von der Observabilität überzeugt sind, werde ich zusammenfassen:

  1. Es gewährleistet, dass alles reibungslos und effizient läuft, indem Leistungsengpässe identifiziert werden.
  2. Es verbessert die Systemresilienz und hilft Anwendungen, sich (hoffentlich) schnell von Ausfällen zu erholen.
  3. Eine kontinuierliche Überwachung ermöglicht es Teams, Anomalien frühzeitig zu erkennen, Sicherheitsverletzungen zu verhindern und sicherzustellen, dass sensible Daten geschützt sind.
  4. Sie können ein wunderschön aussehendes Dashboard erstellen, das Ihnen bessere Einblicke in die Systemleistung gibt. Es kann Ihnen sogar helfen, erhebliche Infrastrukturkosten zu sparen (wir schauen dich an, AWS!).

Moment, ich habe auch Überwachung erwähnt. Was ist das und wie unterscheidet es sich?

Während Observierbarkeit und Überwachung miteinander verbunden sind, dienen sie unterschiedlichen Zwecken. Überwachung umfasst die Einrichtung vordefinierter Prüfungen/Alarme, um sicherzustellen, dass ein System innerhalb akzeptabler Parameter funktioniert, Ihrer SLAs/SLOs. Observierbarkeit hingegen geht weiter, indem sie ein umfassendes Verständnis des Systemverhaltens bietet. Es geht nicht nur darum zu wissen, wann etwas kaputt geht; es geht darum zu verstehen, warum und wie es passiert ist. Sowohl Überwachung als auch Observierbarkeit sind entscheidend für ein effektives Systemmanagement.

Hinweis: OpenTelemetry

OpenTelemetry (auch bekannt als OTel) ist eine führende Open-Source-Sammlung von APIs, SDKs und Tools. Verwenden Sie es, um Telemetriedaten (Metriken, Protokolle und Traces) zu instrumentieren, zu generieren, zu sammeln und zu exportieren, um die Leistung und das Verhalten Ihrer Software zu analysieren. OpenTelemetry integriert sich mit vielen beliebten Bibliotheken und Frameworks und unterstützt codebasierte sowie zero-code Instrumentierung in verschiedenen Kubernetes-Umgebungen.

Fazit

Zusammenfassend, Beobachtbarkeit ist mehr als eine technische Anforderung — es ist ein strategisches Gebot für Organisationen, die in der heutigen Wettbewerbslandschaft an der Spitze bleiben wollen. Durch den Einsatz der richtigen Werkzeuge und Strategien, wie OTel für eine einheitliche Datensammlung, können Organisationen ihre Kubernetes-Anwendungen überwachen, Probleme beheben und kontinuierlich optimieren. Durch eine bessere Sichtbarkeit der Systemleistung können Organisationen datenbasierte Entscheidungen treffen, die Zuverlässigkeit der Anwendungen erhöhen und ihre Geschäftziele effektiver erreichen.

Ich weiß nicht, wer das gesagt hat, aber ich liebe dieses Zitat: Hör auf zu raten, fang an zu wissen!

Source:
https://dzone.com/articles/the-must-have-guide-to-kubernetes-observability