Relationale Datenbanken beziehungsweise Datenbankmanagementsysteme sind so etwas wie Dinosaurier. Viele von ihnen, wie der Marktführer Db2 von IBM, wurden in den 1980er Jahren entwickelt und haben mittlerweile unzählige Aktualisierungen erhalten. Doch mit neueren Datenbanklösungen können sie in Bezug auf Veränderbarkeit und schnelle Deployments nicht mithalten. „Manch ein Kunde entscheidet sich daher für einen Wechsel des Datenbanksystems“, erklärt Ferdinand Prahst, IT-Consultant bei ITGAIN. „Dieser Transfer ist grundsätzlich möglich, jedoch immer mit einem großen Aufwand verbunden.“ Doch Prahst weiß auch: Es geht einfacher.
Unzuverlässige Tests
In der Regel besitzen Datenbanken drei Umgebungen, sogenannte Stages: Die Entwicklungsumgebung, die Testumgebung und die Produktionsumgebung.
Ein Entwickler erstellt beispielsweise für eine Software ein neues Feature. Hierzu benötigt er Datenbestände in der Entwicklung und zum darauffolgenden Test. Durch das Verwenden einer gemeinsamen Umgebung kann es vorkommen, dass Daten auch durch parallel stattfindende Entwicklungen und Tests verändert werden. „Um Tests wiederholbar und vergleichbar zu machen, brauchen die Entwickler unveränderte Daten. Diese aus der Produktionsumgebung zu generieren ist nahezu unmöglich“, so Prahst. Um Konsistenz zu gewährleisten, braucht jeder Entwickler eigene exklusive Testdaten, die er nach jedem Durchlauf wieder auf den Ausgangsdatenpunkt zurücksetzen kann. „Und hier kommt Docker ins Spiel“, sagt Prahst.
Mit Lösungen wie Docker lassen sich Datensätze aus großen Datenbanken agil testen."
FERDINAND PRAHST, TEAMLEITER IM BEREICH OPERATIONAL SERVICES
Einfach löschen und von vorn
Docker ist eine Containerplattform, mit der sich unter anderem spezielle Testumgebungen einrichten lassen. „Das Prinzip ist sehr einfach. Wir implementieren mit Docker in bestehenden Systemen kleinere, unabhängige Testumgebungen – sogenannte Container“, sagt Prahst. Diese enthalten Daten, mit denen außer dem Entwickler sonst niemand arbeitet. „Das macht die Ergebnisse vergleichbar.“ Auch die Handhabung ist einfacher: Ist der Testlauf beendet, muss der Entwickler nicht alle Daten zurücksetzen, sondern kann einfach den gesamten Container löschen, einen neuen Container erstellen und wieder von vorne beginnen.
„So können wir etwa die Daten aus der recht schwerfälligen Datenbankumgebung wie beispielsweise einer Db2-Einheit in einem agilen Testtool nutzen“, sagt Ferdinand Prahst. „Solche Lösungen bieten wir gerne im Rahmen von DevOps-Umstrukturierungen an. Bei Projekten also, in denen Entwickler und IT-Operatoren enger miteinander arbeiten.“
Viele große Finanzdienstleister oder Versicherer, die Unmengen von Daten auf Db2 LUW beziehungsweise ihrem Mainframe speichern und managen müssen, können von dieser Lösung profitieren. Gleichzeitig gilt: „Es muss für den Kunden passen“, sagt Prahst. „Nur Lösungen, die sich in die vorhandene Struktur der Kunden nahtlos einfügen lassen, sind Lösungen, die wir vorschlagen.“