Kapitel 10. Daten und Datenverlust

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

In Kapitel 9 hast du gesehen, wie die Live-Funktionalität im Rahmen eines kontinuierlichen Deployments überarbeitet. Mithilfe des Expand-and-Contract-Patterns können wir unsere Einsätze in verschiedenen Codebases so planen, dass alle Änderungen abwärtskompatibel bleiben. Die Abwärtskompatibilität stellt sicher, dass alle Funktionen, die auf dem Refactoring beruhen, für die Nutzerinnen und Nutzer weiterhin einwandfrei funktionieren, auch wenn der Code selbst noch in Arbeit ist. Das gilt jedoch nur so lange, bis unser Refactoring die Vertragsgrenze mit einer Datenbank oder einem Zustandsspeicher überschreitet. Das Expand-and-Contract-Muster allein reicht nicht aus, um Datenbanken im laufenden Betrieb sicher zu refaktorisieren, ohne dass Dienste oder Daten verloren gehen.

Kommen wir noch einmal auf das Beispiel aus Kapitel 9 zurück, in dem es darum ging, die Produkt-ID zu ändern, auf die in der Korbtabelle verwiesen wird. In diesem Szenario wollten wir von einer Produkt-ID zu einer anderen wechseln. Um dies zu erreichen, haben wir ein temporäres zweispaltiges System eingeführt, in dem beide IDs nebeneinander existieren, bis alle Kunden die neue ID vollständig übernommen haben.

Oberflächlich betrachtet mag dieser Ansatz narrensicher erscheinen. Wenn es jedoch um Datenbanken und kontinuierliche Bereitstellung geht, ...

Get Kontinuierliche Bereitstellung now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.