Be Software Architecture Wise
Be Wise Apps

Read in English · Leer en español · Lire en français

Kapitel 10 von 12 · Mittelstufe bis Fortgeschritten

Cloud-native Architektur und Infrastrukturarchitektur

Wo und wie Software läuft, ist heute eine Architekturentscheidung. Dieses Kapitel behandelt Cloud-Service- und Bereitstellungsmodelle und das Modell der geteilten Verantwortung, Container und Kubernetes, die Twelve-Factor App, Infrastructure as Code und GitOps, CI/CD-Pipelines und Deployment-Strategien, Multi-Region-Design, Disaster Recovery und Edge Computing, Platform Engineering sowie FinOps und Anbieter-Lock-in. Es richtet sich an Entwicklungsteams und Architekten, die die Betriebsqualitäten aus Kapitel 9 kennen und die Plattformen, von denen ihre Systeme abhängen, auswählen, begründen und betreiben wollen, ohne sich einen Stack verkaufen zu lassen.

Videoeinführung in Kapitel 10

7 Min. · auf Englisch gesprochen, mit Untertiteln
Nur anhören (Audio)
Transkript lesen

Willkommen zu Kapitel 10: Cloud-native Architektur und Infrastrukturarchitektur. Über den größten Teil der Geschichte der Software kam die Infrastruktur nach der Architektur: Ein Betriebsteam erhielt eine fertige Anwendung und suchte Server dafür. Diese Trennung gibt es nicht mehr. Heute entscheidet die Wahl zwischen virtuellen Maschinen, Containern, Plattformen und Funktionen über einen Großteil der Kosten. Die Zahl der Availability Zones und Regionen entscheidet über die Verfügbarkeit. Und die Deployment-Pipeline entscheidet, wie schnell und sicher ein Team etwas ändern kann.

Dieses Kapitel richtet sich an Entwicklungsteams und Architekten, die die Plattformen ihrer Systeme auswählen, begründen und betreiben wollen, ohne sich einen Stack verkaufen zu lassen. Es baut auf Kapitel 0 auf, das Server, virtuelle Maschinen, Container, Cloud-Servicemodelle, Regionen und Availability Zones eingeführt hat, und auf Kapitel 9, das erklärt hat, wie Systeme skalieren, kontrolliert degradieren und beobachtbar bleiben. Hier treffen diese Ideen auf die Plattformen, auf denen die meisten Systeme heute laufen. Entscheidungen darüber, wo und wie Software läuft, sind teuer rückgängig zu machen, betreffen alle Teams und legen die Qualitätsmerkmale fest, die Sie nach Kapitel 2 spezifizieren sollten. Und Kapitel 11 folgt mit der Frage, wie man eine Architektur einschließlich ihrer Infrastruktur beurteilt und sie im Lauf der Zeit sicher verändert.

Das durchgehende Beispiel ist die Essenslieferplattform aus dem ganzen Kurs: Kunden- und Restaurant-Apps, ein Bestellservice, Speisekarten, Zahlungen, Kurierdisposition und ein heftiger Ansturm am Abend. Die ersten vier Abschnitte behandeln die Grundlagen. Abschnitt zehn Punkt eins legt dar, wer was verwaltet, von Infrastructure as a Service, kurz IaaS, über PaaS und Funktionen bis zu SaaS. Im Modell der geteilten Verantwortung sind Ihre Daten, Identitäten und Konfiguration immer Ihre Aufgabe. Abschnitt zehn Punkt zwei erklärt Container-Images, Control Plane und Nodes von Kubernetes und den Reconciliation Loop in seinem Zentrum. Er sagt auch ehrlich, wann Kubernetes überdimensioniert ist. Abschnitt zehn Punkt drei geht alle zwölf Faktoren der Twelve-Factor App mit heutigen Einschränkungen durch und zeigt, wie man einen bestehenden Service daran prüft. Abschnitt zehn Punkt vier behandelt Infrastructure as Code: deklarative Werkzeuge, State und Drift, Module, Immutable Infrastructure, GitOps, Policy as Code und Tests.

Die wichtigste Idee dieses Kapitels ist ein deklarierter gewünschter Zustand, den Automatisierung fortlaufend abgleicht. Dieses Diagramm aus Abschnitt zehn Punkt zwei zeigt, wie Kubernetes das macht. Sie deklarieren den gewünschten Zustand. Hier: drei Replikas des Bestellservice in Version zwei Punkt vier. Ein Controller beobachtet den tatsächlichen Zustand des Clusters und findet nur zwei laufende Pods. Er vergleicht, was er sieht, mit dem Deklarierten und stellt fest, dass ein Pod fehlt. Also handelt er und fordert einen neuen Pod an. Die Schleife wiederholt sich bei jedem Änderungsereignis und in regelmäßigen Abständen. Weil er auf die aktuelle Differenz reagiert und nicht auf eine gemerkte Abfolge von Ereignissen, richten verpasste Ereignisse und Neustarts keinen bleibenden Schaden an. Dieselbe Idee zieht sich durch Infrastrukturcode, GitOps, Deployment-Pipelines und Immutable Infrastructure. Ein Mensch ändert eine Beschreibung, die geprüft, versioniert und nachvollziehbar ist, und Maschinen erledigen den Rest.

Die zweiten vier Abschnitte behandeln Veränderung, Skalierung, Menschen und Geld. Abschnitt zehn Punkt fünf verfolgt eine Änderung vom Commit bis in die Produktion durch eine CI/CD-Pipeline, vergleicht Rolling-, Blue-Green-, Canary- und Shadow-Deployments und trennt Deployment und Release mit Feature-Flags. Abschnitt zehn Punkt sechs vergleicht Disaster-Recovery-Strategien, erklärt, was die Replikation von Daten über Regionen für die Konsistenz bedeutet, und behandelt zellbasierte Architektur und Edge Functions. Abschnitt zehn Punkt sieben behandelt die Internal Developer Platform als Produkt mit Golden Paths und Guardrails und zeigt, wie man misst, ob sie hilft. Und Abschnitt zehn Punkt acht macht Kosten zu einer Architekturqualität, gemessen pro Bestellung, und behandelt Anbieter-Lock-in als Abwägung, die zu bepreisen ist, statt als Sünde, die es zu vermeiden gilt.

Die zweite Idee lautet, dass jede Option in diesem Kapitel eine Abwägung ist. Dieses Diagramm aus Abschnitt zehn Punkt sechs zeigt vier Disaster-Recovery-Strategien nebeneinander. Jede wird an zwei Zahlen gemessen, die vom Fachbereich kommen: dem Recovery Time Objective, kurz RTO, also wie lange Sie ausfallen dürfen, und dem Recovery Point Objective, kurz RPO, also wie viele Daten Sie verlieren dürfen. Bei Backup und Wiederherstellung werden Backups in eine Wiederherstellungsregion kopiert, in der nichts läuft. Die Wiederherstellung dauert Stunden, und Sie verlieren alles seit dem letzten Backup. Bei Pilot Light werden die Daten repliziert, aber die Anwendungsserver sind aus. Bei Warm Standby läuft bereits eine kleine funktionsfähige Kopie, die hochskaliert wird. Die Wiederherstellungszeit sinkt auf einige zehn Minuten, dann auf Minuten. Bei Active-Active bedient eine vollständige zweite Region bereits Datenverkehr, und beide Zahlen liegen nahe null. Jeder Schritt nach rechts erkauft schnellere Wiederherstellung und weniger Datenverlust zu höheren laufenden Kosten und mehr Komplexität. Die richtige Wahl hängt von der Arbeitslast und der Organisation ab.

Am Ende des Kapitels können Sie die Cloud-Service- und Bereitstellungsmodelle vergleichen und die Aufgaben für eine Arbeitslast nach dem Modell der geteilten Verantwortung zuordnen. Sie verstehen, wie Kubernetes einen deklarierten gewünschten Zustand aufrechterhält, und können beurteilen, wann es überdimensioniert ist. Sie können zwischen Rolling-, Blue-Green-, Canary- und Shadow-Deployments wählen und Feature-Flags nutzen, um Deployment und Release zu trennen. Und Sie können Stückkosten wie die Kosten pro Bestellung berechnen und Lock-in als bepreiste Abwägung bewerten.

Jeder Abschnitt lässt sich für sich lesen, aber die Reihenfolge ist bewusst gewählt. Über Deployment-Strategien kann man nicht nachdenken, ohne zu wissen, was Kubernetes während eines Rollouts tut. Wenn Sie neu im Betrieb sind, lesen Sie zuerst die Kästen für Einsteiger und den Abschnitt über Server und die Cloud in Kapitel 0. Machen Sie sich keine Sorgen, Werkzeugnamen auswendig zu lernen. Produkte ändern sich alle paar Jahre, die Mechanismen bleiben. Anbieter werden als Beispiele genannt, nicht als Empfehlungen. Am Ende jedes Abschnitts stehen Fragen zur Selbstkontrolle. Beantworten Sie sie im Kopf, bevor Sie sich die Antworten ansehen. Planen Sie etwa drei Stunden ein, um das ganze Kapitel zu lesen. Wenn Sie so weit sind, gibt es einen optionalen Kapiteltest von etwa fünfundvierzig Minuten mit zwanzig Multiple-Choice-Fragen und zwei schriftlichen Antworten. Die Bestehensgrenze liegt bei achtzig Prozent.

So ist das Kapitel aufgebaut. Beginnen Sie mit Abschnitt zehn Punkt eins über Cloud-Service- und Bereitstellungsmodelle und darüber, wer wofür verantwortlich ist. Bis gleich.

Kapitel herunterladen (PDF)In der App lesen

Auf einen Blick

Das lernen Sie

  • IaaS, CaaS, PaaS, FaaS und SaaS sowie die Bereitstellungsmodelle vergleichen und die Pflichten für eine Workload nach dem Modell der geteilten Verantwortung zuweisen.
  • Erklären, wie Kubernetes einen deklarierten gewünschten Zustand über seine Control Plane, Nodes und Reconciliation Loops aufrechterhält, Requests, Limits und Probes konfigurieren und beurteilen, wann Kubernetes zu viel des Guten ist.
  • Eine Anwendung anhand der zwölf Faktoren und der darüber hinausgehenden Prinzipien prüfen und die Korrekturen nach Risiko priorisieren.
  • Infrastrukturcode mit Remote State, Locking, Modulen, Umgebungen, Policy-Prüfungen, Tests und GitOps-Abgleich entwerfen.
  • Eine Deployment-Strategie wählen (Rolling, Blue-Green, Canary oder Shadow) und Deployment und Release mit Feature-Flags trennen.
  • Eine Disaster-Recovery-Strategie anhand von RTO, RPO und Kosten auswählen und die Folgen erklären, wenn Daten über Regionen repliziert und Arbeit an den Edge verlagert wird.
  • Erklären, wie eine Internal Developer Platform mit Golden Paths die kognitive Last senkt und wie man misst, ob sie erfolgreich ist.
  • Stückkosten wie die Kosten pro Bestellung berechnen, die architektonischen Treiber der Cloud-Kosten erkennen und Lock-in als bepreiste Abwägung bewerten.

Bevor Sie beginnen

Kapitel 0, Abschnitt 0.7 (Server und die Cloud) und Abschnitt 0.8 (wie Software entsteht); Kapitel 9, besonders Skalierung, Zustandslosigkeit, SLOs und Observability. Kapitel 6 über verteilte Systeme hilft.

Zeit

Etwa 3 Stunden Lesezeit; 45 Minuten für den Test.

Schlüsselbegriffe

Cloud-native · Modell der geteilten Verantwortung · Availability Zone · Container-Image · Kubernetes · Reconciliation Loop · Twelve-Factor App · Infrastructure as Code · GitOps · Canary Release · RTO und RPO · Golden Path · FinOps · Lock-in

Warum Infrastruktur zur Architektur geworden ist

Über den größten Teil der Geschichte der Software kam die Infrastruktur nach der Architektur: Ein Betriebsteam erhielt eine fertige Anwendung und suchte Server, auf denen sie laufen konnte. Diese Trennung gibt es nicht mehr. In einem modernen System entscheidet die Wahl zwischen virtuellen Maschinen, Containern, Plattformen und Funktionen über einen Großteil der Kosten; die Zahl der Availability Zones und Regionen über die Verfügbarkeit; die Deployment-Pipeline darüber, wie schnell und sicher ein Team überhaupt etwas ändern kann; und die Infrastruktur selbst wird als Code geschrieben, in Pull Requests geprüft und zusammen mit der Anwendung versioniert. Entscheidungen darüber, wo und wie Software läuft, gehören heute zu den bedeutsamsten, die ein Architekt trifft, genau im Sinne von Kapitel 1: Sie sind teuer rückgängig zu machen, betreffen alle Teams und legen die Qualitätsmerkmale fest, die Sie nach Kapitel 2 spezifizieren sollten.

Dieses Kapitel baut auf zwei früheren auf. Kapitel 0 hat Server, virtuelle Maschinen, Container, Cloud-Servicemodelle, Regionen und Availability Zones eingeführt (Server und die Cloud). Kapitel 9 hat erklärt, wie Systeme skalieren, kontrolliert degradieren und beobachtbar bleiben (ab Skalierungsstrategien). Hier treffen diese Ideen auf die Plattformen, auf denen die meisten Systeme heute laufen. Das durchgehende Beispiel ist die Essenslieferplattform, die im ganzen Kurs verwendet wird: Kunden- und Restaurant-Apps, ein Bestellservice, Speisekarten, Zahlungen, Kurierdisposition und ein heftiger Ansturm am Abend.

Wie die Abschnitte zusammenhängen

Die ersten vier Abschnitte behandeln die Grundlagen. Cloud-Service- und Bereitstellungsmodelle legt dar, wer bei IaaS, Containers as a Service, PaaS, FaaS und SaaS was verwaltet, erklärt das Modell der geteilten Verantwortung, die wirklichen Gründe für Private, Hybrid und Multi-Cloud, was die CNCF unter Cloud-native versteht und wann Mieten nicht billiger ist als Besitzen. Container und Orchestrierung erklärt Images und die OCI-Standards, Control Plane und Nodes von Kubernetes, seine Kernobjekte und den Reconciliation Loop in seinem Zentrum, mit echtem YAML, und sagt ehrlich, wann Kubernetes überdimensioniert ist. Die Twelve-Factor App geht alle zwölf Faktoren mit heutigen Einschränkungen durch, dazu die darüber hinausgehenden Prinzipien und die Prüfung eines bestehenden Service. Infrastructure as Code behandelt deklarative Werkzeuge (Terraform, OpenTofu, CloudFormation, Bicep, Pulumi), State, Drift, Module, Immutable Infrastructure, GitOps, Policy as Code und Tests.

Die zweiten vier Abschnitte behandeln Veränderung, Skalierung, Menschen und Geld. CI/CD-Pipelines und Deployment-Strategien verfolgt eine Änderung vom Commit bis in die Produktion, vergleicht Rolling-, Blue-Green-, Canary- und Shadow-Deployments und trennt Deployment und Release mit Feature-Flags. Multi-Region, Disaster Recovery und Edge Computing vergleicht Disaster-Recovery-Strategien nach RTO, RPO und Kosten, erklärt die Folgen für die Konsistenz, wenn Daten über Regionen repliziert werden, und behandelt zellbasierte Architektur und Edge Functions. Platform Engineering behandelt die Internal Developer Platform als Produkt mit Golden Paths und Guardrails und zeigt, wie man misst, ob sie hilft. FinOps, Kostenarchitektur und Lock-in macht Kosten zu einer Architekturqualität, gemessen pro Bestellung, und behandelt Anbieter-Lock-in als Abwägung, die zu bepreisen ist, statt als Sünde, die es zu vermeiden gilt.

Jeder Abschnitt lässt sich für sich lesen, aber die Reihenfolge ist bewusst gewählt: Über Deployment-Strategien kann man nicht nachdenken, ohne zu wissen, was Kubernetes während eines Rollouts tut, und über Platform Engineering nicht ohne Infrastrukturcode und Pipelines, aus denen die Plattform gebaut wird.

Eine Idee zieht sich durch jeden Abschnitt

Die wichtigste Idee dieses Kapitels ist ein deklarierter gewünschter Zustand, den Automatisierung fortlaufend abgleicht. Kubernetes hält die Zahl der laufenden Kopien gleich der Zahl, die Sie deklariert haben. Infrastrukturcode beschreibt Netzwerke und Datenbanken, und ein Werkzeug berechnet die Differenz zum Bestehenden und wendet sie an. GitOps hält den Cluster gleich dem Inhalt eines Git-Repositorys. Eine Deployment-Pipeline macht aus jeder Änderung dieselbe getestete, wiederholbare Abfolge von Schritten. Immutable Infrastructure ersetzt, statt zu reparieren. In jedem Fall ändert ein Mensch eine Beschreibung, die geprüft, versioniert und nachvollziehbar ist, und Maschinen erledigen den Rest. Das erlaubt einem kleinen Team, ein großes System sicher zu betreiben: Änderungen werden Routine, und Wiederherstellung wird zu einem erneuten Durchlauf statt zu einer Heldentat.

Die zweite Idee lautet: Jede Option auf der Speisekarte dieses Kapitels ist eine Abwägung, und die richtige Wahl hängt von der Arbeitslast und der Organisation ab. Kubernetes ist hervorragend für viele Services und viele Teams und Verschwendung für drei Services und zwei Entwickler. Multi-Region Active-Active erkauft Minuten an Wiederherstellungszeit zu einem Vielfachen der Kosten. Ein Plattformteam hilft nur, wenn die Entwicklungsteams wollen, was es baut. Die Cloud ist bei schwankender Last am billigsten und kann bei großer, gleichmäßiger Last von eigener Hardware unterboten werden. Lock-in ist ein Kostenfaktor, der gegen die Kosten der Portabilität abzuwägen ist. Das Kapitel gibt Ihnen deshalb Entscheidungshilfen, ausgearbeitete Beispiele mit Zahlen und die Argumente beider Seiten statt eines einzigen empfohlenen Stacks.

Wie Sie dieses Kapitel nutzen

Wer neu im Betrieb ist, sollte zuerst die Kästen für Einsteiger und den Abschnitt über Server und die Cloud in Kapitel 0 lesen und sich keine Sorgen machen, Werkzeugnamen auswendig zu lernen: Produkte ändern sich alle paar Jahre, während die Mechanismen (Abgleich, Unveränderlichkeit, State und Drift, Progressive Delivery, Wiederherstellungsziele, Stückkosten) bleiben. Erfahrene Fachleute beginnen vielleicht mit den ausgearbeiteten Beispielen und den Entscheidungshilfen und lesen dann die Abschnitte, deren Abwägungen sie nicht teilen. Anbieter wie AWS, Microsoft Azure, Google Cloud und Cloudflare werden durchweg als Beispiele genannt, nicht als Empfehlungen.

Kapitel 11 folgt mit Bewertung, Governance und Modernisierung: wie man eine Architektur einschließlich ihrer Infrastruktur beurteilt und wie man sie im Lauf der Zeit sicher verändert.

Die 8 Abschnitte

10.1 · Mittelstufe · 22 Min.Cloud-ModelleIaaS, CaaS, PaaS, FaaS und SaaS, Public, Private, Hybrid und Multi-Cloud, geteilte Verantwortung, Zonen und Managed Services, was cloud-native bedeutet und wann Mieten nicht billiger ist.Lesen →10.2 · Fortgeschritten · 25 Min.Container und KubernetesImages, Layer, Registries und die OCI-Standards; warum Orchestrierung nötig ist; Control Plane, Nodes, zentrale Objekte und Reconciliation Loops von Kubernetes; Requests, Limits, Probes und wann Kubernetes überdimensioniert ist.Lesen →10.3 · Mittelstufe · 20 Min.Twelve-FactorAlle zwölf Faktoren mit ihrer Bedeutung, ihrem Nutzen und den Stellen, an denen sie veraltet sind; die Prinzipien darüber hinaus (Disposability, Unveränderlichkeit, Observability, Sicherheit); und ein ausgearbeitetes Audit eines bestehenden Service mit priorisierten Korrekturen.Lesen →10.4 · Fortgeschritten · 24 Min.Infrastructure as CodeDeklarativer und imperativer Infrastrukturcode; Terraform, OpenTofu, CloudFormation, Bicep und Pulumi; State, Locking, Drift, Module und Umgebungen; Immutable Infrastructure; GitOps; Policy as Code; und wie man all das testet.Lesen →10.5 · Mittelstufe · 22 Min.CI/CD und DeploymentWie eine Änderung vom Commit in die Produktion gelangt: Pipeline-Stufen, Build once, deploy many, Trunk-Based Development, Rolling-, Blue-Green-, Canary- und Shadow-Deployments, Feature-Flags, Migrationen und Rollback.Lesen →10.6 · Fortgeschritten · 24 Min.Multi-Region und EdgeWann und wie Sie über mehrere Regionen hinweg betreiben: Latenz, Disaster Recovery und Datenresidenz, die vier DR-Strategien mit RTO, RPO und Kosten, regionsübergreifende Daten, Failover, Zellen zur Begrenzung des Blast Radius, CDNs und Edge Functions.Lesen →10.7 · Mittelstufe · 21 Min.Platform EngineeringWarum Organisationen Internal Developer Platforms aufbauen, Golden Paths und Backstage, die Plattform als Produkt mit Self-Service und Guardrails betreiben, kognitive Last reduzieren, Erfolg mit DORA und SPACE messen und die üblichen Fallen vermeiden.Lesen →10.8 · Mittelstufe · 22 Min.FinOps und Lock-inKosten als architektonisches Qualitätsmerkmal behandeln: FinOps-Phasen, Unit Economics wie Kosten pro Bestellung, häufige Kostentreiber, Nutzungszusagen und Spot, Tagging, Showback und Chargeback sowie Lock-in als bewusste Abwägung mit Exit-Strategie.Lesen →

Kapiteltest

Prüfen Sie Ihr Verständnis von Kapitel 10

Optional: 20 Multiple-Choice-Fragen und 2 kurze schriftliche Antworten, jedes Mal neu aus einem Pool von 72 Fragen gezogen. Bestehensgrenze 80 %. Wer jeden Kapiteltest und anschließend die Abschlussbewertung besteht, erhält das Be Wise Abschlusszertifikat.

Den Test zu Kapitel 10 in der App ablegen

Weiterführende Literatur