GitLab ist eine (freie und quelloffene) Software, Plattform und ein Unternehmen für Dienste zur dezentralen Versionsverwaltung Git, ähnlich GitHub.

Am 2017-01-31 kam es durch eine Verkettung mehrerer unglücklicher Umstände dazu, daß ein Mitarbeiter die Produktivdatenbank löschte, weil er den Befehl zum Löschen eines eigentlich leeren Verzeichnisses spät abends nach einem langen Tag und während Streß’ auf dem falschen Host ausgeführt hatte:

team-member-1 thinks that perhaps pg_basebackup is refusing to work due to the PostgreSQL data directory being present (despite being empty), decides to remove the directory. After a second or two he notices he ran it on db1.cluster.gitlab.com, instead of db2.cluster.gitlab.com.

In der Folge stellte sich heraus, daß das vermutlich einzige funktionierende und relativ vollständige Backup sechs Stunden alt und von diesem Mitarbeiter zuvor aus anderen Gründen selbst angefertigt worden war. Alle Datensicherungssysteme funktionierten nicht:

out of 5 backup/replication techniques deployed none are working reliably or set up in the first place.

Auch wenn die Backup-Strategie katastrophal war, so ist die Transparenz und die Kommunikation über den Vorfall und die derzeit noch laufende Wiederherstellung vorbildlich:

Wieder einmal zeigt sich durch diesen Vorfall: Datensicherungen nicht nur durchführen, sondern auch Backups kontrollieren, Wiederherstellungen ausprobieren.

Nachtrag vom 2017-02-14: GitLab hat am 2017-02-10 ein Postmortem of database outage of January 31 veröffentlicht, welches allerdings keine wesentlichen neuen Informationen gegenüber der ersten Mitteilung während der Wiederherstellung enthält, jedoch ein paar Details.