Architektur und Komponenten

In dieser Lerneinheit tauchst du tief in die technischen Grundlagen der Cloud-Architektur ein, mit Fokus auf Virtualisierung und Container-Technologien. Du lernst die wesentlichen Unterschiede zwischen virtuellen Maschinen und Containern kennen und verstehst, wie diese Technologien die Basis für flexible, skalierbare Cloud-Infrastrukturen bilden. Das Wissen ermöglicht dir, fundierte Entscheidungen bei der Auswahl und Implementierung von Cloud-Architekturen in der Praxis zu treffen.

Einführung

Stell dir vor, ein großer Onlineshop startet sein Black-Friday-Event. Innerhalb weniger Sekunden schießen die Nutzerzahlen in die Höhe. Ohne passende Architektur bricht das System unter der Last zusammen, Bestellungen gehen verloren und Kunden wechseln zur Konkurrenz.

Genau hier kommen die Kernkomponenten moderner Cloud-Architekturen ins Spiel: Virtualisierung, Containerisierung, Skalierbarkeit, Load Balancing und Failover. Sie sorgen dafür, dass Anwendungen stabil, flexibel und zuverlässig bleiben – egal, wie stark die Belastung schwankt.

In dieser Lerneinheit schauen wir uns an, wie diese Bausteine zusammenspielen und warum sie unverzichtbar für jede Cloud-Infrastruktur sind.

Lernziele

Nach dieser Lerneinheit kannst du:

  1. Virtualisierung und Containerisierung erklären – du verstehst die Unterschiede, Vor- und Nachteile sowie typische Einsatzszenarien.
  2. Skalierbarkeit und Elastizität unterscheiden – du erkennst, wie Systeme wachsen und sich automatisch anpassen können.
  3. Load Balancing-Strategien vergleichen – du kannst verschiedene Algorithmen und deren Einsatzgebiete bewerten.
  4. Failover-Mechanismen beschreiben – du weißt, wie Aktiv-Passiv- und Aktiv-Aktiv-Konzepte funktionieren und welche Herausforderungen auftreten.

Einführung

Bevor wir tiefer in Container, Lastverteilung oder Failover einsteigen, beginnen wir mit der Virtualisierung. Sie ist die Grundlage vieler Cloud-Umgebungen und erklärt, wie physische Server in mehrere virtuelle Maschinen aufgeteilt werden können.

Virtualisierung

Virtualisierung teilt physische Server in mehrere virtuelle Maschinen (VMs) auf. Jede VM verhält sich wie ein eigener Server. Die Verwaltung übernimmt der Hypervisor (Virtual Machine Monitor), der die Hardware-Ressourcen zuteilt und Zugriffe koordiniert.

Virtualisierung (Bildrechte: Ausbildung in der IT)

Warum Virtualisierung?

Virtualisierung erhöht die Effizienz und Flexibilität. Mehrere Betriebssysteme können auf einem Server laufen, was die Auslastung verbessert. VMs sind durch den Hypervisor stark isoliert, allerdings nicht absolut sicher: Angriffe über Hardware- oder Hypervisor-Schwachstellen sind möglich. Zudem lassen sich VMs schnell erstellen, klonen und migrieren, was den Betrieb vereinfacht.

Containerisierung

Containerisierung bietet eine leichtgewichtigere Alternative. Container starten kein eigenes Betriebssystem, sondern teilen sich den Kernel des Hosts. Die Isolation erfolgt über Namespaces (Trennung von Prozessen, Netzwerk, Dateisystemen) und cgroups (Kontrolle von CPU-, Speicher- und IO-Ressourcen).

Unterschiede zur Virtualisierung

Container sind meist ressourcenschonender, da kein eigener Kernel benötigt wird. Container-Images bündeln Abhängigkeiten und erleichtern die Portabilität. Sie starten schneller als VMs und eignen sich für Continuous Integration/Delivery (CI/CD). Der tatsächliche Ressourcenverbrauch hängt aber vom Workload ab.

Docker und Kubernetes

Docker ist eine Plattform zum Erstellen und Ausführen von Containern. Mit dem Dockerfile beschreibst du die Bauschritte für ein Image. Kubernetes ist ein Orchestrierungssystem, das Container verwaltet, automatisch skaliert und fehlerhafte Instanzen ersetzt.

Anwendungsbeispiele

Container und VMs werden in vielen Szenarien genutzt:

  • Microservices: Jede Komponente läuft in einem eigenen Container.
  • Entwicklungsumgebungen: Einheitliche Umgebungen für Entwickler.
  • CI/CD-Pipelines: Automatisierte Builds, Tests und Deployments.
  • Legacy-Anwendungen: Ältere Software kann verpackt werden, erfordert aber oft Anpassungen.

Wichtige Aspekte

Container bieten weniger Isolation als VMs. Daher sind Sicherheitsmaßnahmen wie Image-Scanning und Policies wichtig. Persistente Daten erfordern zusätzliche Architekturen (z. B. StatefulSets). Nicht alle Anwendungen lassen sich problemlos containerisieren.

Skalierbarkeit und Elastizität

Skalierbarkeit

Skalierbarkeit beschreibt, wie Systeme auf steigende Last reagieren. Sie muss bei der Architektur berücksichtigt werden und erlaubt, mehr Anfragen oder Daten zu verarbeiten, ohne Leistungseinbrüche.

Elastizität

Elastizität bedeutet, dass Systeme ihre Ressourcen automatisch und schnell anpassen. Während Skalierbarkeit beschreibt, dass Systeme wachsen können, zeigt Elastizität, wie schnell und flexibel dies geschieht.

Horizontal vs. Vertikal Skalieren

  • Horizontal (Scale Out/In): Zusätzliche Instanzen starten oder entfernen.
  • Vertikal (Scale Up/Down): Mehr Ressourcen auf einer Instanz bereitstellen.

Cloud-native Architekturen bevorzugen horizontales Skalieren, da es ausfallsicherer und flexibler ist.

Beispiele

Bei Events wie einem Black Friday Sale skaliert ein Shop automatisch hoch, um Lastspitzen abzufangen. Nachts können Instanzen wieder heruntergefahren werden, um Kosten zu sparen.

Skalierungsrichtlinien und Herausforderungen

Skalierungsrichtlinien und Herausforderungen

Autoscaling basiert auf Metriken wie CPU- oder RAM-Auslastung. Tools sind z. B. AWS Auto Scaling oder Google Cloud Autoscaler. Herausforderungen sind steigende Kosten, Abhängigkeiten von Datenbanken oder externen Systemen sowie die Notwendigkeit von präzisem Monitoring.

Technischer Kasten: Isolationsmechanismen

Container nutzen mehrere Linux-Features zur Isolation:

  • Namespaces: Prozesse, Netzwerk und Ressourcen trennen.
  • cgroups: Ressourcen begrenzen.
  • User Namespaces: Nutzer-IDs remappen.
  • Security-Mechanismen: SELinux, seccomp und AppArmor als zusätzliche Schutzschicht.
⏳ Lädt Dataview-Inhalt...

Load Balancing und Failover

Load Balancing und Failover erhöhen Zuverlässigkeit, Verfügbarkeit und Performance von Cloud-Anwendungen. Beide Konzepte sichern stabile Dienste auch bei Lastspitzen oder Ausfällen.

Load Balancing

Load Balancing verteilt Anfragen auf mehrere Server. So wird die Last gleichmäßig verteilt, Ressourcen werden besser genutzt und Ausfallsicherheit steigt.

Arten von Load Balancern

  • Hardware-Load Balancer: Dedizierte Geräte mit hohem Durchsatz. Sie sind leistungsfähig, aber weniger flexibel.
  • Software-Load Balancer: Laufen auf VMs oder Containern, flexibel einsetzbar und einfach zu automatisieren. Beispiele: HAProxy, Nginx.

Strategien des Load Balancing

  • Round Robin: Anfragen reihum verteilt, geeignet für homogene Server.
  • Weighted Round Robin: Berücksichtigt die Leistungsstärke einzelner Server.
  • Least Connections: Anfragen gehen zum Server mit den wenigsten aktiven Verbindungen.
  • Weighted Least Connections: Kombination aus Kapazität und aktiven Verbindungen.
  • IP-Hash: Client-IP entscheidet, welcher Server die Anfrage erhält.

Hinweis: Load Balancer berücksichtigen Health-Checks und Regeln. Die Verteilung ist nicht immer gleichmäßig, sondern folgt dem gewählten Algorithmus.

Vergleich der Algorithmen

AlgorithmusVorteilNachteilTypischer Einsatz
Round RobinEinfach, fair bei gleichen ServernKeine LastunterscheidungHomogene Serverpools
Least ConnectionsEffizient bei langen SessionsErfordert TrackingWebapps mit vielen aktiven Sessions
Weighted Round RobinNutzt stärkere Server besser ausGewichtung muss gepflegt werdenUnterschiedliche Serverstärken
IP-HashSession-Persistenz ohne CookiesProbleme bei NAT/ProxysSession-basierte Anwendungen

Failover

Failover wechselt automatisch auf Ersatzsysteme, wenn ein Server ausfällt. Es stellt die Verfügbarkeit sicher und minimiert Unterbrechungen.

Methoden

  • Aktiv-Passiv: Ersatzsystem übernimmt nur im Fehlerfall. Einfach, aber Ressourcen bleiben ungenutzt.
  • Aktiv-Aktiv: Systeme laufen parallel und teilen sich die Last. Sofortige Übernahme, aber komplexere Verwaltung.

Herausforderungen

  • Datenkonsistenz: Synchronisation notwendig, asynchrone Replikation riskiert Datenverlust.
  • Split-Brain: Gefahr, dass mehrere Systeme gleichzeitig aktiv sind. Erfordert Quorum-Mechanismen.
  • Ausfallerkennung: Tools wie Heartbeats, Health-Checks oder BFD erkennen Störungen und lösen Failover aus.

Bedeutung in der Cloud

Load Balancing und Failover sind zentrale Bausteine für Cloud-Skalierung und Verfügbarkeit. Ein Onlineshop kann so bei Lastspitzen stabil laufen, und bei Ausfällen übernimmt sofort ein Ersatzsystem.

Speicherlösungen

Cloud-Speicherarten unterscheiden sich nach Einsatz und Leistungsanforderungen:

  • Object Storage: Ideal für unstrukturierte Daten wie Bilder oder Backups.
  • Block Storage: Niedrige Latenz für Datenbanken und Transaktionen. Beispiele: AWS EBS, Google Persistent Disk.
  • File Storage: Klassisches Dateisystem, oft für Legacy-Anwendungen. Beispiele: Amazon EFS, Google Filestore.

Netzwerkstrukturen

Netzwerke in der Cloud bestehen aus mehreren Ebenen und Diensten. Typische Komponenten sind:

  • VPC (Virtual Private Cloud): Virtuelles Netzwerk mit Subnetzen und Sicherheitsmechanismen.
  • CDN: Edge-Server für schnelle Content-Auslieferung.
  • Peering: Direkte Verbindung zwischen Netzwerken.
  • Direct Connect / Interconnect: Dedizierte Verbindungen für stabile Performance.
  • Elastic Load Balancer (AWS): Automatisierte Lastverteilung in Cloud-Umgebungen.

Netzwerkdienste

Zusätzlich stehen spezielle Dienste für Konnektivität und Überwachung zur Verfügung:

  • DNS-Dienste: Routing von Anfragen zu Cloud-Ressourcen.
  • VPN: Sichere Verbindung zwischen On-Premise und Cloud.
  • Monitoring & Observability: Grundlage für zuverlässiges Load Balancing und Failover durch Metriken und Alarme.
⏳ Lädt Dataview-Inhalt...

Zusammenfassung

Zusammenfassung:

Virtualisierung und Containerisierung

Virtualisierung und Containerisierung sind grundlegende Techniken der Cloud-Architektur. Beide ermöglichen effiziente Ressourcennutzung und flexible Bereitstellung von Anwendungen.

  • Virtualisierung: Teilt physische Server in isolierte virtuelle Maschinen (VMs). Ein Hypervisor weist Ressourcen zu und ermöglicht Flexibilität, schnelle Bereitstellung und Migration.
  • Containerisierung: Container teilen den Kernel des Hostsystems und nutzen Namespaces und cgroups zur Isolation. Sie sind leichtgewichtig, schnell startbar und erleichtern CI/CD-Prozesse.
  • Docker und Kubernetes: Docker erstellt und verwaltet Container-Images, Kubernetes orchestriert Container, sorgt für Skalierung, Lastverteilung und Selbstheilung.
  • Anwendungsfelder: Microservices, Entwicklungsumgebungen, CI/CD-Pipelines und Migration von Legacy-Anwendungen.
  • Herausforderungen: Sicherheit, Persistenz von Daten und Kompatibilität älterer Anwendungen.

Skalierbarkeit und Elastizität

Skalierbarkeit und Elastizität sichern die Leistungsfähigkeit und Kosteneffizienz von Cloud-Systemen.

  • Skalierbarkeit: Fähigkeit, mit steigender Last umzugehen, ohne Leistungseinbußen.
  • Elastizität: Automatische und schnelle Anpassung der Ressourcen an Nachfrageschwankungen.
  • Skalierungsarten: Horizontal (mehr Instanzen) und vertikal (mehr Ressourcen pro Instanz). Horizontal wird bevorzugt.
  • Beispiele: Shops skalieren zu Spitzenzeiten hoch, nachts werden Ressourcen wieder reduziert.
  • Herausforderungen: Kostenkontrolle, Abhängigkeiten von Datenbanken, Monitoring und Observability.

Load Balancing und Failover

Load Balancing und Failover sind Schlüsselmechanismen, um Ausfallsicherheit und Verfügbarkeit zu garantieren.

  • Load Balancing: Verteilt Anfragen auf mehrere Server, optimiert Performance und verhindert Überlastung.
  • Arten von Load Balancern: Hardware-basiert (leistungsstark, weniger flexibel) und Software-basiert (flexibel, automatisierbar).
  • Strategien: Round Robin, Weighted Round Robin, Least Connections, Weighted Least Connections, IP-Hash.
  • Failover: Automatischer Wechsel auf Ersatzsysteme im Fehlerfall. Varianten: Aktiv-Passiv (einfach, aber ressourcenintensiv) und Aktiv-Aktiv (parallel, komplexer, aber hochverfügbar).
  • Herausforderungen: Datenkonsistenz, Split-Brain-Vermeidung, zuverlässige Ausfallerkennung.

Speicher- und Netzwerkstrukturen in der Cloud

Speicher- und Netzwerkdienste bilden die Basis für zuverlässige Cloud-Architekturen.

  • Speicherarten: Object Storage (skalierbar, günstig), Block Storage (schnell, für Datenbanken), File Storage (klassisches Dateisystem für Legacy-Anwendungen).
  • Netzwerkstrukturen: Virtual Private Cloud (VPC) mit Subnetzen und Sicherheitsmechanismen, CDN für globale Content-Auslieferung, Peering und Direct Connect für stabile Verbindungen.
  • Netzwerkdienste: DNS für Routing, VPN für sichere Verbindungen, Monitoring und Observability für Verfügbarkeit und Fehlertoleranz.