Für die Verwaltung von Datenbankmanagementsystemen nach dem DevOps-Prinzip gibt es viele Migrations- und Versionskontroll-Tools, doch die Suche nach der perfekten Lösung ist oft schwierig. Von elementarer Bedeutung sind nicht nur die Funktionsvielfalt und ein breites Portfolio an unterstützten Technologien, sondern auch Flexibilität und Usability. [...]
1. Flexibilität ist das A und O
Jedes IT-Team hat eigene Prozesse und Vorgehensweisen bei Datenbankänderungen, besonders wenn sie nach dem DevOps-Prinzip arbeiten. Ein gutes DBMS-Tool (Datenbankmanagementsystem) sollte daher nicht einen festen Workflow vorgeben, sondern sich anpassen lassen; gleichzeitig sollte es mit zukünftigen Anforderungen wachsen können. Die Unterstützung unterschiedlicher Deployment-Ansätze bieten dafür die Grundlage: Bei einem skriptbasierten Ansatz versionieren Datenbankadministratoren zum Beispiel Änderungen als Skripte, die in vordefinierter Reihenfolge ausgeführt werden. Er ist ideal für Teams, die Wert auf lückenlose Nachvollziehbarkeit legen. Manche Unternehmen bevorzugen eher einen statusbasierten Ansatz, bei dem der gewünschte Zielzustand der Datenbank beschrieben wird und das System die notwendigen Änderungen automatisch ableitet.
2. Support für native Datenbanksprachen
Viele DBMS-Tools verwenden für Migrationen proprietäre domänenspezifische Sprachen (DSLs). Besser sind Versionskontroll- und Datenbankmigrationslösungen, die Skripte in der nativen Programmiersprache der Datenbank unterstützen. Auf diese Weise haben Teams eine deutlich niedrigere Einstiegshürde und müssen nicht eine zusätzliche DSL lernen. Auch aufwendige Überprüfungen, ob die Übersetzung von der nativen Datenbanksprache in eine DSL unbeabsichtigte Änderungen verursacht hat, entfallen. Gleichzeitig sollte ein DBMS-Tool neben Abfragesprachen wie SQL auch Programmiersprachen wie Java unterstützen, um komplexe Datenbankänderungen umzusetzen. So können Teams die passende Sprache für den jeweiligen Task wählen.
3. Elaborierte Funktionen für präzise Änderungen
Um komplexe Datenbankänderungen und Datenverschiebungen präzise umzusetzen, sind umfangreiche Funktionen und integrierte Kontrollpunkte erforderlich. Ein gutes DBMS-Tool sollte daher die Möglichkeit bieten, Datenbankschemata, Snapshots und statische Daten schnell zu vergleichen und daraus sowohl Deployment- als auch Undo-Skripte zu erzeugen. Wichtig ist zudem, dass es Änderungen stets in der richtigen Abhängigkeitsreihenfolge ausführt. Eine umfassende Unterstützung verschiedener Datenbankobjekte erhöht in diesem Zusammenhang die Skalierbarkeit und Flexibilität. Idealerweise sollte das Tool überdies Migrationsskripte automatisch generieren, um Zeit zu sparen und die Zuverlässigkeit von Datenbank-Deployments zu erhöhen.
4. Unterstützung agiler Workflows
Die Unterstützung agiler Workflows über den gesamten Datenbank-DevOps-Lebenszyklus hinweg ist ebenfalls ein Qualitätsmerkmal guter DBMS-Tools. Die Lösung sollte Zusammenarbeit, teamweite Nachverfolgung von Änderungen und kurze Feedbackzyklen ermöglichen. Dazu gehört unter anderem, dass sie eine Objekt-Historie bereitstellt. Darüber hinaus sollte ein Versionskontroll- und Datenbankmigrations-Tool automatisierte Unit- und Integrationstests in CI/CD-Pipelines unterstützen und Qualitätsprüfungen bereitstellen, um die Zuverlässigkeit zu erhöhen und Risiken zu minimieren. Self-Service-Provisionierung für Testdaten erleichtert paralleles Testen, verkürzt Feedbackzyklen und ermöglicht eine frühzeitige Fehlererkennung. Für das Release-Management empfiehlt sich die Unterstützung von Workflows für Benutzerakzeptanztests und fachliche Abnahmen in Bereichen wie Sicherheit und Performance sowie die Möglichkeit bedarfsgesteuerter Deployments. Ergänzende Funktionen wie Drift Detection, also die Erkennung von Abweichungen zwischen Soll- und Ist-Zustand der Datenbank, oder Dry Run, also die Simulation eines Deployments ohne tatsächliche Ausführung, runden ein gutes DBMS-Tool ab.
5. Benutzerfreundlichkeit spart Zeit und Geld
Leider sind viele Datenbankmanagementsysteme nicht besonders einfach zu bedienen. Gute DBMS-Tools bieten daher intuitive Benutzeroberflächen, sodass Datenbank-Teams ohne lange Einarbeitungszeit starten können. Auch das CoC-Prinzip (Convention over Configuration) ist bei Versionskontroll- und Datenbankmigrations-Tools wünschenswert, sodass die Nutzer nicht jede kleine Einstellung explizit konfigurieren müssen. Stattdessen verwenden CoC unterstützende Tools gängige Best Practices, bietet aber die Möglichkeit, individuell nachzujustieren. So können Datenbank-Teams schnell durchstarten, vermeiden anfänglich Konfigurationsfehler und passen bei Bedarf ihr Tool exakt den eigenen Bedürfnissen an.
Oliver Stein ist Geschäftsführer DACH bei Redgate. (c) Redgate
„Die schiere Anzahl an unterschiedlichen DBMS-Tools ist gewaltig. Komplettlösungen, die alles Notwendige integrieren, suchen Unternehmen allerdings oft vergebens“, erklärt Oliver Stein, Geschäftsführer DACH bei Redgate. „Die Folge ist ein großer Flickenteppich an Einzellösungen, die mehr Aufwand verursachen, als sie reduzieren. Und selbst dann fehlt oft die Hälfte an Funktionen oder die Nutzerfreundlichkeit lässt zu wünschen übrig. Unternehmen sollten sich daher nach einer flexiblen, ganzheitlichen und individuell skalierbaren Versionskontroll- und Datenbankmigrations-Lösung umschauen, die den gesamten Database-DevOps-Lebenszyklus abdecken.“

Be the first to comment