Grundlagen

Cloud

„Die Cloud“ ist der Computer von jemand anderem – aber mit Schnittstellen, Abrechnung pro Minute und Rechenzentren auf allen Kontinenten. Was IaaS, PaaS, SaaS und Serverless unterscheidet, wer wofür verantwortlich ist und wann sich das rechnet.

Lesestand

Cloud Computing heißt: Rechenleistung, Speicher, Datenbanken und ganze Dienste werden über das Netz gemietet, per Schnittstelle in Minuten bereitgestellt und nach Verbrauch abgerechnet. Physisch stehen dahinter riesige Rechenzentren, gruppiert in Regionen, jede aus mehreren voneinander unabhängigen Zonen.

Je nach Modell übernimmt der Anbieter mehr oder weniger: Bei IaaS mietest du virtuelle Maschinen, bei PaaS eine Laufzeitumgebung, bei Serverless nur noch die Ausführung einzelner Funktionen, bei SaaS die fertige Anwendung. Der große Vorteil ist Elastizität – Kapazität wächst und schrumpft mit der Last. Der Preis: laufende Kosten, die genau beobachtet werden wollen, und Abhängigkeit von einem Anbieter.

Was „die Cloud“ physisch ist

Hinter jeder Cloud stehen Rechenzentren mit zehntausenden Servern, eigener Stromversorgung und Kühlung. Die großen Anbieter gliedern sie in zwei Ebenen:

Region

Ein geografischer Ort

Zum Beispiel Frankfurt, Irland oder Virginia. Regionen sind weitgehend unabhängig voneinander. Die Wahl der Region bestimmt Latenz zu den Nutzern – und welches Recht für die Daten gilt.

Zone

Availability Zone

Innerhalb einer Region meist mindestens drei getrennte Rechenzentren oder -gruppen, mit eigener Stromversorgung und eigenem Netzanschluss, aber nur wenige Millisekunden voneinander entfernt. Brennt eine ab, laufen die anderen weiter.

Edge

Am Rand des Netzes

Viele kleinere Standorte nah an den Nutzern, vor allem für Caching (CDN) und kleine Funktionen. Bringt statische Inhalte in wenigen Millisekunden zum Browser.

Auf den Servern läuft Virtualisierung: Deine „Maschine“ ist eine virtuelle, die sich die Hardware mit anderen Kunden teilt. Alles wird über eine API gesteuert – eine neue Maschine ist ein HTTP-Aufruf, kein Bestellformular.

IaaS, PaaS, Serverless, SaaS

Die Modelle unterscheiden sich darin, ab welcher Schicht der Anbieter übernimmt. Wähle eines:

Wer kümmert sich um was?
duAnbieter

Wichtig ist das Prinzip der geteilten Verantwortung: Der Anbieter sichert, was er betreibt – Gebäude, Hardware, je nach Modell auch Betriebssystem und Laufzeit. Was du konfigurierst, bleibt deine Aufgabe: Zugriffsrechte, offene Ports, öffentlich lesbare Speicher, Patches deiner eigenen Software. Ein großer Teil der Sicherheitsvorfälle in der Cloud geht auf solche Fehlkonfigurationen zurück, nicht auf Lücken beim Anbieter.

Elastizität: zahlen, was man braucht

Ein eigenes Rechenzentrum muss für die höchste Last gebaut werden – und steht den Rest der Zeit halb leer. In der Cloud kann die Kapazität der Last folgen. Ein Onlineshop über einen Tag, mit Abendspitze:

Ein Tag Last – vier Strategien
Spitze gegenüber Grundlast

Modellhaft. Eine Kapazitätseinheit kostet 1 pro Stunde. Autoscaling reagiert mit einer Stunde Verzögerung und hält 20 % Reserve. Serverless kostet pro genutzter Einheit das 2,5-Fache, im Leerlauf nichts. Reale Preise und Verhältnisse unterscheiden sich je nach Anbieter und Dienst.

Daran sieht man die Abwägung: Feste Kapazität für die Spitze ist sicher, aber teuer. Autoscaling spart, reagiert aber mit Verzögerung – bei steilen Anstiegen fehlt kurz Kapazität, weshalb man Reserven einplant oder vorausschauend skaliert. Serverless folgt der Last fast perfekt und kostet im Leerlauf nichts, ist pro Recheneinheit aber teurer: ideal für unregelmäßige Last, teuer für Dauerlast.

Auch die Cloud ist nicht automatisch günstiger. Bei gleichmäßiger, gut planbarer Last kann eigene oder langfristig gemietete Hardware billiger sein. Deshalb gibt es Rabattmodelle für feste Zusagen – und eine eigene Disziplin, die sich nur um Cloudkosten kümmert (FinOps).

Ausfälle einplanen

In der Cloud fallen Server ständig aus – bei zehntausenden Maschinen ist das Alltag. Hochverfügbarkeit entsteht durch die Verteilung: mehrere Instanzen, über mehrere Zonen, im Extremfall über mehrere Regionen. Probier aus, was welcher Ausfall anrichtet:

Verteilung gegen Ausfall
Aufbau
Ausfall

Jede Stufe kostet: Mehrere Zonen bedeuten Datenreplikation und etwas Latenz zwischen den Zonen, mehrere Regionen bedeuten die Probleme verteilter Systeme im großen Maßstab – Daten über hunderte Kilometer konsistent zu halten, ist schwer und teuer. Für die meisten Anwendungen sind mehrere Zonen in einer Region der übliche Kompromiss.

Für Entwickler übersetzt

Damit eine Anwendung gut in der Cloud läuft, sollte sie sich an ein paar Regeln halten, die als Twelve-Factor App bekannt geworden sind: Konfiguration aus der Umgebung statt aus Dateien im Archiv, keine Daten auf der lokalen Platte, schnell starten, sauber beenden, Logs auf die Standardausgabe.

# application.yml – Werte kommen aus Umgebungsvariablen der Plattform
spring:
  datasource:
    url: ${DB_URL}
    password: ${DB_PASSWORD}       # besser: aus einem Secret-Manager
management:
  endpoint.health.probes.enabled: true   # /actuator/health/liveness und /readiness
// Serverless: eine Funktion statt eines Servers (AWS Lambda)
public class BildVerkleinern implements RequestHandler<S3Event, String> {
    @Override
    public String handleRequest(S3Event ereignis, Context ctx) {
        // läuft nur, wenn ein Bild hochgeladen wird – und kostet nur dann
        return verkleinere(ereignis);
    }
}

Ein Java-spezifisches Thema ist der Kaltstart: Wird eine Serverless-Funktion nach einer Pause aufgerufen, muss zuerst eine JVM starten, Klassen laden und das Framework hochfahren – das kann bei Spring-Anwendungen Sekunden dauern. Dafür gibt es Gegenmittel:

TechnikWie sie hilft
GraalVM Native Imageübersetzt die Anwendung vorab in Maschinencode – startet in Millisekunden, verzichtet aber auf den JIT und braucht Konfiguration für Reflection
CRaC / SnapStartspeichern eine fertig hochgefahrene JVM als Abbild und setzen dort wieder auf
Schlanke FrameworksQuarkus und Micronaut verlagern viel Arbeit vom Start in die Übersetzungszeit
Warmhalteneine Mindestzahl Instanzen dauerhaft bereithalten – kostet dafür auch im Leerlauf

Infrastruktur selbst wird heute meist als Code beschrieben (Infrastructure as Code), etwa mit Terraform oder den Werkzeugen der Anbieter: Netze, Datenbanken und Rechte stehen versioniert im Repository und werden von der Pipeline ausgerollt.

Häufige Irrtümer

„Die Cloud ist immer billiger.“ – Bei schwankender Last oft ja, bei gleichmäßiger Dauerlast nicht unbedingt. Vergessene Maschinen, Datenverkehr aus der Cloud hinaus und überdimensionierte Instanzen treiben Rechnungen schnell hoch.
„Um Sicherheit kümmert sich der Anbieter.“ – Nur um seinen Teil. Zugriffsrechte, Netzregeln, Verschlüsselungseinstellungen und die eigene Software bleiben beim Kunden.
„Serverless heißt: keine Server.“ – Es gibt sie natürlich, man sieht sie nur nicht. Der Anbieter verwaltet sie und rechnet pro Aufruf ab.
„In der Cloud ist alles automatisch hochverfügbar.“ – Eine einzelne virtuelle Maschine fällt genauso aus wie ein Server im Keller. Verfügbarkeit entsteht erst durch Verteilung über Zonen.
„Mit Kubernetes sind wir anbieterunabhängig.“ – Die Container ja. Datenbanken, Warteschlangen, Rechteverwaltung und Netz sind meist trotzdem anbieterspezifisch. Lock-in lässt sich verringern, selten ganz vermeiden – und manchmal ist er den Komfort wert.

Verwandte Begriffe