Quay.io, eine der führenden Container-Registry-Plattformen, stand im Mai 2025 vor einer erheblichen technischen Herausforderung, die dazu führte, dass Nutzende über einen längeren Zeitraum keine Images mehr auf die Plattform pushen konnten. Der Grund für diese Beeinträchtigung war ein ungewöhnliches, aber kritisch bedeutsames Problem in der Datenbank: Ein Primärschlüssel hatte seinen maximal möglichen Wert erreicht. Dieses Ereignis löste einen Ausfall aus, der sowohl für die Betreiber als auch für die User von Quay.io weitreichende Folgen hatte.
Im Rahmen der Container-Ökosphäre spielen Registries wie Quay.io eine essenzielle Rolle, indem sie Entwicklern und Unternehmen das Speichern, Verwalten und Bereitstellen ihrer Container-Images ermöglichen. Die Stabilität und Zuverlässigkeit dieser Dienste sind entscheidend für den reibungslosen Ablauf von Continuous Integration/Continuous Deployment (CI/CD)-Pipelines. Wenn ein so zentrales System aufgrund eines Datenbankproblems ausfällt, kann das massive Auswirkungen auf DevOps-Teams und gesamte Produktionsumgebungen haben. Der Begriff "Primärschlüssel" bezieht sich auf ein fundamentales Konzept im Bereich relationaler Datenbanken.
Ein Primärschlüssel ist ein eindeutiges Identifikationsmerkmal für Datensätze in einer Tabelle. Oftmals wird für diesen Schlüssel ein numerischer Wert verwendet, der automatisch bei jedem neuen Datensatz inkrementiert wird. Ist der Wertebereich dieses Schlüssels begrenzt, etwa durch den Datentyp, kann er irgendwann seinen Höchstwert erreichen. Wenn keine vorbeugenden Mechanismen implementiert wurden, führt dies dazu, dass keine neuen Datensätze mehr eingefügt werden können. In Quay.
ios Fall konkret wurde in der Datenbank eine solche Grenze überschritten. Durch das Erreichen des maximal möglichen Werts des Primärschlüssels konnten keine neuen Einträge für Push-Vorgänge mehr erstellt werden, wodurch die Funktionalität zum Hochladen von Container-Images eingestellt wurde. Zum Glück blieb die Pull-Funktion – der Download beziehungsweise das Herunterladen von Images – trotzdem weiterhin uneingeschränkt nutzbar, was eine eingeschränkte Nutzung der Plattform ermöglichte. Das Problem wurde am 13. Mai 2025 gegen 08:45 UTC zunächst gemeldet, wobei die Betreiber ein schnelles Eingreifen versprachen.
Gegen 09:12 UTC wurde das Problem als identifiziert bekanntgegeben, wonach die Entwickler intensiv an einem Fix zur Bewältigung des Problembereichs arbeiteten. Im Laufe des Tages wurde die Plattform in einen read-only-Modus versetzt, um den Schaden zu begrenzen und gleichzeitig dringende Arbeiten an der Datenbankstruktur durchzuführen. Bis zu dessen Abschluss waren zwar Pull-Vorgänge möglich, Push-Vorgänge jedoch gesperrt. Erst am Abend des 13. Mai konnten die Push-Vorgänge nach erfolgreicher Implementierung und Tests wieder vollständig hergestellt werden.
Dieses technische Ereignis wirft ein Schlaglicht auf die Herausforderungen, die mit dem Betrieb großer und komplexer Plattformen verbunden sind. Datenbanken müssen sorgfältig geplant und regelmäßig gewartet werden, um Kapazitätsgrenzen frühzeitig zu erkennen und zu vermeiden. Insbesondere Datenfelder, die als Primärschlüssel dienen, sollten so dimensioniert oder architected sein, dass deren maximale Werte im realistischen Nutzungszeitraum nie erreicht werden können. Alternativ bietet sich auch der Einsatz von komplexeren Identifizierungsmechanismen an, beispielsweise UUIDs (Universally Unique Identifiers), die keinen engen, aufsteigenden Wertebereich haben und somit praktisch keine Obergrenze besitzen. Für Anwender von Container-Registries stellt ein solcher Ausfall eine erhebliche Störung dar.
DevOps-Teams müssen ihre Deployments entweder verschieben oder auf alternative Registries ausweichen, was zusätzlichen Aufwand und potenzielle Risiken mit sich bringt. Darüber hinaus ist das Vertrauen in den Dienst beeinträchtigt, was Betreiber wie Red Hat dazu zwingt, Maßnahmen zu kommunizieren und Transparenz über Fehler und Lösungswege zu schaffen. Die zügige Reaktion und transparente Informationspolitik seitens Quay.io zeigen in diesem Fall ein vorbildliches Incident Management. Neben der unmittelbaren Problemlösung sollten Betreiber langfristig in technische Monitoring- und Alarmsysteme investieren, die Grenzwerte entlang verschiedener Systemparameter überwachen und autonome Präventivmaßnahmen einleiten können.
Während herkömmliche Alerts auf Speicher- oder CPU-Auslastung oft üblich sind, sind Datenbank-Schlüsselgrenzen eine spezialisierte Kenngröße, die in vielen IT-Infrastrukturen noch kaum beachtet wird. Ihre Überwachung ist allerdings essentiell, um vergleichbare Ausfälle frühzeitig zu vermeiden. Darüber hinaus könnte die Architektur der Plattform von einer horizontal skalierbaren Datenbanklösung profitieren. Moderne Datenbanktechnologien erlauben es, große Mengen an Daten ohne klassische Limits zu verwalten und bei Bedarf Datenbanken automatisch zu partitionieren oder zu sharden. Diese Ansätze minimieren die Wahrscheinlichkeit, dass einzelne Tabellen oder Schlüssel eine nicht überschaubare Größe annehmen und Systemprozesse blockieren.
Ein weiteres Augenmerk liegt auf der Benutzerkommunikation. Im aktuellen Ausfallfall informierte Red Hat über die Atlassian Statuspage regelmäßig über den Fortschritt der Problemuntersuchung, Einschränkungen im Betrieb und schließlich die Wiederherstellung des kompletten Services. Transparenz und eine wirkungsvolle Kommunikation sind für den Erhalt von Nutzervertrauen essenziell, gerade in Zeiten, in denen Störungen unweigerlich zu Reputationsverlusten führen können. Technologisch betrachtet ist die Situation von Quay.io eine Mahnung an die Entwickler und Betreiber von Cloud-nativen Plattformen, ihren technologischen Fußabdruck und die Skalierbarkeit der Backend-Komponenten kritisch zu überprüfen.
Die Evolution der Container-Technologie und der steigende Bedarf an flexiblen, schnellen Registries erzeugen stetig wachsende Anforderungen an Datenmanagement und Infrastruktur. Auf Seiten der Nutzer zeigt dieses Ereignis, wie wichtig es ist, Strategien für Ausfallsicherheit zu entwickeln. Dazu gehört, mehrere Registries in der Toolchain zu integrieren oder Backup-Lösungen für Container-Images zu etablieren. Im Kontext einer hybriden oder Multi-Cloud-Strategie gelingt es dadurch, potenzielle Ausfallzeiten zu reduzieren. Auch der Einsatz von eigenen, on-premise gehosteten Registries kann im Kontext kritischer Produktionsumgebungen eine sinnvolle Option sein.