Klausurzusammenfassung: Cloud Computing

Klausurorientierte Zusammenfassung aus den Skripten zu Grundlagen, Virtualisierung, Docker und der Probeklausur.

Fokus: saubere Begriffsabgrenzung, Architekturentscheidungen, Verantwortungsverschiebung, Skalierung, Kostenlogik, Sicherheitsrisiken, Docker-Kommandos, Dockerfile-Aufbau und typische Klausurargumentation.

1. Überblick und Prüfungslogik

Cloud Computing ist in der Klausur kein reines Definitionsfach. Typische Aufgaben verlangen, dass ein technischer oder betrieblicher Sachverhalt eingeordnet wird: Welche Verantwortung liegt beim Kunden, welche beim Provider, welche Art der Virtualisierung steckt darunter, welches Service- oder Bereitstellungsmodell passt und welche Risiken entstehen daraus?

Prüfungskern: Anwendungsfall → benötigte Kontrolle → Abstraktionsgrad → Betriebsverantwortung → Risiko und Kosten → begründete Cloud-Entscheidung Gute Antworten nennen nicht nur ein Modell wie IaaS oder SaaS, sondern begründen die Wahl mit Kontrolle, Skalierbarkeit, Lock-in, Wartungsaufwand, Datenschutz, Kostenstruktur und vorhandenem Know-how.

Gliederung

  1. Cloud-Grundlagen und On-Premise-Vergleich
  2. Vorteile: Skalierung, On-Demand, globale Infrastruktur und Kosten
  3. Herausforderungen: Kosten, Sicherheit, Governance und Know-how
  4. Virtualisierung und Container
  5. Service- und Bereitstellungsmodelle
  6. Edge Computing
  7. Docker: Container, Images, Registry und Dockerfile
  8. Docker-Best-Practices und Probeklausur
  9. Lerncheckliste und mögliche Klausurfragen
  10. Abdeckung der Skripte
Analysierter Umfang: Ausgewertet wurden 127 Seiten aus 1-Grundlagen.pdf (42 Seiten), 2-Virtualisierung.pdf (40 Seiten), 3-Docker.pdf (43 Seiten) und Probeklausur_2.pdf (2 Seiten). Die eingebetteten Grafiken sind gezielte Ausschnitte aus den Skriptseiten.

2. Cloud-Grundlagen und On-Premise-Vergleich

2.1 On-Premise

Beim On-Premise-Betrieb erwirbt ein Unternehmen Hardware und Software und betreibt diese auf eigener Infrastruktur. Damit entstehen hohe Anpassbarkeit und volle Kontrolle, aber auch volle Verantwortung für Anschaffung, Wartung, Updates, Verfügbarkeit, Sicherheit und Livegang.

On-Premise: Nutzungsmodell, bei dem Software auf eigener IT-Infrastruktur betrieben wird. Der Kunde trägt Kosten, Betriebsrisiko, Wartung und Ausfallrisiko, kann Hard- und Software dafür aber tief an eigene Prozesse anpassen.

Typische On-Premise-Probleme

Problem Ursache Wirkung in der Praxis Klausurhinweis
Hohe Startinvestition Hardware, Personal und Beschaffung müssen vorab finanziert werden. Lange Bereitstellungszeiten, frühe Überdimensionierung, kaum Experimente. CapEx und Kapitalbindung nennen.
Hohe Auslastung als Ziel Teure Hardware soll ausgelastet werden. Mehrere Anwendungen teilen Server und Datenbankressourcen, Fehler isolieren schlechter. Auslastung ist nicht automatisch Effizienz, wenn Fehlerfolgen steigen.
Wartungsstau Updates und Patches gefährden den Wiederanlauf kritischer Anwendungen. Unzureichend gepatchte Systeme, Sicherheitsrisiken, Innovationsbremse. Status quo wird verteidigt.
Schneeflocken-Konfiguration Manuelle Änderungen werden nicht sauber dokumentiert. Server sind nicht reproduzierbar, Fehleranalyse und Replikation werden schwierig. Direkter Übergang zu Infrastructure as Code.
Inkompatible Verwaltung Historisch gewachsene Hardware- und Managementsysteme. Hoher manueller Aufwand, kaum übergreifende Automatisierung, schwierige Fehlersuche. Cloud adressiert auch Organisation und Betrieb, nicht nur Technik.

2.2 Cloud Computing

Cloud Computing hebt den direkten Bezug zu konkreter Hardware auf. Statt physische Ressourcen selbst zu kaufen und zu betreiben, nutzt der Kunde virtuelle IT-Ressourcen über eine Management- und Automatisierungsschicht. Diese Ressourcen können Rechenleistung, Speicher, Netzwerk, Laufzeitumgebungen oder ganze Anwendungen sein.

Cloud Computing: Nutzung virtueller IT-Infrastruktur, die nicht an einen lokalen Rechner gebunden ist, flexibel konfiguriert werden kann und vom Provider über Management- und Automatisierungssoftware bereitgestellt wird. Der Kunde erwirbt Nutzungsrechte, kein Eigentum an der Infrastruktur.
Dimension On-Premise Cloud Computing
Eigentum Hardware und oft Software gehören dem Unternehmen. Es werden Nutzungsrechte und Dienstleistungen bezogen.
Verantwortung Kunde verantwortet Betrieb, Wartung und Ausfälle. Provider übernimmt je nach Modell Teile bis fast alle Betriebsaufgaben.
Anpassbarkeit Sehr hoch, inklusive Spezialhardware und Sonderkonfigurationen. Mit steigendem Abstraktionsgrad sinkt die Anpassbarkeit.
Bereitstellung Oft monatelange Beschaffung und Genehmigung. On-Demand über UI, API oder Automatisierung.
Kostenstruktur Hohe fixe Anfangsinvestition und laufende Wartung. Nutzungsabhängige Kosten, aber Kostenmanagement wird wichtig.
Prüfungsfalle: Cloud bedeutet nicht automatisch billiger, sicherer oder weniger komplex. Cloud verschiebt Verantwortung, Kostenlogik und Risiken. Eine gute Antwort nennt diese Verschiebung explizit.

3. Vorteile: Skalierung, On-Demand, globale Infrastruktur und Kosten

3.1 Skalierbarkeit

Skalierbarkeit beschreibt die Fähigkeit eines Anwendungssystems, seine Leistung flexibel zu erhöhen oder zu reduzieren. In der Cloud werden dafür virtuelle Ressourcen passend zur aktuellen Last konfiguriert. Dadurch werden Unterauslastung und Lastspitzen besser beherrschbar als beim starr dimensionierten On-Premise-Betrieb.

Folie zur Skalierbarkeit mit klassischem Hosting und flexiblen Cloud-Ressourcen
Skalierbarkeit: Starre Ressourcen erzeugen bei niedriger Last Verlustleistung und bei Spitzen Unterdeckung. Cloud-Ressourcen können dem Bedarf flexibler folgen.
Skalierungsfaktor: S = Lnach Erweiterung / Lvor Erweiterung
S
Skalierungsfaktor. Er zeigt, wie stark die Leistungsfähigkeit durch zusätzliche Ressourcen steigt.
L
Leistungsmaß der Anwendung, zum Beispiel Durchsatz, Antwortzeitverbesserung oder Speicherfähigkeit.
Lineare Skalierung bedeutet, dass zusätzliche Ressourcen ungefähr proportional mehr Leistung bringen. Exponentielle oder stark nichtlineare Effekte können auftreten, wenn ein Engpass entfernt wird, etwa durch schnelleren Speicher.
Folie zur vertikalen Skalierung
Scale-up: Leistungssteigerung durch stärkere Hardware. Vorteil: Anwendung muss oft nicht angepasst werden. Nachteil: Wartungsfenster und technische Obergrenze.
Folie zur horizontalen Skalierung
Scale-out: Leistungssteigerung durch weitere Rechner oder Instanzen. Vorteil: im Betrieb erweiterbar. Nachteil: Anwendung muss horizontale Skalierung unterstützen.
Skalierungsart Prinzip Vorteile Grenzen und Fallen
Vertikale Skalierung CPU, RAM, Speicher oder Netzwerk einer Maschine werden verstärkt. Kaum Architekturänderungen; klassische Anwendungen profitieren schnell. System muss oft gestoppt werden; Hardware ist begrenzt; Single Point of Failure bleibt möglich.
Horizontale Skalierung Weitere Maschinen, VMs oder Container übernehmen Last. Großes Skalierungspotential; im Betrieb möglich; passt gut zu Cloud und Containern. Anwendung muss zustandsarm, verteilbar oder über gemeinsame Dienste koordiniert sein.

3.2 Fertige Cloud-Funktionen und Innovation

Cloud Provider stellen fertige Funktionen bereit, die in Eigenentwicklung teuer wären. Beispiele sind Bilderkennung, OCR, Sprachverarbeitung, Textanalyse, KI-Dienste, IAM, Monitoring oder Big-Data-Verarbeitung. Dadurch können Projekte komplexe Funktionen pilotieren, ohne sofort eigene Spezialteams und Infrastruktur aufzubauen.

Prüfungsfalle: Fertige Cloud-Funktionen reduzieren Entwicklungsaufwand, erhöhen aber oft den Lock-in. Je stärker eine Anwendung Provider-spezifische Dienste nutzt, desto schwieriger wird ein späterer Wechsel.

3.3 Globale Verteilung und Latenz

Große Cloud Provider betreiben weltweit verteilte Rechen- und Speicherinfrastruktur und sind an zentrale Internetknoten angebunden. Das ermöglicht niedrige Latenzen für Anwendungsfälle wie Cloud-Gaming, virtuelle Zusammenarbeit, Telemedizin, Echtzeit-Tracking oder Echtzeit-Empfehlungen.

3.4 On-Demand-Bereitstellung

Cloud-Ressourcen können direkt über ein UI, eine API oder Automatisierung bereitgestellt werden. Dadurch entfällt der mehrstufige Beschaffungsprozess, und Ressourcen müssen nicht schon zu Projektbeginn grob überdimensioniert werden. Änderungen an Konfiguration und Kapazität bleiben später möglich.

3.5 Skaleneffekte

Provider können hohe Fixkosten für Rechenleistung, Netzwerksicherheit, DDoS-Schutz, Backups, Red Teams und Ausfallsicherheit auf viele Kunden und Dienste verteilen. Dadurch entstehen Skaleneffekte: Je mehr Dienste genutzt werden, desto stärker sinken die Stückkosten für einzelne Leistungen.

3.6 Wirtschaftlichkeit und Kostenlogik

Cloud Computing verändert die Kostenstruktur. On-Premise verursacht hohe Anfangsinvestitionen und relativ nutzungsunabhängige Kosten. Cloud Computing wandelt Fixkosten in variable, nutzungsabhängige Kosten um. Diese Fixkostenvariabilisierung erhöht die Planungsflexibilität, garantiert aber keine Gesamtersparnis.

Beispielrechnung aus dem Skript: KostenOn-Premise = Abschreibung + Strom + Kühlung/Verlustleistung + Wartung 61,50 € + 76,79 € + 84,00 € = 222,29 € pro Monat
Abschreibung
Monatlicher Anteil der Hardwareanschaffung, im Beispiel über drei Jahre.
Strom
Verbrauch unter typischer Auslastung inklusive Energieeffizienzfaktor.
Wartung
Personalkosten für Updates, Failover und Wartungsarbeiten.
Die Cloud-VM im Beispiel liegt mit 313,82 € pro Monat höher. Der Vergleich ist aber nur aussagekräftig, wenn verdeckte On-Premise-Kosten und verdeckte Cloud-Kosten mitbewertet werden.
Kostenaspekt On-Premise Cloud Klausurargument
Anfangskosten Hoch, aktivierbar, langfristige Bindung. Niedrig, nutzungsbezogen. Cloud senkt Einstiegshürden und erleichtert Experimente.
Laufende Kosten Wartung, Strom, Ersatzteile, Personal, Training. Provider-Rechnung, Datenverkehr, Speicher, Zusatzdienste, Schulung. Cloud-Kosten müssen aktiv gesteuert werden.
Skalierung Vorhalten von Kapazität. Zuschalten und Abschalten nach Bedarf. Vorteil entsteht vor allem bei schwankender Last.
20-Server-Szenario Zusätzliche Infrastruktur wie Netzwerk, Kühlung, Backup und Betriebspersonal stärker relevant. Skaleneffekte nutzbar, aber Governance und Kostenkontrolle werden wichtiger. Nicht nur Serverpreis multiplizieren.

4. Herausforderungen: Kosten, Sicherheit, Governance und Know-how

Folie mit Herausforderungen von Cloud Computing
Vier zentrale Cloud-Herausforderungen: Sicherheit, Kostenmanagement, fehlende zentrale Governance und fehlendes Know-how.

4.1 Kostenmanagement

Cloud-Kosten können deutlich über Plan liegen. Ursachen sind zusätzliche Ressourcennutzung, komfortable Zusatzdienste, nicht cloud-optimierte Legacy-Anwendungen, fehlende Abschaltung ungenutzter Ressourcen und Datenkosten. Besonders gefährlich ist, dass Cloud-Ressourcen schnell erstellt, aber organisatorisch nicht immer sauber verantwortet werden.

Typischer Fehler: Nur die monatliche VM-Gebühr vergleichen. Für eine belastbare Entscheidung gehören Wartung, Datenverkehr, Speicher, Backup, Schulung, Migrationsaufwand, Ausfallsicherheit, Governance und Exit-Kosten in die Rechnung.

4.2 Sicherheit

Eine häufige Ursache für Datenabfluss ist mangelhafte Rechtekonfiguration auf Cloud-Datenspeichern. Zusätzlich müssen Daten in der Cloud verschlüsselt, Zugriffe geprüft und Netzwerkgrenzen sauber definiert werden. Der Provider bietet oft starke Sicherheitswerkzeuge, aber falsche Konfiguration bleibt ein Kundenrisiko.

Risiko Beispiel Gegenmaßnahme
Fehlkonfigurierte Zugriffe Cloud-Speicher ist öffentlich oder für falsche Gruppen sichtbar. Least Privilege, IAM-Review, automatisierte Policy-Prüfung.
Unverschlüsselte Daten Daten werden im Transit oder im Speicher unzureichend geschützt. Transportverschlüsselung, Schlüsselmanagement, Verschlüsselung ruhender Daten.
Geteilte Verantwortung unklar Kunde nimmt an, der Provider sichere alles automatisch. Shared-Responsibility-Modell je Service klären.

4.3 Fehlende zentrale IT-Governance

Cloud-Ressourcen können dezentral von Teams bereitgestellt werden. Das beschleunigt Projekte, erschwert aber zentrale Vorgaben zu Datenschutz, Datenqualität, Softwarequalität, Kostenkontrolle und Synergien zwischen Projekten. In der Klausur ist wichtig: Der Wegfall zentraler Genehmigungsprozesse ist gleichzeitig Vorteil und Risiko.

4.4 Fehlendes Know-how

Cloud Computing verlangt neues Wissen in Infrastrukturmanagement und automatisierter Softwareauslieferung. Traditionelle, veränderbare Infrastruktur erzeugt schnell Schneeflocken-Konfigurationen. Cloud-nahe Systeme arbeiten besser mit reproduzierbarer, unveränderbarer Infrastruktur und Automatisierung.

Folie zu Continuous Integration, Continuous Delivery und Continuous Deployment
Automatisierte Auslieferung: CI testet häufig, CD stellt automatisiert bereit, Continuous Deployment führt erfolgreiche Änderungen automatisch bis in Produktion.
Konzept Bedeutung Prüfungsabgrenzung
Continuous Integration Automatisierte Tests nach Codeänderungen. Frühe Erkennung von Inkompatibilitäten, noch kein automatischer Produktivbetrieb.
Continuous Delivery Automatisiert eine auslieferbare Version nach erfolgreichen Tests. Release ist möglich, aber meist noch bewusst freizugeben.
Continuous Deployment Jede erfolgreiche Änderung wird automatisch produktiv gesetzt. Höchste Automatisierung, benötigt starke Tests, Monitoring und Rollback-Strategien.

5. Virtualisierung und Container

5.1 Simulation, Emulation und Virtualisierung

Folie zur Abgrenzung von Simulation, Emulation und Virtualisierung
Begriffsabgrenzung: Simulation bildet Wirkzusammenhänge nach, Emulation bildet Schnittstellen nach, Virtualisierung entkoppelt Software von Hardware bei gleicher Komponentenarchitektur.
Begriff Kernidee Praxiseinsatz Beispiele
Simulation Vollständige Nachbildung eines Systems inklusive Wirkzusammenhängen. Erkenntnisgewinn, Training, Forschung. Flugsimulator, Wetterberechnung, iPhone Simulator.
Emulation Nachbildung gleicher Schnittstellen ohne zwingend gleiche interne Logik. Kann nachgebildetes System praktisch ersetzen. Rosetta, WSL1, JVM, virtuelle Netzwerkkarte.
Virtualisierung Entkopplung von Ausführungsumgebung und physischer Hardware. Betrieb isolierter Umgebungen mit geringeren Performanceverlusten. ESXi, VirtualBox, Xen, KVM, Containertechnologien.
Prüfungsfalle: Virtualisierung setzt im Skript die gleiche Komponentenarchitektur voraus. Ein x86-System auf ARM ist keine klassische Virtualisierung, sondern benötigt Emulation oder Übersetzung.

5.2 Gründe für Virtualisierung

Grund Nutzen Beispiel
Isolation Laufzeitfehler und Abhängigkeiten bleiben auf eine Umgebung begrenzt. Unterschiedliche Bibliotheken oder Programmiersprachen pro Anwendung.
Multiplizität Mehrere Systeme laufen parallel auf gleicher Hardware. Alt- und Neusystem zeitgleich betreiben.
Portabilität Systemabbilder können auf andere Hardware verschoben und reproduziert werden. Dev- und Prod-Umgebungen mit gleicher Konfiguration.

5.3 Schichten eines Computersystems

Die Skripte unterscheiden Hardware, Kernel, Betriebssystem und Anwendung. Der Kernel spricht Hardware über Treiber an, koordiniert Ressourcen und kontrolliert Zugriffsrechte. Virtualisierung greift an unterschiedlichen Stellen dieser Schichten ein.

5.4 Voll-Virtualisierung

Bei der Voll-Virtualisierung bildet ein Hypervisor physische Hardware als virtuelle Maschinen ab. Jede VM besitzt ein eigenes Gast-Betriebssystem und ein eigenes Image. Das Gast-OS muss nicht angepasst werden und geht davon aus, direkten Hardwarezugriff zu haben. Der Hypervisor fängt Hardwarebefehle ab und ordnet sie den zugewiesenen Ressourcen zu.

Folie zur Voll-Virtualisierung mit Hypervisor und virtuellen Maschinen
Voll-Virtualisierung: Der Hypervisor verwaltet isolierte virtuelle Maschinen mit jeweils eigenem Gast-OS.
Hypervisor-Typ Position Vorteile Nachteile
Typ I / Bare Metal Direkt über der Hardware. Hohe Performance, reduzierte Angriffsfläche, fokussierter Betrieb. Dedizierte Virtualisierungsumgebung notwendig.
Typ II / Hosted Auf einem Host-Betriebssystem. Zusätzlich zu bestehender Software nutzbar, gut für Entwicklung und Tests. Mehr Overhead, mehr Sicherheitsrisiko durch Host-OS und weitere Anwendungen.

5.5 Para-Virtualisierung

Bei der Para-Virtualisierung weiß das Gast-OS, dass es virtualisiert läuft. Hardwareaufrufe werden nicht so getan, als gingen sie direkt an physische Hardware, sondern als API-Aufrufe an den Hypervisor geleitet. Dadurch kann die Performance steigen, allerdings muss das Gast-OS angepasst sein.

5.6 Prozessvirtualisierung und Container

Prozessvirtualisierung startet keine vollständige VM und nutzt keinen klassischen Hypervisor. Stattdessen übernimmt der Linux-Kernel mit cgroups und namespaces die Prozessisolation.

Folie zur Prozessvirtualisierung mit cgroups und namespaces
Prozessvirtualisierung: Container teilen den Kernel des Host-OS. cgroups begrenzen Ressourcennutzung, namespaces begrenzen Sichtbarkeit.
Kernel-Funktion Aufgabe Beispiel
cgroups Steuern, wie viele Ressourcen ein Prozess verwenden darf. CPU- oder RAM-Limits für Container.
namespaces Steuern, welche Ressourcen und Prozesse ein Prozess sehen darf. Container sieht nur eigene Kindprozesse und eigene Netzwerkumgebung.

5.7 Voll-Virtualisierung vs. Prozessvirtualisierung

Folie mit Vergleich zwischen Voll-Virtualisierung und Prozessvirtualisierung
Gegenüberstellung: VMs isolieren stärker und sind flexibler beim Gast-OS, Container sind leichter, schneller und besser horizontal skalierbar.
Kriterium Voll-Virtualisierung Prozessvirtualisierung
Ressourcen CPU, RAM und Speicher werden für VMs reserviert. Ressourcen werden bei tatsächlicher Nutzung belegt.
Isolation Stark, da jede VM eigenes Gast-OS nutzt. Schwächer, da Container den Host-Kernel teilen.
Gast-OS Unterschiedliche Betriebssysteme möglich, solange Architektur passt. Kernel des Host-OS wird genutzt; OS-Auswahl eingeschränkt.
Startzeit Träger, da Gast-OS startet. Schnell, da unmittelbar der Prozess startet.
Performance Mit Hardwareunterstützung oft nur ca. 5 % bis 10 % Verlust. Nahezu nativ, da Kernelaufrufe nicht übersetzt werden.
Imagegröße Typisch mehrere GB ohne Anwendung. Typisch deutlich kleiner, oft 50 bis 500 MB ohne Anwendung.
Skalierung Weniger geeignet für schnelle horizontale Skalierung. Sehr geeignet für schnelle horizontale Skalierung.
Klausurantwort zu Einsatzszenarien: VMs eignen sich, wenn starke Isolation, eigenes Betriebssystem oder Legacy-Software wichtig sind. Container eignen sich für schnelle Bereitstellung, CI/CD, Microservices und horizontale Skalierung. Häufig werden beide kombiniert: VMs liefern isolierte Infrastruktur, Container laufen darauf als leichtgewichtige Anwendungseinheiten.

6. Service- und Bereitstellungsmodelle

6.1 Abstraktion und Kontrolle

Cloud-Servicemodelle unterscheiden sich darin, welche Anteile einer Anwendung vom Provider verantwortet werden. Mit steigendem Abstraktionsgrad sinkt die Kontrolle des Kunden über Hardware und Betrieb, gleichzeitig gibt der Kunde Aufgaben wie Patching, Failover, Updates und Skalierung ab.

Folie mit Abstraktionsebenen und Kontrolle bei Cloud-Servicemodellen
Grundlogik der Servicemodelle: Je höher die Abstraktion, desto weniger direkte Kontrolle, aber auch weniger eigene Betriebsverantwortung.

6.2 Servicemodelle

Folie mit Vergleich der Servicemodelle IaaS, CaaS, PaaS, FaaS und SaaS
Vergleich der Servicemodelle: IaaS bietet maximale Kontrolle unter den Cloud-Modellen, SaaS maximale Abgabe von Betriebsverantwortung.
Modell Nutzungsobjekt Kunde kontrolliert Provider übernimmt Typische Einsatzgebiete Falle
IaaS Virtuelle Maschine und grundlegende Infrastruktur. OS, installierte Software, Konfiguration, Anwendungen. Physische Hardware, Hypervisor, Verfügbarkeit der VM. Migration bestehender Systeme, hohe Anpassbarkeit, individuelle Laufzeitumgebung. Man behält viel Betriebsaufwand.
CaaS Container-Laufzeit. Container-Image, Anwendung, Ressourcenbedarf. Host-OS, Containerplattform, teilweise Skalierung. Microservices, containerisierte Webanwendungen, horizontale Skalierung. Weniger Einfluss auf OS und Infrastrukturdetails.
PaaS Laufzeitumgebung für Anwendungen. Anwendungscode und begrenzte Konfiguration. Hardware, OS, Laufzeitumgebung, viele Betriebsaufgaben. Webanwendungen mit Standard-Laufzeit, schnelle Produktentwicklung. Lock-in durch Provider-spezifische Laufzeitumgebung.
FaaS Funktionen oder Event-getriebene Codeeinheiten. Funktionslogik im Rahmen unterstützter Sprachen und Schnittstellen. Hosting, Skalierung, Netzwerk, Ressourcen, Laufzeitverhalten. Event-Verarbeitung, kleine Backend-Funktionen, unregelmäßige Last. Starker Lock-in und kaum Einfluss auf Laufzeitumgebung.
SaaS Fertige Anwendung. Konfiguration und Nutzung innerhalb vorgegebener Funktionalität. Entwicklung, Betrieb, Updates, Verfügbarkeit, Infrastruktur. CRM, Kollaboration, E-Mail, Standardgeschäftsprozesse. Stärkster Lock-in, geringe Portabilität und begrenzte Anpassung.
Prüfungsfalle: Es gibt keine allgemein beste Dienstleistungsform. Die richtige Antwort hängt von Kontrollbedarf, vorhandener Expertise, Anpassbarkeit, Compliance, Skalierung und gewünschter Verantwortungsabgabe ab.

6.3 Bereitstellungsmodelle

Bereitstellungsmodelle beantworten, wo und wie Cloud-Dienstleistungen erbracht werden. Die zentrale Abwägung lautet: Wie viel Kontrolle und Datensouveränität wird benötigt, und wie stark sollen Skalierung, globale Infrastruktur und Providerbetrieb genutzt werden?

Folie mit Cloud-Bereitstellungsmodellen
Bereitstellungsmodelle nach Wartungsaufwand und Hardwareabstraktion: Private, Hybrid, Virtual Private, Public und Multi Cloud.
Modell Kernidee Vorteile Nachteile Geeignete Fälle
Private Cloud Cloud-Verwaltungssoftware auf eigener physischer Infrastruktur. Maximale Kontrolle, eigene Sicherheitskonzepte, hohe Datensouveränität. Hoher Wartungsaufwand, eingeschränkte Skalierung, keine globale Providerinfrastruktur. Hochsensible Daten, Air-Gap-Umgebungen, strenge physische Zugriffskontrolle.
Public Cloud Breit zugängliche Cloud-Angebote eines Providers. Volles Skalierungspotential, globale Infrastruktur, Fixkostenvariabilisierung. Lock-in, geringere physische Kontrolle, Compliance- und Konfigurationsrisiken. Neue digitale Produkte, variable Last, internationale Nutzerbasis.
Hybrid Cloud Kombination aus Private und Public Cloud über einheitliche Verwaltung. Sensible Daten lokal, Skalierung über Public Cloud, zentrale Governance möglich. Hohe Konfigurationskomplexität, Kosten beider Welten. Migration, saisonale Lastspitzen, sensible Kernsysteme plus flexible Zusatzlast.
Multi Cloud Nutzung verschiedener Public Clouds über einheitliche Verwaltung. Reduzierter Provider-Lock-in, Kostenoptimierung, zentrale Governance. Sehr hohe Komplexität, Lock-in in Verwaltungssoftware möglich. Große Unternehmen mit hohem Cloud-Reifegrad und Providerstrategie.
Virtual Private Cloud Nicht öffentlich zugängliche Infrastruktur innerhalb einer Public Cloud, meist via VPN. Isolation, Public-Cloud-Skalierung, weniger eigener Hardwarebetrieb. Providerbindung, Netzwerkexpertise notwendig. Unternehmen, die Cloud-Vorteile mit stärkerer Netzwerkisolation kombinieren wollen.
Migrationslogik: Ein plausibler Start kann IaaS oder Virtual Private Cloud sein, wenn bestehende Systeme migriert werden. Ein Zwischenziel kann Hybrid Cloud sein, um sensible Systeme lokal und variable Last in der Public Cloud zu betreiben. Ein Endziel kann je nach Strategie Public Cloud, CaaS/PaaS oder Multi Cloud sein. Die Begründung zählt mehr als die Reihenfolge.

7. Edge Computing

Edge Computing verarbeitet Daten so nah wie möglich am Entstehungsort. Das Skript unterscheidet Edge Devices, Far Edge, Edge Computing und anschließend Private oder Public Cloud. Edge ersetzt Cloud Computing nicht, sondern ergänzt es dort, wo Latenz, Bandbreite, Datenschutz oder Offlinefähigkeit kritisch sind.

Folie zu Edge Computing mit Far Edge, Edge Computing und Cloud
Edge Computing: Daten werden zuerst nahe am Entstehungsort verarbeitet und nur bei Bedarf weiter in Private oder Public Clouds übertragen.
Nutzen Beispiel Klausurabgrenzung
Offlinefähigkeit Kritische Infrastruktur verarbeitet Daten auch ohne Internetverbindung. Edge ist näher am Entstehungsort als Private Cloud.
Datenschutz Sensible Daten werden lokal verarbeitet oder gar nicht zentral gespeichert. Nicht jede Private Cloud ist Edge; Standort und Latenz sind entscheidend.
Bandbreite Maschinendaten werden vor Ort verdichtet, bevor sie in die Cloud gehen. Edge kann Cloud-Datenmenge reduzieren.
Echtzeit Qualitätskontrolle in einer Gießerei oder Turbinendatenanalyse. Cloud ist oft zu weit entfernt für harte Latenzanforderungen.

8. Docker: Container, Images, Registry und Dockerfile

8.1 Grundidee

Docker ist ein Werkzeug, mit dem Anwendungen gebaut, verteilt und betrieben werden können. Es nutzt Prozessvirtualisierung auf Basis von cgroups und namespaces und ist de facto Standard für Container. Die Container-Analogie aus der Schifffahrt ist wichtig: Standardisierung senkt manuellen Aufwand, erhöht Planbarkeit und erlaubt spezialisierte Infrastruktur.

Folie mit Docker-Image, Docker-Container, Registry und Dockerfile
Docker-Grundpfeiler: Dockerfile baut ein Image, Images werden über Registries verteilt, ein laufender Container ist die Laufzeitrepräsentation eines Images.
Begriff Bedeutung Klausurabgrenzung
Docker Client Kommandozeilenprogramm, das Befehle entgegennimmt. Sendet Befehle per REST-Schnittstelle an den Daemon.
Docker Daemon Serverprozess, der Container erstellt, startet und verwaltet. Setzt cgroups, namespaces und Image-Ausführung praktisch um.
Docker Image Read-only Beschreibung der Laufzeitumgebung und Anwendung. Nicht direkt die Laufzeit, sondern Vorlage.
Docker Container Laufende Ausführung eines Images. Änderungen im Container sind ohne Volume oder Commit nicht dauerhaft.
Docker Registry Ablageort für Images. Public oder private Registry, bekanntestes Beispiel Docker Hub.

8.2 Image vs. Container und Copy-on-Write

Ein Docker Image ist read-only und portabel. Beim Start erzeugt Docker daraus einen Container mit einer zusätzlichen beschreibbaren Schicht. Änderungen werden nach dem Copy-on-Write-Prinzip in diese temporäre Schicht kopiert und dort verändert. Nach dem Beenden des Containers wird diese Schicht gelöscht, wenn keine Persistenz konfiguriert wurde.

Folie zu Docker Copy-on-Write mit read-only Layer und beschreibbarer Schicht
Copy-on-Write: Mehrere Container können dasselbe Image nutzen; jeder Container erhält eine eigene schreibbare Schicht.
Prüfungsfalle: Änderungen im Container verändern nicht das Image und nicht andere Container. Persistente Daten gehören in Volumes oder externe Speicherdienste, nicht in die temporäre Container-Schicht.

8.3 Docker-Befehlssyntax

Folie zur Docker-Befehlssyntax mit Client, Objektklasse, Befehl, Optionen und Objektinstanz
Docker-Syntax: docker als Client, Objektklasse, Befehl, Optionen und Objektinstanz.
Befehl Wirkung Hinweis
docker container run hello-world Erstellt und startet einen Container aus dem Image. Fehlt das Image lokal, lädt der Daemon es aus der Registry.
docker container run -d -p 8080:80 nginx Startet nginx im Hintergrund und mappt Host-Port 8080 auf Container-Port 80. -d steht für detached, -p veröffentlicht Ports.
docker container list Listet laufende Container. Mit -a auch gestoppte Container.
docker container stop 684 Stoppt den Container, dessen ID mit 684 beginnt. Kurze ID reicht, solange sie eindeutig ist.
docker container rm 684 Löscht einen gestoppten Container. Nicht mit Image-Löschung verwechseln.
docker container stats Zeigt CPU-, RAM- und I/O-Nutzung. Nützlich zur Ressourcenanalyse.
docker container logs 684 Zeigt Konsolenausgaben des Containers. Wichtig für Fehlersuche.

8.4 Docker Images, Layer und Registry

Docker Images sind geschichtet. Jede Änderung erzeugt eine neue Schicht mit eigener Prüfsumme. Identische Schichten müssen nur einmal gespeichert und übertragen werden. Beim Build nutzt Docker den Build-Cache: Wenn sich eine Schicht nicht verändert hat, müssen sie und die darüberliegenden stabilen Schichten nicht neu gebaut werden.

Folie zum schichtenweisen Aufbau von Docker Images
Image-Layer: Änderungen werden als Schichten organisiert. Das spart Speicher und beschleunigt Pull, Push und Build.

8.5 Docker-Tags

Folie zum Aufbau von Docker-Image-Tags
Docker-Tag: Registry-Adresse, Account oder Organisation, Image-Name und Version. Fehlt die Version, wird latest gesetzt.
Prüfungsfalle: latest bedeutet nicht zuverlässig „aktuellste Version“, sondern ist ein Standardwert beziehungsweise ein bewegliches Label. Für reproduzierbare Builds müssen konkrete Versionstags verwendet werden.
Tag-Art Einsatz Begründung
Stable Tag Baseimages, zum Beispiel kontrollierte Minor- oder Patch-Version. Updates sind planbarer, ohne vollständig unkontrollierte Änderungen.
Unique Tag Eigene gebaute Images, etwa Commit-ID oder Buildnummer. Rollbacks und eindeutige Nachvollziehbarkeit werden möglich.

8.6 Dockerfile-Aufbau

Ein Dockerfile ist eine Textdatei ohne Dateiendung. Es beschreibt, wie ein Docker Image gebaut wird. Die Skripte unterscheiden drei Blöcke: Baseimage, Anpassungen und Konfiguration der Ausführung.

Folie zum Aufbau eines Dockerfiles
Dockerfile-Aufbau: Baseimage, Anpassungen und Konfiguration der Ausführung.
Befehl Zeitpunkt Wirkung Klausurhinweis
FROM Buildzeit Legt das Baseimage fest. Immer möglichst konkret versionieren, zum Beispiel openjdk:16-jdk-alpine.
RUN Buildzeit Führt Befehle beim Image-Bau aus. Paketinstallationen bündeln, unnötige Schichten vermeiden.
WORKDIR Buildzeit und Laufzeitkontext Setzt Arbeitsverzeichnis für folgende Befehle. Verhindert fehleranfällige Pfadwiederholungen.
COPY Buildzeit Kopiert lokale Dateien in das Image. Nur benötigte Artefakte kopieren, nicht pauschal das ganze Projekt.
ENV Buildzeit gesetzt, Laufzeit sichtbar Definiert Umgebungsvariablen im Image und Container. Nicht für Geheimnisse im Image verwenden.
ARG Nur Buildzeit Definiert Build-Argumente. Für Werte, die zur Laufzeit nicht vorhanden sein sollen.
EXPOSE Metadaten für Laufzeit Dokumentiert den Container-Port. Veröffentlicht den Port nicht automatisch auf dem Host; dafür braucht man -p.
USER Ab dieser Dockerfile-Zeile Führt folgende Befehle und den Containerprozess als Benutzer aus. Benutzer und Gruppe vorher anlegen.
CMD Laufzeit Definiert den Standardbefehl beim Containerstart. Exec-Form bevorzugen: CMD ["java", "-jar", "app.jar"].
CMD-Falle: Die Shell-Form startet den Befehl als Unterprozess einer Shell. Die Exec-Form startet den Prozess direkt und ist für Container meist besser, weil Signale und Prozessverhalten sauberer sind.

9. Docker-Best-Practices und Probeklausur

9.1 Baseimage und Tags

Das Baseimage soll nur den notwendigen Funktionsumfang enthalten. Schlanke Images reduzieren Speicherbedarf, Übertragungszeit und Angriffsfläche. Offizielle Images sind zu bevorzugen, weil sie gepflegt und dokumentiert werden.

9.2 Geheimnisse und Umgebungsvariablen

Umgebungsvariablen eignen sich zur Laufzeitkonfiguration, etwa für Endpunkte, Profile oder Feature-Schalter. Sensible Daten dürfen nicht dauerhaft über ENV ins Image geschrieben werden, da Image-Historie und Metadaten auslesbar sein können. Wenn Umgebungsvariablen zur Laufzeit nötig sind, werden sie beim Start übergeben.

Variante Beispiel Einsatz
-e oder --env docker container run -e stage=prod image Einzelne Umgebungsvariable beim Start setzen.
--env-file docker container run --env-file .env image Viele Variablen aus Datei übergeben.

9.3 Layer-Reihenfolge und Build-Cache

Dockerfile-Befehle sollen nach Änderungsfrequenz sortiert werden: selten geänderte Schritte nach oben, häufig geänderte Schritte nach unten. Wird früh im Dockerfile eine häufig wechselnde Datei kopiert, invalidiert Docker den Cache für alle folgenden Schichten.

Folie zur Dockerfile-Schichtenarchitektur und Änderungsfrequenz
Layer-Best-Practice: Stabile Befehle nach oben, häufig geänderte Artefakte nach unten.

9.4 Non-root-Ausführung

Standardmäßig laufen Dockerfile-Befehle und Containerprozesse als root. Das ist riskant, weil Containerprozesse echte Prozesse auf dem Host sind und ein Ausbruch schwerwiegende Folgen haben kann. Deshalb sollte ein eigener Benutzer mit begrenzten Rechten angelegt und über USER verwendet werden.

Folie zur Non-root-Ausführung in Dockerfiles
Non-root-Ausführung: Benutzer und Gruppe anlegen, dann mit USER den Containerprozess unter eingeschränkten Rechten starten.

9.5 Muster-Dockerfile für die Probeklausur

Die Probeklausur verlangt ein Dockerfile für eine Spring-Boot-Anwendung mit target/app.jar, Port 8000, Buildzeit-Argument statt Laufzeit-ENV, eigenem Arbeitsverzeichnis und Non-root-Ausführung.

Teil a und b, Basislösung: Die vier geforderten Befehle plus der fehlende Port-Hinweis.
FROM openjdk:16-jdk-alpine
COPY target/ .
ENV stage=prod
EXPOSE 8000
CMD ["java", "-jar", "app.jar"]

EXPOSE 8000 dokumentiert den Container-Port. Damit der Port auf dem Host erreichbar ist, braucht der Startbefehl zusätzlich ein Port-Mapping, zum Beispiel -p 8000:8000.

Teil c, verbesserte Variante: Arbeitsverzeichnis, Build-Argument, gezieltes Kopieren und Non-root-Benutzer.
FROM openjdk:16-jdk-alpine

RUN mkdir -p /app
WORKDIR /app

ARG stage=prod
COPY target/app.jar app.jar

RUN addgroup -S javagr && adduser -S java -G javagr
USER java

EXPOSE 8000
CMD ["java", "-jar", "app.jar"]

ARG stage=prod ist zur Bauzeit verfügbar, aber nicht automatisch zur Laufzeit im Container. COPY target/app.jar app.jar kopiert nur das benötigte Artefakt.

9.6 Typische Dockerfile-Bewertung

Fehler Warum problematisch? Bessere Lösung
latest als Baseimage Nicht reproduzierbar, unterschiedliche Versionen möglich. Konkreten Stable Tag verwenden.
Großes Baseimage Mehr Speicher, längerer Download, größere Angriffsfläche. Schlankes offizielles Image wie Alpine-Variante wählen, wenn passend.
COPY . . zu früh Build-Cache wird bei jeder Codeänderung ungültig. Abhängigkeiten zuerst, Artefakt möglichst spät kopieren.
Geheimnisse mit ENV Werte können in Image-Historie oder Metadaten landen. Zur Laufzeit mit -e, --env-file oder Secret-Mechanismen setzen.
Container läuft als root Erhöht Schaden bei Container-Ausbruch. Benutzer und Gruppe anlegen, dann USER setzen.
SSH-Server im Container Erhöht Angriffsfläche und widerspricht kurzlebigem Containerprinzip. Logs, Exec, Metriken und Orchestrator-Werkzeuge nutzen.
mvn clean install im Runtime-Image Build-Tools und Quellcode landen im Image, Image wird größer und unsicherer. Artefakt außerhalb oder in separater Build-Stufe erzeugen, nur JAR ins Runtime-Image kopieren.

10. Lerncheckliste und mögliche Klausurfragen

Lerncheckliste

Mögliche Klausurfragen

  1. Vergleichen Sie On-Premise und Cloud Computing für ein Startup und ein etabliertes internationales Unternehmen.
  2. Erklären Sie, warum Cloud Computing nicht automatisch günstiger ist als On-Premise.
  3. Unterscheiden Sie vertikale und horizontale Skalierung und nennen Sie Architekturfolgen.
  4. Grenzen Sie Simulation, Emulation und Virtualisierung voneinander ab.
  5. Vergleichen Sie Voll-Virtualisierung und Prozessvirtualisierung hinsichtlich Overhead, Isolation, Imagegröße und Skalierung.
  6. Ordnen Sie einen Anwendungsfall einem geeigneten Servicemodell zu und begründen Sie den Lock-in.
  7. Entwickeln Sie eine Cloud-Migrationsstrategie über Private, Hybrid, Virtual Private, Public oder Multi Cloud.
  8. Erklären Sie, wann Edge Computing sinnvoller ist als reine Cloud-Verarbeitung.
  9. Beschreiben Sie den Ablauf von docker container run hello-world vom Client bis zur Registry.
  10. Erstellen und verbessern Sie ein Dockerfile für eine Spring-Boot-Anwendung.

Kurze Musterantworten

Frage Kernpunkte einer guten Antwort
Warum verändert Cloud auch Organisation und Entwicklung? On-Demand-Ressourcen verändern Genehmigungsprozesse, Automatisierung ersetzt manuelle Deployments, Teams müssen Kosten und Governance mitverantworten, CI/CD und Infrastructure as Code werden wichtiger.
Warum sind Container gut für horizontale Skalierung? Kleine Images, schneller Start, keine feste Reservierung ungenutzter Ressourcen, gleiche Anwendung kann aus demselben Image mehrfach parallel gestartet werden.
Warum kann FaaS starken Lock-in erzeugen? Der Provider bestimmt unterstützte Sprachen, Laufzeit, Ereignismodell, Skalierung und Funktionsumfang. Anwendungscode hängt stark an Provider-spezifischen Schnittstellen.
Warum ist EXPOSE allein nicht genug? EXPOSE dokumentiert den Container-Port im Image. Erreichbarkeit vom Host entsteht erst durch Port-Mapping beim Start, etwa -p 8080:80.

11. Abdeckung der Skripte

Folie/Kapitel Inhalt In Zusammenfassung enthalten? Wo behandelt?
1-Grundlagen S. 1-7 Titel, Motivation, On-Premise, Cloud-Definition, Auswirkungen auf Betrieb, Technologie, Organisation und Entwicklung. Ja Abschnitt 2, Abschnitt 1
1-Grundlagen S. 8-14 On-Premise-Herausforderungen: Investitionen, Auslastung, Wartung, Status quo, Schneeflocken-Konfigurationen, inkompatible Verwaltung. Ja Abschnitt 2.1
1-Grundlagen S. 15-25 Cloud-Vorteile: Skalierung, vertikal/horizontal, fertige Funktionen, globale Infrastruktur, On-Demand, Skaleneffekte. Ja Abschnitt 3.1-3.5
1-Grundlagen S. 26-31 Wirtschaftlichkeit, Fixkostenvariabilisierung, Beispielrechnung On-Premise vs. Cloud, Kalkulationsfragen. Ja Abschnitt 3.6
1-Grundlagen S. 32-39 Cloud-Herausforderungen: Kostenmanagement, Sicherheit, zentrale Governance, Know-how, Infrastructure as Code, CI/CD. Ja Abschnitt 4
1-Grundlagen S. 40-42 Argumentationsaufgaben Biotech&Ich und Advertisement Guru. Ja Abschnitt 10, Abschnitt 3, Abschnitt 4
2-Virtualisierung S. 1-8 Agenda, Virtualisierungsdefinition, Simulation/Emulation/Virtualisierung, Gründe für Virtualisierung. Ja Abschnitt 5.1-5.2
2-Virtualisierung S. 9-18 Computerschichten, Voll-Virtualisierung, Hypervisor-Typen, Para-Virtualisierung, Prozessvirtualisierung, VM-vs.-Container-Vergleich. Ja Abschnitt 5.3-5.7
2-Virtualisierung S. 19 Übungsfragen zu Einsatzszenarien, Kombination VM/Container, Overhead und Entwicklung/Test/Betrieb. Ja Abschnitt 5.7, Abschnitt 10
2-Virtualisierung S. 20-29 Cloud-Servicemodelle: IaaS, CaaS, PaaS, FaaS, SaaS, Kontrolle, Abstraktion, Lock-in. Ja Abschnitt 6.1-6.2
2-Virtualisierung S. 30-37 Bereitstellungsmodelle: Private, Public, Hybrid, Multi und Virtual Private Cloud, Wartungsaufwand, Abstraktion. Ja Abschnitt 6.3
2-Virtualisierung S. 38-40 Edge Computing, Einsatzgebiete, Abgrenzungsfragen und Aufgaben. Ja Abschnitt 7, Abschnitt 10
3-Docker S. 1-6 Docker-Paradigma, Client/Daemon, Image, Container, Registry, Dockerfile. Ja Abschnitt 8.1
3-Docker S. 7-16 Image vs. Container, Copy-on-Write, Befehlssyntax, Containerbefehle, hello-world, Port-Mapping, Stats und Logs. Ja Abschnitt 8.2-8.3
3-Docker S. 17-24 Docker Images, Layer, Build-Cache, Tags, Registry, Spring und Umgebungsvariablen. Ja Abschnitt 8.4-8.5, Abschnitt 9.2
3-Docker S. 25-29 Dockerfile-Aufbau, FROM, ENV, RUN, WORKDIR, COPY, EXPOSE, CMD, Image-Befehle. Ja Abschnitt 8.6
3-Docker S. 30-34 Hands-on Spring2Docker, Build, Run, Curl, Authentifizierung und Profile. Ja Abschnitt 8, Abschnitt 9
3-Docker S. 35-43 Best Practices: Baseimage, Tags, Secrets, Schichtenreihenfolge, USER, Dockerfile-Optimierung, Übungsdockerfile. Ja Abschnitt 9
Probeklausur_2 S. 1-2 Dockerfile-Aufgabe für Spring Boot, Port 8000, ARG vs. ENV, COPY app.jar, Non-root-Benutzer, Laufzeitvariablen. Ja Abschnitt 9.5-9.6