Version 1.0
lecture: Datenbank-Release-Management mit PostgreSQL und Ruby-on-Rails
Ein GIT für die Datenbank – geht das?
Viele mit Ruby-on-Rails und PostgreSQL entwickelte Webanwendungen wie Content-Management-Systeme oder Shop-Systeme benötigen oft komplexe Datenbankmodelle mit umfangreichen Abhängigkeiten. Gleichzeitig ist häufig ein Release-Management der Datenbank erwünscht, um Inhalte und Shop-Funktionen im Voraus zu erstellen und einen Test- und Abnahmeprozess zu ermöglichen. Es wird eine Lösung vorgestellt, die der Basisfunktionalität eines Source-Control-Systems wie GIT ähnelt. Releases können – ohne die Live-Prozesse zu stören – mit dem Produktionscode als Preview angeschaut und überprüft werden. Es sind auch mehrere, gleichzeitig existierende Releases möglich, die zusammengeführt werden können.
Viele mit Ruby-on-Rails und PostgreSQL entwickelte Webanwendungen wie Content-Management-Systeme oder Shop-Systeme benötigen oft komplexe Datenbankmodelle mit umfangreichen Abhängigkeiten. Gleichzeitig ist häufig ein Release-Management der Datenbank erwünscht, um Inhalte und Shop-Funktionen im Voraus zu erstellen und einen Test- und Abnahmeprozess zu ermöglichen. Gängige Lösungen versehen hierfür einzelne Datenbankmodelle z. B. mit Attributen wie Gültigkeitszeiträume oder Release-Status, oder sie verwenden komplett getrennte Systeme für Preview- und Live-Umgebungen. Die Handhabung solcher Attribute kann bei umfangreichen Datenbanken sehr komplex werden. Getrennte Systeme erhöhen den Ressourcenbedarf einer Anwendung stark und Previews werden dabei nicht auf dem eigentlichen Live-System geprüft.
Unsere Lösung ähnelt der Basisfunktionalität eines Source-Control-Systems wie GIT. So wie GIT-Benutzer mit Commits arbeiten können, kann man in unserem System mit Releases – ein Satz von Änderungen, Einfügungen und Löschungen in der Datenbank – arbeiten. Erweiterungen der Datenbank müssen das Release-Management nicht speziell berücksichtigen, da es als eigenständiges Modul implementiert ist.
Releases können – ohne die Live-Prozesse zu stören – mit dem Produktionscode als Preview angeschaut und geprüft werden. Vollständige Bestellprozesse können damit z. B. in einem Shop auf dem Live-System getestet werden. Es sind auch mehrere, gleichzeitig existierende Releases möglich, die zusammengeführt werden können. Manuelle Konfliktbehebung ist dann nur bei gleichzeitiger Änderung von Daten eines Objekts notwendig.
Info
Day:
2014-08-24
Start time:
14:45
Duration:
00:40
Room:
RedFrogConf (C118)
Track:
RedFrogConf (Ruby)
Language:
de
Links:
Feedback
Click here to let us know how you liked this event.
Concurrent events
Speakers
Frank Lancaster |