Einschätzung des Aufwands für eine Datenbankmigration
So schätzen Sie den Aufwand für eine Datenbankmigration ein: Nachvervollständigung, Sperrdauer, Rollout und Rollback. „Eine Spalte hinzufügen“ entspricht einer Zeile SQL; die Schätzung bezieht sich auf die Sekunde.
„Spalte hinzufügen“ ist eine einzeilige Migration. Bei der Schätzung geht es nicht um die Spalte.
Bei Schemamigrationen gibt es zwei Zeitfaktoren. Der eine ist die SQL – in der Regel schnell, in der Regel mechanisch. Der andere ist der operative Zeitrahmen: Wie lange wird die Tabelle gesperrt, wie verhält sich der Vorgang bei gleichzeitigen Schreibvorgängen, wie lässt sich der Vorgang rückgängig machen, falls etwas schiefgeht, und welche Notfallmaßnahmen gibt es, falls die Ausführung länger dauert als das Bereitstellungsfenster? Das Team stimmt über die SQL-Anweisung ab, da diese im Ticket aufgeführt ist. Die eigentliche Arbeit findet im Rahmen des zweiten Zeitrahmens statt.
Auf einem kleinen Tisch sind die beiden Uhren identisch, und die Geschichte ist wirklich unbedeutend. Auf jedem Tisch, der von Bedeutung ist, ist dies jedoch nicht der Fall. Die Schätzung muss die Nachfüllung, die Einführungsstrategie und den Rollback berücksichtigen – alles Dinge, die jemand einstudiert haben muss, bevor die Bereitstellung auch nur in die Nähe der Produktionsumgebung gelangt.
Was in dem Raum gesagt wird
Backend: „Es ist nur ein ALTER, die Migration ist in einer Sekunde erledigt.“
SRE: „Auf der Auftragstabelle? Mit gesperrten Positionen? Um 15 Uhr?“
DBA: „Wie füllen wir bestehende Zeilen nach?“
SRE: „Wie sieht der Rollback aus, wenn die Bereitstellung auf halbem Weg fehlschlägt?“
Leitfrage: „Kann der Lesepfad es tolerieren, dass die Spalte eine Stunde lang den Wert „null“ aufweist?“
Fragen, die man sich vor der Stimmabgabe stellen sollte
- Wie groß ist die Tabelle – Tausende, Millionen oder Hunderte von Millionen Zeilen?
- Online-Migrations-Tool oder ALTER vor Ort?
- Nachverarbeitungsstrategie: synchron, gebündelter Auftrag, Dual-Write?
- Welche Funktion hat der Lesepfad während des Rollout-Fensters?
- Rollback: Nur vorwärtsgerichtet – oder können wir das Schema rückgängig machen?
- Hat jemand den Notfallplan für diese Migration bereits durchgespielt?
Wenn die eine Hälfte des Raums für „die SQL“ stimmt und die andere Hälfte für „die Einführung“, haben Sie kein Problem mit der Anzahl; Sie haben zwei Stories, die so tun, als wären sie eine. Teilen Sie es auf: Die Schemaänderung ist ein Ticket, der Plan für die Nachvervollständigung und die Einführung ist ein weiteres.
Schätzen Sie die Dauer der Einführung und der Rücknahme, nicht die des ALTER-Befehls. Das Risiko liegt bei der zweiten Zeitangabe.
Informationen zur systemübergreifenden Variante finden Sie unter Schätzung einer Datenmigration sowie unter den weiteren Beispielen für Schätzungen. Starten Sie eine kostenlose Planning-Poker-Sitzung, sobald der Rollout grob skizziert ist.