Delphix Agile Data Platform: Datenbank-Sofortkopien in Selbstbedienung
Wir kopieren Daten, immer und immer wieder. Ein Entwickler möchte eine Änderung ausprobieren, ein Qualitätstest soll möglichst mit aktuellem Gesamtdatenbestand durchgeführt werden, die Revision muß nochmal den Stand der Anwendung und ihrer Daten von vor 6 Monaten prüfen, egal für welchen Zweck, wir benötigen immer wieder Kopien unserer Daten. Die Bereitstellung dieser Daten verschlingt abhängig von ihrer Größe entsprechend viel Zeit. Außerdem brauchen viele Kopien auch viel Platz. Hat man Zeit oder Platz nicht zur Verfügung, wird einfach eine bestehende aber ältere Kopie wiederverwendet oder stattdessen mit einem kleineren Testdatenbestand gearbeitet. Beides beeinträchtigt die Qualität des Testens.
In der Regel steht nur eine sehr begrenzte Anzahl von Testumgebungen zur Verfügung, welche eine aktuelle und vollständige Kopie der Produktionsdaten bieten – häufig nur eine einzige. Will ich diese nutzen, muß ich eine Nutzungszeit buchen, welche ich dann oft erst in einigen Wochen zugewiesen bekomme. Bis dahin muß mein Projekt warten.
Das erinnert an die Wartezeiten auf zusätzliche Server, deren Hardware-Lieferung, Softwareinstallation und -konfiguration. Der Prozess, einen Server bereitzustellen war vor 15 Jahren noch genauso zeit- und kostenintensiv wie heute die Bereitstellung der Daten zumeist noch ist. Dann kam die Servervirtualisierung: Der Wechsel von physischer Hardware zu virtuellen Maschinen brachte eine deutliche Erleichterung und Prozessbeschleunigung in der Bereitstellung von Servern. Dabei läßt ein sogenannter Hypervisor einen einzelnen physischen Server aussehen wie mehrere separate Server durch eine intelligente gemeinsame Nutzung der vorhandenen Hardware-Ressourcen wie CPU und Speicher. Eine virtuelle Maschine bereitzustellen erfordert nur Minuten im Gegensatz zum mehrtägigen Aufwand, einen neuen physischen Server einzurichten.
Datenvirtualisierung
Auf ähnliche Weise läßt sich auch die Bereitstellung von Daten beschleunigen. Wenn wir eine neue Kopie einer Datenbank – z. B. für Entwicklung oder Test – erstellen, dann sind zunächst alle Daten der Kopie identisch zur ursprünglichen DB. Erst im Laufe der Bearbeitung werden gewisse Daten geändert oder neue erzeugt. Aber der Großteil der Daten bleibt identisch. Dies ermöglicht doch – geeignete Technologie vorausgesetzt – dass dieselben Datenblöcke für mehrere Kopien gemeinsam verwendet werden können, als shared data blocks – ähnlich wie ein Hypervisor die Hardware-Ressourcen im Sharing für mehrere virtuelle Server verwendet.
Nur die von der jeweiligen Instanz individuell geänderten Datenblöcke müssen getrennt gespeichert werden (copy-on-write). Die Kombination aus shared Datenblöcken und individuell geänderten Datenblöcken lässt mehrere Kopien derselben Datenbank jeweils als eine vollständige separate Instanz erscheinen. Dabei verschlingt jede weitere Instanz nur einen Bruchteil des ursprünglichen Plattenplatzes, nämlich die Größe der individuell geänderten Daten – die bei der Instanzierung einer neuen Kopie ja noch gleich Null ist. Auf diese Weise dauert die Erstellung einer neuen Instanz selbst bei sehr großen Datenbanken nur noch Minuten statt diverser Stunden bis Tage.
Die Delphix Agile Data Platform liefert genau so einen Hypervisor für Daten, den Delphix DataVisor. Der DataVisor ist speicherneutral und auf jeder Speichervorrichtung sowie über diverse Speicherlösungen unterschiedlicher Anbieter hinweg einsetzbar – von der lokalen Disk über SAN und Flash zu Cloud-Speichern u.a.
Zu den Applikationsdaten gehören nicht nur in Datenbanken gespeicherte Daten sondern auch diverse Dateien verschiedener Formate. Der Delphix DataVisor kann daher auch die entsprechenden Dateien auf ähnliche Weise virtuell bereitstellen.
Mit Hilfe der Delphix Agile Data Platform können nun jedem Projekt und jedem Team die für seine Zwecke passenden Daten als virtuelle Daten zur Verfügung gestellt werden – in Minutenschnelle und ohne den mehrfachen Platz zu verbrauchen.
Funktionsweise
Die Delphix Agile Data Platform ist eine Applikation mit eigenständiger operativer Umgebung, welche als virtuelle Appliance geliefert wird. Delphix verwendet Standard-APIs, um sich mit physischen Quelldatenbanken zu verbinden, ihre Datenblöcke zu kopieren und eine „goldene Kopie“ zu erzeugen, die sich 20 und mehr virtuelle Umgebungen teilen können. Dabei nutzt Delphix intelligente Filterung und Komprimierung, um die Kopie einer Quelldatenbank auf bis zu 50% ihrer originalen Größe zu reduzieren. Die Kopie der Quelldatenbank wird in der Delphix Engine zusammen mit allen inkrementellen Updates gespeichert als sogenannte dSource nach Delphix Terminologie.
Fortwährende Synchronisation und Timeflow
Da die Erstellung einer virtuellen Datenkopie kaum noch Zeit und Platz beansprucht, spricht nichts dagegen, wesentlich häufiger eine neue Kopie mit aktuellen Daten anzufertigen, d. h. die Daten der virtuellen Kopie zu akualisieren.
Zu diesem Zweck zeichnet Delphix alle Veränderungen aus den Quellsystemen auf und integriert sie zu einer Live-Kollektion von Auszügen (Snapshots), die für die Erstellung von virtuellen Datenbank- und Anwendungskopien für Projektteams genutzt werden. Dieser Timeflow ermöglicht den Anwendern die Erstellung von Kopien von jedem beliebigen Zeitpunkt, etwa die Erstellung der Kopie einer CRM-Datenbank zum jetzigen Zeitpunkt, von einem bestimmten Zeitpunkt in der vergangenen Woche oder von ihrem vorherigen Release-Stand. Die Nutzung großer, umständlicher Tape- oder Disk-Backups ist nicht erforderlich.
Delphix hält die Synchronisation mit den Quellen aufrecht, basierend auf konfigurierbaren Strategien, zum Beispiel einmal täglich oder innerhalb von Sekunden nach der jeweils letzten Transaktion. Diese fortlaufende Aufzeichnung der Datei- und Logänderungen – des Timeflows – wird über ebenfalls konfigurierbare Regeln aufbewahrt, z. B. "hebe die letzten zwei Monate auf".
Von jedem beliebigen Zeitpunkt innerhalb des Aufbewahrungsfensters kann augenblicklich eine virtuelle Datenbank (in Delphix Terminologie eine VDB) bereitgestellt werden. VDBs werden vom selben Speicherplatz des Timeflows der dSource beliefert (shared storage), verbrauchen also keinen zusätzlichen Plattenplatz.
Mehrere VDBs können von beliebigen verschiedenen Zeitpunkten innerhalb des Timeflows sekundengenau erzeugt werden. Eine VDB kann also ein „live“ Abbild des jetzt aktuellen Stands der Daten enthalten, eine andere dagegen einen historischen Stand von Bedeutung, z. B. den Stand einen Tag vor Entdeckung eines Fehlers, eine Woche vor einem Systemupgrade oder die Daten vor einem Jahr auf Anfrage eines Compliance-Verfahrens.
Einmal erzeugt, ist jede VDB eine eigenständige und unabhängige Datenbank mit vollständigen Lese- und Schreibzugriffen. Änderungen an der VDB durch Benutzer oder Applikationen werden in neue, komprimierte Blöcke im Delphix Storage geschrieben. Von einer VDB können wiederum neue VDBs erzeugt werden, und die Daten innerhalb einer VDB können von der dSource oder der übergeordneten VDB neu geladen werden (refresh).
Applikations Live-Archiv
Neben Daten aus Datenbanken und Dateien kann Delphix auch Kopien der Binärdateien von Applikationen erstellen und aufbewahren. Mit allen drei Ressourcen kann Delphix ein Live-Archiv von kompletten Applikationen führen, welches eine Wiederherstellung der gesamten Applikation von einem beliebigen früheren Zeitpunkt ermöglicht, inklusive der Applikation, ihrer Konfiguration und ihrer Daten zu dem Zeitpunkt.
Zweiter Schritt: Selbstbedienung
Anwender aus Entwicklung und Test stellen ihre Anfragen nach Datenumgebungen an die Datenmanagementabteilung. Dort werden die Anfragen geprüft, priorisiert und ausgeführt. Mittels einer Datenvirtualisierung wie oben geschildert können Administratoren diese Anfragen schneller und zuverlässiger beantworten, doch sind DBAs häufig stark belastet und Anfragen mit höherer Priorität schieben andere Anfragen nach hinten.
Nehmen wir an, ein Entwickler möchte eine neue Funktion mit großem Datenbestand testen, um die Performanz zu messen und eventuell zu verbessern. Dazu muß er denselben Test mehrere Male mit verschiedenen Parametern ausführen, und vor jedem neuen Testlauf müssen die Daten wieder auf den originären Stand zurückgesetzt werden. Der Testlauf selbst dauert vielleicht weniger als eine Stunde, aber für das Zurücksetzen der Daten muß der Anwender jedes Mal wieder eine Anfrage an die Administration stellen und auf deren Ausführung warten.
Wenn sich ein Anwender für jede Datenmanagementoperation erst an die IT-Administration wenden muß, ist das ineffizient und kostet zuviel Zeit. Die gesamte Projektlaufzeit wird verlangsamt. Wünschenswert ist es daher, dass einfache Operationen auf zuvor definierten Umgebungen wie z. B. das Zurücksetzen (Reset) oder Aktualisieren (Refresh) der Daten vom Anwender selbst ausgelöst werden können. Dies führt zu einer Aufgabenteilung zwischen der IT-Infrastruktur und dem Management der Daten aus Anwendersicht.
Die IT-Administration behält volle Kontrolle über die Ressourcen und deren Verteilung, und kann eine definierte Datenumgebung (ein Template) einem Anwender zuordnen. Die Anwender haben dann die Möglichkeit, in Selbstbedienung die zugewiesenen Umgebungen zu nutzen, zu aktualisieren, zurückzusetzen oder mit anderen Anwendern zu teilen – ohne die physischen Ressourcen zu kennen, die ihre Daten bereitstellen.
Minutenschnell in Selbstbedienung
Delphix bietet eine einfach zu bedienende Web-Oberfläche, welche es allen Anwendern aus Entwicklung, Qualitätskontrolle, Analyse, etc. ermöglicht, aus den ihnen zugewiesenen Ressourcen ihre eigenen virtuellen Datenumgebungen zu erzeugen und aus Datensicht zu managen – ohne immer erst eine Anfrage an die IT-Administration stellen zu müssen.
RESTful API
Alle Funktionen der Delphix Engine können über ein dokumentiertes API-Set in bestehende Werkzeuge und Routinen zur automatischen Provisionierung von Anwendungsumgebungen integriert werden.
Enterprise & Cloud-„Ready“
Datenbanken enthalten meist auch vertrauliche Informationen, so dass Sicherheit und Integrität von großer Bedeutung sind. Sensible Informationen, wie z. B. Kreditkarten-Details, können in den virtuellen Kopien automatisch maskiert werden. Die Delphix-Software stellt auch eine End-to-End Integritätsprüfung sicher – vom Datenbank-Input bis hin zur Plattenspeicherung. Darüber hinaus erhält die Architektur die Kohärenz und Konsistenz für jede einzelne VDB (Virtual Database), sodass Veränderungen oder Löschungen sich nicht versehentlich über alle VDBs hinweg ausbreiten können. Delphix kann, etwa zur Sicherstellung einer hohen Verfügbarkeit, für die Offsite-Entwicklung oder Systemwiederherstellung einfach repliziert werden und wird außerdem von einer Vielzahl von Lösungen unterstützt.