Zum Inhalt

Kapitel 13
Beobachtbare Architekturen

Die Anforderung an die Beobachtbarkeit von Cloud-nativen Anwendungen ergibt sich u.a. aus dem DevOps-Kontext und der evolutionären Entwicklung. In einem solchen Kontext ist man gezwungen Änderungen "am schlagenden Herzen" vorzunehmen. Weil Cloud-native Anwendungen komplexe Systeme sind, sind dabei nicht alle Effekte von Änderungen vorhersehbar. Die Wirkungsweise und das Systemverhalten muss also kontinuierlich beobachtbar sein, damit ungewünschte Effekte schnell erkannt und behoben sowie zukünftig vermieden werden können.

Hierzu kann man "Messfühler" in Cloud-nativen Anwendungen platzieren, die über einzelne Aspekte des Systemzustands Aufschluss geben, jedoch für ein ganzheitliches Bild konsolidiert und aufbereitet werden sollten. Die zu konsolidierden Daten müssen jedoch direkt in den Systemen und Teilkomponenten abgegriffen werden. Dies kann in einem Whitebox-Ansatz erfolgen, bei dem Programmcode mittels entsprechenden Logging-, Metrik-, oder Tracing-Bibliotheken durch Entwickler instrumentiert werden muss.

Es kann aber auch eine automatisierte Blackbox-Instrumentierung mittels Service Meshs erfolgen. Mittels Service Meshs kann man ferner die Resilienz und Sicherheit von Cloud-nativen Systemen konfigurieren sowie ein Traffic Management realisieren, dass bspw. Canary- als auch A/B-Teste ermöglicht. Ferner lassen sich mit solchen Lösungen auch komplexe Verkehrstopologien definieren, überwachen, analysieren und visualisieren. Für eine ganzheitliche Beobachtbarkeit sollten sowohl die Whitebox- als auch die Blackbox-Instrumentierung sich gegenseitig ergänzend eingesetzt werden.

Slides und Screencasts

Unit Screencast (YouTube) Slides
09a.1 Observability - Was ist das? PDF, PPTX
09a.2 Observability: Metrikerhebung PDF, PPTX
09a.3 Observability: Logging PDF, PPTX
09a.4 Observability: Distributed Tracing PDF, PPTX
09b.1 Service Mesh - Was ist das? PDF, PPTX
09b.2 Service Mesh: Der SMI Standard PDF, PPTX
09b.3 Service Mesh: Beispiel: Istio PDF, PPTX

Labs

Inhalte Downloads
Lab 11 Observability
  • Deployen von Yelb
  • Instrumentieren mit Istio
  • Inspezieren einer App mit Istio
  • Traffic Management (Virtual Services) mit Istio
  • Visualisierung von Verkehrstopologien
Git
Lab 12 Content-based Traffic Management
  • Deployen eines Space Surveillance Service
  • Instrumentieren eines Space Surveillance Service
  • Quantitative Routing (Canary Releases)
  • Inhalts-basiertes Routing (A/B Releases)
Git
Lab 13 Tracing und Logging
  • Instrumentieren von Microservices zum Zwecke des Tracings
  • Propagieren von Traces zwischen Microservices
  • Instrumentieren von Microservices zum Zwecke des Loggings
  • Konsolidiertes Logging
Git

Zeitreihen-Datenbanken zur Konsolidierung von Telemetriedaten

Die Aufstellung ist alphabetisch und ohne Anspruch auf Vollständigkeit.

Produkt Organisation Lizenz Anmerkungen
APM Elastic Apache 2.0 primär Tracing
ElasticSearch Elastic Apache/Elastic License 2.0 kann kostenfrei selbst gehosted werden, primär für Log-Konsolidierung
Graylog Open Graylog Inc. Server Side Public License Auch als kommerzielle Version und Managed Service verfügbar
InfluxDB Influxdata MIT
Jaeger Linux Foundation Apache 2.0 Tracing
Kubeshark Kubeshark Apache 2.0 Real-time K8s protocol-level visibility, capturing and monitoring all traffic and payloads going in, out and across containers, pods, nodes and clusters.
OpenSearch Amazon Web Services Apache 2.0 Apache 2.0 Fork von ElasticSearch, primär für Log-Konsolidierung
Prometheus Linux Foundation Apache 2.0 primär Metriken
Zipkin OpenZipkin Apache 2.0 Tracing

Anmerkungen sowie Ergänzungsvorschläge werden gerne über folgenden Kanal angenommen und berücksichtigt.

Open-Source Log Shipper

Die Aufstellung ist alphabetisch und ohne Anspruch auf Vollständigkeit.

Produkt Organisation Lizenz Anmerkungen
Fluentd FluentD Project Apache 2.0
Flume Apache Apache 2.0
LogStash Elastic Apache 2.0
FileBeat Elastic Apache/Elastic License 2.0
Rsyslog Adiscon GPL
syslog-ng One Identity GPL

Anmerkungen sowie Ergänzungsvorschläge werden gerne über folgenden Kanal angenommen und berücksichtigt.

Instrumentierungs-Bibliotheken für Logging, Metriken, Tracing

Die Aufstellung ist alphabetisch und ohne Anspruch auf Vollständigkeit.

Produkt Art Organisation Lizenz Anmerkungen
APM Agents Tracing Elastic BSD 3
Jaeger Clients Tracing Linux Foundation Apache 2.0
log Logging Go Standard Library BSD 3 Logging für Go
log4j Logging Apache Apache 2.0 Logging für Java
logging Logging Python Standard Library GPL kompatibel Logging für Python
Micrometer Metriken Pivotal Apache 2.0
OpenTracing Tracing OpenTracing Apache 2.0
prometheus Metriken Linux Foundation Apache 2.0
Splunk APM Tracing Splunk Apache 2.0
structlog Logging Hynek Schlawack Apache 2.0, MIT Strukturiertes Logging für Python
winston Logging Charlie Robbins MIT Logging für node.js

Anmerkungen sowie Ergänzungsvorschläge werden gerne über folgenden Kanal angenommen und berücksichtigt.

Managed Monitoring Service Provider

Die Aufstellung ist alphabetisch und ohne Anspruch auf Vollständigkeit oder Produktempfehlung.

Service Organisation Lizenz Anmerkungen
Datadog Datadog kommerziell Managed Service
Dynatrace Dynatrace kommerziell Managed Service
Graylog Cloud Graylog Inc. Server Side Public License Managed Service, kann auch selbst gehostet werden
loggly Solarwinds kommerziell Managed Service
New Relic New Relic Kommerziell Managed Service
Sumo Logic Sumo Logic kommerziell Managed Service
sysdig Sysdig kommerziell Managed Service

Anmerkungen sowie Ergänzungsvorschläge werden gerne über folgenden Kanal angenommen und berücksichtigt.

Service Meshs

Die Aufstellung ist alphabetisch und ohne Anspruch auf Vollständigkeit.

Produkt Organisation Lizenz Anmerkungen
Istio Istio Apache 2.0 Sehr umfangreiches Service Mesh
Kong Mesh Kong Inc. Apache 2.0
Kuma Kuma Apache 2.0
LinkerD LinkerD Apache 2.0 Projektinitiator Buoyant Inc.
Nginx NSM Nginx ??? Unklare Lizenz
Traefik Mesh Traefiklabs Apache 2.0
Open Service Mesh Open Service Mesh Apache 2.0 Referenzimplementierung des SMI-Standards

Anmerkungen sowie Ergänzungsvorschläge werden gerne über folgenden Kanal angenommen und berücksichtigt.