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 erkennt und behoben sowie zukünftig vermieden werden können.

Hierzu kann man "Messfühler" in Cloud-nativen Anwendungen platzieren, die über einzelne Aspekte des Systemzustand Aufschluss geben, jedoch für ein ganzheitliches Bild konsolidiert und aufbereitet werden sollten. Die konsolidierten Daten müssen jedoch in Systemen abgegriffen werden. Dies kann in einem Whitebox-Ansatz erfolgen, bei dem man 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 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 aber sowohl die Whitebox- als auch die Blackbox-Instrumentierung sich gegenseitig ergänzend eingesetzt werden.

Slides

Inhalte Downloads
Slides
Unit 09
Observable Architectures
  • Beobachtbarkeit von Systemen
  • Konsolidierung von Telemetriedaten
  • Telemetriedaten (Logs, Metrics, Tracing)
  • White-Box- und Black-Box-Monitoring
  • Instrumentierung von Services zum Zwecke der Erhebung von White-Box Telemetriedaten
  • Service Meshs
  • Traffic Management
  • Resilienz
  • Sicherheit
  • Fallstudie 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
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
Gloo Mesh solo.io Apache 2.0 Kubernetes-native Service Mesh Management Plane
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.