Ehrlich dokumentiert, inklusive Umplanungen

Projekte und Erfahrung

Abgeschlossene Kundenprojekte, anonymisiert — und der berufliche Hintergrund, aus dem die Arbeitsweise kommt.

Eigene Kundenprojekte

Kundenprojekte

Projekte aus meiner Arbeit — anonymisiert, aber vollständig beschrieben, inklusive der Stellen, an denen ich umgeplant habe.

Server automatisiert bereitstellen mit Ansible

Ausgangslage

Neue Server wurden bei Bedarf von Hand aufgesetzt — Betriebssystem, Pakete, Konfiguration, Benutzer, Dienste, jedes Mal einzeln. Das funktioniert, solange es wenige sind. Aber es kostet jedes Mal dieselbe Zeit, und kein Server gleicht dem anderen exakt: hier eine andere Version, dort eine Einstellung, die jemand später von Hand nachgezogen hat. Bei jedem neuen System begann die gleiche Handarbeit von vorn, und wenn etwas klemmte, war schwer zu sagen, ob es am System lag oder an einer vergessenen manuellen Anpassung. Wer den Server ursprünglich eingerichtet hatte, war oft die einzige Person, die ihn wirklich kannte.

Auftrag

Die Bereitstellung neuer Server so aufsetzen, dass sie schnell geht, wiederholbar ist und jedes Mal dasselbe Ergebnis liefert — dokumentiert, nicht im Kopf einer einzelnen Person.

Vorgehen

Ich habe die immer gleichen Schritte in Ansible abgebildet: Grundkonfiguration, Pakete, Dienste, Benutzer und Rechte. Aus einmaliger Handarbeit wurde versionierter Code, den ich wiederverwenden kann. Ein neuer Server entsteht seitdem nicht mehr durch Zusammenklicken, sondern durch einen Lauf, der auf jeder Maschine dasselbe tut — nachvollziehbar, weil jeder Schritt im Code steht.

Die Entscheidung unterwegs

Der erste Wurf war ein einziges, langes Playbook, das alles auf einmal erledigte. Es lief — war aber schwer zu lesen und noch schwerer wiederzuverwenden, sobald ein Server leicht anders sein sollte als der vorige. Ich habe es deshalb in kleinere, wiederverwendbare Rollen zerlegt und die maschinenspezifischen Werte in Variablen ausgelagert. Dieser Umbau hat kurzfristig Zeit gekostet, die ich lieber gespart hätte. Ohne ihn wäre aus der Automatisierung aber schnell wieder ein Flickwerk aus Sonderfällen geworden — genau das, was ich eigentlich abschaffen wollte.

Ergebnis

Server werden seither reproduzierbar und in einem Bruchteil der früheren Zeit bereitgestellt. Was vorher wiederholte Handarbeit pro Maschine war, ist ein Lauf, der überall dasselbe Ergebnis liefert; die gesparte Zeit summiert sich mit jedem weiteren Server. Und weil die Konfiguration in Code liegt statt in Erinnerungen, ist nachvollziehbar, warum ein Server so aussieht, wie er aussieht — auch für jemanden, der ihn nicht selbst aufgesetzt hat.

Was ich heute anders machen würde

Von Anfang an in kleinen Rollen denken statt in einem großen Playbook. Der Zwischenschritt über die monolithische Variante war vermeidbar — die Aufteilung, die am Ende stand, hätte gleich der Startpunkt sein können.

Sicherer Fernzugriff auf interne Systeme

Ausgangslage

Ein Betrieb brauchte gesicherten Zugriff auf interne Systeme für Mitarbeiter, die außerhalb des Büros arbeiten. Eine Lösung dafür gab es bereits — über die Jahre gewachsen, Stück für Stück erweitert, von wechselnden Händen angefasst. Das Ergebnis war ein Zustand, den niemand im Haus mehr vollständig überblickte: Es lief irgendwie, aber warum es lief und was passieren würde, wenn ein Teil ausfällt, konnte niemand sicher sagen. Genau das ist die Situation, in der ich am häufigsten gerufen werde — nicht weil nichts funktioniert, sondern weil niemand mehr erklären kann, wie es funktioniert.

Auftrag

Den Fernzugriff neu aufsetzen. Drei Bedingungen waren dem Kunden und mir wichtig: nachvollziehbar, sauber dokumentiert und ohne dauerhafte Abhängigkeit von mir. Am Ende sollte keine Lösung stehen, die nur ich bedienen kann.

Vorgehen

Ich habe zuerst eine eigene Lösung auf Basis von WireGuard gebaut. WireGuard ist schlank, gut verstanden und lässt sich vollständig in Code beschreiben — auf dem Papier genau das, was zu meinem Anspruch passt: alles selbst in der Hand, alles dokumentiert. Ich habe die Konfiguration aufgesetzt, die Zugänge eingerichtet und das Ganze in einer Testphase unter realen Bedingungen laufen lassen.

Die Entscheidung unterwegs

Hier lief es nicht wie geplant — und das ist der ehrlichste Teil dieses Projekts. Im Test zeigte sich, dass die selbstgebaute Lösung im Alltag nicht zuverlässig genug war. Besonders bei wechselnden Netzen und beim Wiederverbinden nach einem Verbindungsabbruch hakte es: genau die Situationen, die bei mobilem Arbeiten ständig vorkommen. Ich hatte zu diesem Zeitpunkt bereits spürbar Arbeit investiert. Es wäre naheliegend gewesen, weiter nachzubessern, bis es passt. Ich habe die Eigenentwicklung trotzdem verworfen und stattdessen Tailscale eingesetzt. Die Begründung ist einfach und für mich grundsätzlich: Eine Lösung, die ich für den Kunden dauerhaft betreuen und bei jedem Randfall selbst nachziehen muss, ist keine gute Lösung, wenn es eine gibt, die einfach läuft. Der Kunde zahlt nicht dafür, dass ich mich in meine eigene Konstruktion verliebe — er zahlt für Fernzugriff, der funktioniert, auch wenn ich nicht erreichbar bin.

Ergebnis

Am Ende stand ein funktionierender, dokumentierter Fernzugriff, den der Kunde ohne mich betreiben kann. Wer Zugriff hat und wie man jemanden hinzufügt oder entfernt, steht schriftlich fest. Meine Rolle war damit erledigt — so, wie es sein soll.

Was ich heute anders machen würde

Den Vergleich der beiden Ansätze würde ich früher ziehen und in einer kleineren Testumgebung, bevor eine Eigenentwicklung so weit gedeiht. Die Entscheidung gegen die selbstgebaute Variante war richtig — aber ich hätte sie günstiger haben können, wenn ich beide Wege von Anfang an klein gegeneinander getestet hätte, statt einen davon erst voll auszubauen.

Serverumzug mit Backup-Anbindung

Ausgangslage

Eine bestehende Umgebung sollte auf neue Infrastruktur umziehen. Sie war über die Zeit gewachsen und lief im Alltag, aber die Datensicherung war nur unvollständig geregelt — teils vorhanden, teils angenommen, an keiner Stelle wirklich nachvollziehbar festgehalten. Solange nichts passiert, fällt das nicht auf. Ein Umzug ist aber genau der Moment, in dem sich solche Lücken rächen, weil die gesamte Umgebung einmal angefasst, abgeschaltet und woanders wieder hochgefahren wird. Wenn dann etwas fehlt, merkt man es zum ungünstigsten Zeitpunkt.

Auftrag

Zwei Dinge und eine Beratung: Der Umzug sollte ohne längeren Ausfall über die Bühne gehen. Danach eine geregelte Sicherung auf ein NAS-System im Haus. Und dazu eine ehrliche Einschätzung, welche Schritte als Nächstes sinnvoll sind — ohne dass daraus gleich ein Dauerauftrag wird.

Vorgehen

Ich habe mit einer Bestandsaufnahme begonnen: welche Dienste laufen, wovon sie abhängen und was zusammen umziehen muss, damit nichts auseinanderfällt. Das ist bei gewachsenen Umgebungen der Teil, der über Erfolg oder Ärger entscheidet — nicht der Umzug selbst, sondern das Wissen, was womit zusammenhängt. Den Umzug habe ich in einem vorher vereinbarten Wartungsfenster durchgeführt, damit der laufende Betrieb so wenig wie möglich berührt wird. Bevor ich das Fenster geschlossen und in den Normalbetrieb zurückgeschaltet habe, habe ich geprüft, dass die zentralen Dienste erreichbar sind und wieder zusammenspielen — nicht erst am nächsten Morgen im Echtbetrieb. Anschließend habe ich die Sicherung auf das NAS eingerichtet und die gesamte Umgebung schriftlich übergeben — dokumentiert, sodass sie nachvollziehbar ist, auch ohne mich.

Ergebnis

Am Ende stand eine umgezogene Umgebung, eine geregelte Sicherung und eine Dokumentation, die dem Kunden gehört. Dazu kam die vereinbarte Beratung: eine schriftliche, priorisierte Empfehlung, welche Schritte als Nächstes sinnvoll sind — als Grundlage für seine eigene Entscheidung, nicht als Druck, gleich den nächsten Auftrag zu vergeben. Er ist an keiner Stelle darauf angewiesen, dass ich für den Weiterbetrieb erreichbar bin — genau das war der Punkt.

Was ich heute anders machen würde

Vorab schriftlich festhalten, was genau gesichert wird und wer dafür verantwortlich ist — nicht erst beim Einrichten der Sicherung. Beim Umzug war die Backup-Lage der unklarste Punkt; das gehört an den Anfang, nicht ans Ende. Es ist gut ausgegangen, aber ich hätte den unsichersten Teil lieber zuerst festgezurrt.

Hintergrund · kein Kundenauftrag

Woher die Erfahrung kommt

Ich bin hauptberuflich als Senior System Engineer angestellt und dort täglich in produktiven Umgebungen unterwegs — deutlich größer als die Projekte, die ich als Selbstständiger übernehme. Diese Arbeit gehört meinem Arbeitgeber, deshalb stehen hier keine Details, keine Namen und keine Zahlen. Was ich nennen kann, ist die Art der Systeme, mit denen ich arbeite:

Vieles davon entsteht im Team; wo das so ist, sage ich es dazu.

Das ist keine kuratierte Hochglanz-Referenzliste. Ich baue meinen eigenen Kundenstamm gerade auf — was hier steht, zeigt ehrlich, wie ich arbeite: in Code, dokumentiert und so übergeben, dass der Betrieb ohne mich weiterläuft.

Ob das zu Ihrer Situation passt, findet sich am schnellsten in einem Gespräch heraus.