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
|
Git |
Lab 12 | Content-based Traffic Management
|
Git |
Lab 13 | Tracing und Logging
|
Git |
Lab 14 | Strukturiertes 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 | |
Open Telemetry | Tracing, Metriken, Logging | OpenTelemetry Authors | CC BY 4.0 (Docs) | Standard |
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. |
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.