Der Server, den keiner nachbauen kann
Der Webserver eines Reisebüros läuft seit vier Jahren. Ein Kollege hat ihn damals von Hand eingerichtet und ist längst weg.
Nun ist die Platte defekt. Niemand weiß mehr, welche Einstellungen nötig waren. Der Neuaufbau dauert eine Woche.
Teams vermeiden das, indem sie Server in Dateien beschreiben.
Am Ende dieser Lektion
Notiz
Ich kann erklären, warum Server in Dateien beschrieben werden.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Infrastruktur | Server, Netze und Datenbanken, auf denen eine App läuft |
| Infrastruktur als Code | Infrastruktur in Textdateien beschreiben statt von Hand einrichten |
| Gewünschter Zustand | so soll die Infrastruktur aussehen |
| Plan | die Liste dessen, was sich ändern würde |
| Wiederholbar | bei jedem Durchlauf mit demselben Ergebnis |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Eine Datei beschreibt, wie es sein soll
Bei Infrastruktur als Code schreiben Sie in eine Textdatei: zwei Webserver, eine Datenbank, tägliche Sicherung.
Ein Werkzeug liest die Datei und richtet alles ein. Sie beschreiben den gewünschten Zustand, nicht die einzelnen Klicks.
Unten sehen Sie so eine Datei im Stil von Terraform. Sie läuft hier nicht, Sie lesen sie nur.
Eine Beschreibung lesen und ändern
mkdir -p infra && cd infra
cat > server.tf <<'EOF'
resource "server" "web" {
anzahl = 2
groesse = "klein"
betriebssystem = "debian-12"
}
resource "datenbank" "kunden" {
groesse = "mittel"
sicherung_taeglich = true
}
EOF
# Wie viele Ressourcen beschreibt die Datei?
grep -c "^resource" server.tf
# Welche Zeile legt die Zahl der Webserver fest?
grep -n "anzahl" server.tf
# Ändern Sie anzahl von 2 auf 3 und starten Sie erneut. Eine Zeile reicht für einen dritten Server.
Drei Vorteile gegenüber Handarbeit
Erstens wiederholbar: Aus derselben Datei entsteht jedes Mal derselbe Server, auch nach einem Defekt.
Zweitens nachvollziehbar: Die Datei liegt in Git. Das Team sieht, wer wann welche Zeile geändert hat.
Drittens prüfbar: Eine zweite Person liest die Änderung, bevor sie wirkt.
Von Hand gegen aus einer Datei
| Frage | Von Hand | Aus einer Datei |
|---|---|---|
| Neuer Server nötig | Klicken, hoffen, dass nichts fehlt | Eine Zeile ändern, Werkzeug starten |
| Wer hat was geändert | Oft unbekannt | Steht im Verlauf der Datei |
| Zweite Umgebung für Tests | Tagelang nachbauen | Dieselbe Datei erneut nutzen |
| Nach einem Defekt | Aus dem Gedächtnis | Aus der Datei |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Das Werkzeug vergleicht und schlägt einen Plan vor
Das Werkzeug prüft, was gewünscht ist und was schon läuft. Der Unterschied ist der Plan.
Der Plan nennt, was neu entsteht, was sich ändert und was verschwindet. Erst nach Ihrer Zustimmung wird er ausgeführt.
Unten bauen Sie diesen Vergleich mit zwei Listen nach.
Gewünscht gegen vorhanden
mkdir -p infra && cd infra
printf 'web-1\nweb-2\ndatenbank\n' > vorhanden.txt
printf 'web-1\nweb-2\nweb-3\ndatenbank\n' > gewuenscht.txt
# Was fehlt noch? Zeilen, die nur in der Wunschliste stehen:
comm -13 <(sort vorhanden.txt) <(sort gewuenscht.txt)
# Was ist zu viel? Zeilen, die nur bei den vorhandenen Servern stehen:
comm -23 <(sort vorhanden.txt) <(sort gewuenscht.txt)
# Löschen Sie web-3 aus gewuenscht.txt, damit nichts mehr fehlt, und starten Sie erneut.
Ein häufiger Fehler
Warnung
Viele denken, man könne einen Server weiter von Hand ändern, solange die Datei existiert. Das ist riskant. Eine Handänderung steht nicht in der Datei, und der nächste Lauf überschreibt sie oder scheitert an ihr. Ändern Sie darum immer die Datei und lassen Sie das Werkzeug arbeiten.
Was ein Plan ausgeben kann
| Ausgabe | Bedeutung |
|---|---|
| + server.web-3 wird erstellt | Ein neuer Server entsteht |
| ~ datenbank.kunden wird geändert | Eine Einstellung ändert sich |
| - server.alt wird gelöscht | Ein Server verschwindet |
| Plan: 1 neu, 1 geändert, 1 gelöscht | Die Summe aller Änderungen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.