Publiziert:

Cloud Native

Architektur für Elastizität und Resilienz

Cloud Native ist nicht nur das Verschieben von Servern in die Cloud (Lift und Shift). Es ist ein Architektur-Ansatz, bei dem Anwendungen speziell für die Nutzung der Vorteile von verteilten Cloud-Umgebungen konzipiert werden: Elastizität, Resilienz und schnelle Iterationszyklen.

Im Zentrum stehen Containerisierung (Docker), Orchestrierung (Kubernetes) und die Zerlegung von Anwendungen in kleine, unabhängig skalierbare Services.

Anti-Patterns: Die Cloud-Migration ohne Mehrwert

  • Lift und Shift von Altlasten: Man schiebt einen starren Monolithen 1:1 auf eine virtuelle Maschine in der Cloud. Das Ergebnis: Höhere Kosten ohne die Vorteile der Cloud-Flexibilität zu nutzen.
  • Manuelle Server-Pflege: Man verwaltet Cloud-Server immer noch wie physische Rechner im Keller (Patches einspielen, manuelle Konfiguration), was die Skalierung verhindert.
  • Vendor Lock-in durch Spezial-Dienste: Nutzung von proprietären Funktionen eines Cloud-Anbieters, die einen Wechsel oder Multi-Cloud-Betrieb unmöglich machen.

Die Cloud-native Architektur

  1. Containerisierung: Verpackung von Code und allen Abhängigkeiten in standardisierte Container für hohe Portabilität über Umgebungen hinweg.
  2. Kubernetes (K8s) Orchestrierung: Automatisches Deployment, Skalierung und Management der Container-Flotte.
  3. Microservices und APIs: Zerlegung der Anwendung in kleine Einheiten, die über Netzwerkschnittstellen kommunizieren (siehe API-First).
  4. Stateless Design: Anwendungen speichern keine Daten lokal, was das schnelle Starten, Stoppen und Verschieben von Instanzen ermöglicht.
  5. Observability: Durchgehende Telemetrie (Logs, Metriken, Traces), um den Zustand des komplexen verteilten Systems jederzeit zu verstehen.

Der Fokus: Belastbare Systeme

Richtig aufgebaute Cloud-native Systeme können sich selbst reparieren (Self-healing) und ihre Kapazität automatisch dem tatsächlichen Bedarf anpassen, was Kosten senken und die Verfügbarkeit erhöhen kann. Diese Eigenschaften sind ein Ergebnis von Health-Checks, Controllern, Redundanz und Skalierungs-Policies, nicht automatisch gegeben.

FAQ

Warum brauchen wir Kubernetes? Ist das nicht zu kompliziert?

Es ist ein verbreiteter Standard für Container-Orchestrierung, jedoch nicht für jedes Cloud-native System zwingend (Serverless, Managed PaaS und Container-Dienste sind Alternativen). Wo es passt, nimmt es die Arbeit ab, Server manuell zu überwachen und zu skalieren, und bildet die Basis für eine moderne, automatisierte IT.

Ist Cloud-native teurer als klassisches Hosting?

Die Infrastrukturkosten können steigen, während Automatisierung operative Arbeit reduziert. Zusätzlich verkürzt eine passende Cloud-native Architektur den Weg von einer geprüften Änderung bis zur Veröffentlichung.

Referenzen