In vielen Softwareprojekten gilt Git als zentrale Absicherung: Quellcode ist versioniert, Änderungen sind nachvollziehbar, Releases lassen sich über Tags rekonstruieren. Dieses Setup vermittelt Sicherheit – führt aber häufig zu einer falschen Annahme:
Der Code liegt in Git, also ist das Projekt gesichert.
In der Praxis greift dieses Verständnis zu kurz. Moderne Anwendungen bestehen nicht nur aus Quellcode, sondern aus einer Vielzahl weiterer Komponenten, die für Betrieb und Wiederherstellung entscheidend sind. Fehlen diese, existiert zwar ein Repository – aber kein lauffähiges System.
Git ist ein Werkzeug zur Versionskontrolle. Es erfüllt diese Aufgabe sehr zuverlässig:
Was Git nicht leistet, ist die vollständige Absicherung eines Systems. Insbesondere schützt Git nicht vor:
Git ist damit ein zentraler Baustein – aber kein Ersatz für ein Backup- oder Wiederherstellungskonzept.
Ein typischer moderner Applikations-Stack besteht aus mehreren Ebenen:
Geht bei einem Incident nur ein Teil davon verloren, zeigt sich schnell, dass ein Repository allein nicht ausreicht. Entscheidend sind Fragen wie:
Ohne klare Antworten darauf bleibt Versionskontrolle ein organisatorischer Vorteil – aber keine Grundlage für einen erfolgreichen Restore.
CI/CD-Systeme werden häufig implizit als Ablage genutzt. Das funktioniert, solange keine Störung auftritt.
In der Praxis werden Logs und Build-Artefakte in CI/CD-Plattformen nur für einen begrenzten Zeitraum aufbewahrt – abhängig von Plattform und Konfiguration. Standardmässig beträgt die Aufbewahrungsdauer bei GitHub Actions 90 Tage (konfigurierbar je nach Repository oder Organisation). Nach Ablauf dieser Retention werden Artefakte und Logs automatisch gelöscht, sofern keine explizite Archivierung erfolgt.
Betroffen sind unter anderem:
Ein konkretes Beispiel: Bei GitHub Actions unterliegen Artefakte und Logs standardmässig einer konfigurierbaren, zeitlich begrenzten Aufbewahrung und werden danach automatisch entfernt.
Wer sich darauf verlässt, im Ernstfall Artefakte aus der Pipeline zu beziehen, nutzt kein Backup, sondern eine temporäre Ablage mit Ablaufdatum.
Ein häufiger Engpass bei Restores sind Konfigurationswerte und Secrets. Sie gehören aus guten Gründen nicht ins Repository – fehlen sie jedoch, ist eine Wiederherstellung oft unmöglich.
Ein klassisches Beispiel ist ein zentraler Applikations- oder Verschlüsselungsschlüssel. Geht dieser verloren oder wird ersetzt, sind verschlüsselte Daten, Sessions oder Tokens nicht mehr lesbar. Das betrifft nicht nur Sicherheit, sondern unmittelbar die Funktionsfähigkeit des Systems.
Moderne Setups setzen zunehmend auf kurzlebige Tokens und identitätsbasierte Zugriffe, um statische Secrets zu vermeiden. Das verbessert die Sicherheit – ersetzt aber kein Backup. Auch Identitäten, Trust-Beziehungen und Konfigurationen müssen dokumentiert und im Notfall reproduzierbar sein.
Aus der Praxis ergibt sich ein technisches Minimal-Set an Komponenten, ohne die eine Wiederherstellung realistisch nicht möglich ist. Ein tragfähiges Backup-Konzept für Softwareprojekte sollte daher mindestens folgende Punkte abdecken:
Ein Backup-Konzept ist dann sinnvoll, wenn es eine Wiederherstellung ermöglicht – nicht nur das Ablegen von Daten.
Für die externe, technisch unveränderbare Ablage von Backups eignet sich S3-kompatibler Object Storage besonders gut. Richtig konfiguriert – etwa mit Object Lock und definierten Retention-Regeln – erlaubt er die Kombination aus:
Der Backup ONE Swiss S3 Storage kann dabei als Offsite-Ziel für Repository-Mirrors, Build-Artefakte oder Log-Exporte dienen – betrieben in einer vollständig in der Schweiz gehosteten Cloud-Infrastruktur:
Ebenso entscheidend ist das Zugriffsmodell. Lifecycle-Regeln, Retention und IAM-Policies müssen gemeinsam gedacht werden, damit klar definiert ist, wer Backups lesen, schreiben oder verwalten darf. Für typische S3-Szenarien lassen sich solche Rollenmodelle und Policies auch über Policy-Generatoren abbilden.
Ein Backup ist nur dann wertvoll, wenn sich ein System auch tatsächlich wiederherstellen lässt. Regelmässige Restore-Tests zeigen, ob definierte Zielwerte wie Wiederanlaufzeit oder maximaler Datenverlust realistisch erreichbar sind.
Ohne diese Tests bleibt ein Backup eine Annahme – keine verlässliche Grundlage für den Ernstfall.
Backup-Strategien werden häufig dem Betrieb zugeordnet. In modernen Projekten greift das zu kurz:
Wiederherstellbarkeit muss deshalb früh berücksichtigt werden. Der Gedanke des „Shift Left“ unterstreicht genau das: Resilienz entsteht nicht am Ende, sondern während der Entwicklung.
Git ist unverzichtbar – aber Git ist kein Backup.
Ein tragfähiges Konzept beantwortet nicht nur die Frage, wo der Code liegt, sondern vor allem:
Wie lässt sich ein System reproduzierbar, zeitnah und kontrolliert wieder lauffähig machen?
Wer diese Frage früh stellt, baut Anwendungen, die nicht nur sauber versioniert sind, sondern auch im Ernstfall bestehen.
Das sind weitere Beiträge, die Sie interessieren könnten.
Zur Blogübersicht