Database Change Management für Continuous

Werbung
Database Change
Management für
Continuous Delivery
Diana Lander und Andreas Falk
NovaTec Consulting GmbH
Die Vortragenden
Andreas Falk
Senior Consultant
NovaTec Consulting GmbH
Diana Lander
Consultant
NovaTec Consulting GmbH
Termindruck bewältigen!?
O Continuous Integration und Continuous Delivery!
Agenda
O Flyway (inkl. Demo)
O Problem und Lösung (inkl. Demo)
O Fazit und Ausblick
Flyway
O Tool zur automatisierten DB-Migration
O Findet Dateien mit speziellem Namen, die
den Migrationscode enthalten (SQL, Java)
O Ordnet sie aufsteigend nach dem Namen
O Identifiziert, welche Dateien noch nicht
ausgeführt wurden
O Führt diese Dateien automatisiert aus
http://www.flywaydb.org
Flyway Standardumfang
• Integration: API, Plugins
O Migration
• Metadatentabelle
Update von
Schema oder
Daten einer DB
O Artefakt
SQL-Skript oder
Java-Klasse
O Branch
Entwicklungspfad
• Checksummenvalidierung
• Unterstützung eines
linearen Branches
Demo
Continuous Delivery
mit Flyway
Ein Branch inklusive DB-Migration
Agenda
O Flyway (inkl. Demo)
O Problem und Lösung (inkl. Demo)
O Fazit und Ausblick
Das Problem
O Feature Branch
Entwicklung
aktueller
Features
O Bugfix Branch
Branch zur
Behebung von
Fehlern eines
Releases
Szenarien für Branching
O Support eines Produkts in einer Version X
und Behebung von Fehlern
O Übertragung von Bugfixes von einem BugfixBranch auf den Feature-Branch
O Kunde möchte auch neue Features erhalten
Die Lösung:
Erweiterung von Flyway
O Neue Metadatentabelle für den Branch, auf
dem man sich befindet
O Spezielle Artefakte zum Wechseln der
Branches / Ordner
O Durchlaufen mehrerer Ordner nacheinander,
um nach Migrationsartefakten zu suchen
Ausgangslage der Demo
Demo
Zusammenfassung Demo (1)
Zusammenfassung Demo (2)
O Startpunkt der Suche von Flyway ist der Ordner
R01_01.
O Das Java Artefakt
„V01_01_06__Pre_Update_To_2_0.java“ wird
zur Ausführung identifiziert und ausgeführt.
O Das SQL-Artefakt
„V02_00_06__Merge_To_Release_2_0.sql“ wird
zur Ausführung identifiziert und ausgeführt.
O Dieses Artefakt hat den Eintrag in der Tabelle
„release_verion_table“ auf „main“ gesetzt.
Zusammenfassung Demo (3)
Zusammenfassung Demo (4)
O Durch Umschalten des Ordners in der
Tabelle „release_version_table“ wird in den
Ordnern „R01_01“ und „main“ nach
Artefakten gesucht.
O Aufgrund der Benennung der Artefakte und
deren Sortierung werden insgesamt 4 SQL
und Java Artefakte ausgeführt.
O In der Konsolenausgabe sind mehrere
Iterationen für eine Migration zu sehen.
Zusammenfassung Branching
In A Nutshell (1)
O Migration wird bei jedem Kunden
O
O
O
O
O
automatisch vor Ort ausgeführt
Kein teures Migrationsteam
Geringere Fehleranfälligkeit
Anpassungsaufwand hat Entwicklung
erleichtert
Entwickler schreiben Skripte selbst
Continuous Delivery auf DB angekommen!
In A Nutshell (2)
O Ausblick
O Kontakt zur Flyway-Truppe
O Evtl. Standardfeature von Flyway
O Veröffentlichung eines Artikels
O Technischer Artikel auf NovaTec Blog
http://blog.novatec-gmbh.de/
O Spielwiese / Erweiterung inkl. Artefakte auf
http://www.novatec-gmbh.de/
Andreas Falk:
[email protected]
Diana Lander:
[email protected]
Herunterladen