Wie Testdatenmanagement und DevOps zueinander finden

success-2081167_1280Das neue Schlagwort in Zusammenhang mit DevOps ist „kontinuierlich“. Es gibt kontinuierliche Integration, kontinuierliche Lieferung, kontinuierliche Obsoleszenz und für viele Entwickler, den kontinuierlichen Verbrauch von Energy-Drinks. DevOps hat die Entwicklung radikal verändert und dieser Trend wird sich auch in absehbarer Zeit fortsetzen. Davon ist nicht zuletzt auch Actifio, Experte für die Virtualisierung von Datenkopien, überzeugt.

„Wer den Einstig in DevOps gerade umsetzt, dürfte sich früher oder später mit einigen Herausforderungen konfrontiert sehen. Die Implementierung des Testdatenmanagements gehört mit Sicherheit dazu“, so Thorsten Eckert, Sales Director DACH bei Actifio. Die wichtigsten fünf Punkte, die es hierbei zu beachten gilt:

  1. Benutzerakzeptanztests

Es gibt viele Schritte der Überprüfung, die bis zur Produktionsreife neuer Anwendungen erforderlich sind. Die Geschwindigkeit und Agilität, die mit DevOps einhergeht, bedeutet, dass schnellere und effizientere Testzyklen realisierbar sind. Bislang fand der kritischste Testprozess mit dem User-Acceptance-Testing (UAT), also den Benutzerakzeptanztests statt. Diese Tests erfolgen jedoch so spät im Zyklus, dass das Auffinden von Programmierfehlern und deren Behebung („Bugs und „Fixes“ im Programmierer-Englisch) die Entwicklungszeiten erheblich verlängern können.

Als bessere Strategie hat es sich mittlerweile erwiesen, möglichst früh bereits gründlich zu testen oder nach dem „Shift Left“-Prinzip vorzugehen und betriebliche Anforderungen früher zu berücksichtigen und zu testen. Durch umfassendere Tests in einem früheren Stadium lassen sich Bugs effektiv finden und beheben, bevor das UAT stattfindet. Der Schlüssel für eine verbessertes UAT ist daher die Möglichkeit, früher im Zyklus auf Vollproduktionsdatensätzen mit nahezu produktiver Leistung zu testen.

  1. Unterstützung sehr großer Datenbanken

Viele Unternehmen haben riesige Datenbanken. Entwicklungsteams werden oft mit dem Erstellen von Anwendungen beauftragt, die diese massiven Datenkonstrukte unterstützen sollen. Die Herausforderung besteht darin, dass es schwierig oder sogar unmöglich ist, Testkopien dieser kritischen Datenbestände rechtzeitig zur Verfügung zu stellen.

Infolgedessen erhalten viele Entwickler nur Zugriff auf eine Teilmenge der benötigten Datenbanken. Während dies aus betrieblicher Perspektive und hinsichtlich Speicherbedarf vorteilhaft sein mag, kann es die Effektivität sowohl der Entwicklung als auch des Tests einschränken. Dies liegt daran, dass die Teams einen abgespeckten Datensatz verwenden, der nicht die tatsächlichen Produktionsdaten reflektiert. Eine optimale Testdatenmanagement-Strategie hingegen, ermöglicht es Entwicklern, bei Bedarf auf einfache Weise Kopien von riesigen Produktionsdatenbanken zu generieren.

  1. Self-Service für Entwickler

Um den Nutzen einer agilen Entwicklung gerecht zu werden, benötigen die Entwickler schnell und effizient Zugang zu Datenbank- und Entwicklungsressourcen. Während für die Datensicherheit und Kontrolle über die Daten konsistente Prozesse entscheidend sind, können diese Prozesse Verzögerungen bei der Bereitstellung oder Aktualisierung von Entwicklungsumgebungen verursachen. Dadurch wird die Produktivität der Entwickler negativ beeinflusst.

Im Rahmen der Realisierung einer Self-Service-Infrastruktur geht es daher auch um die Automatisierung der Erstellung von Entwicklungsumgebungen sowie der Erstellung und Pflege von Testdaten – einschließlich Datensicherheit und -kontrolle. Dies bedeutet, dass autorisierte Entwickler die Möglichkeit haben sollten, Kopien aller erforderlichen Datenbanken auf einfache Weise bereitzustellen und zu aktualisieren, ohne dass diese Daten Risiken ausgesetzt werden.

  1. Integration mit DevOps-Tools

Mittlerweile steht eine Vielzahl von Open-Source- und Closed-Source-Tools zur Verfügung, um DevOps umzusetzen. Das Angebot an Lösungen ist im „Periodensystem der DevOps-Tools“ gut veranschaulicht. Diese Angebote können eine Reihe von typischen Funktionen umfassen, wie etwa Repository-Management, automatisierte Tests, Sicherheit, Umgebungsorchestrierung und vieles mehr.

Mit DevOps-Tools lässt sich die Entwicklung erheblich automatisieren und rationalisieren. Die Tools müssen aber in einer Komplettlösung integriert sein, die den gesamten Prozess vereinfacht. Diese Integrationen werden durch APIs (Application Programming Interfaces) erreicht. Die in Frage kommende API sollte sorgfältig in Augenschein genommen werden, um sicherzustellen, dass sie ein umfassendes Feature-Set bietet. Dabei gilt es auch zu bedenken, wie sich die Bereitstellung und Abbildung von Testdaten automatisieren lässt.

  1. Breitere gefasste Geschäftsanforderungen

Bei der Umsetzung von DevOps sollten schließlich auch andere verwandte Geschäftsprozesse wie Datensicherung und Disaster Recovery berücksichtigt werden. In der Regel besteht hierfür im Unternehmen bereits ein gereifter, zuverlässiger Prozess, der jedoch eher traditionelle Anwendungen adressiert als eine moderne, DevOps-optimierte Entwicklungsumgebung. Sind diese Schutzstrategien dafür gleichermaßen geeignet? Idealerweise sollten Datensicherung und Datenschutz in den DevOps-Prozess miteinfließen, was wiederum für eine Lösung spricht, in der die nötige Technologie von Haus aus integriert ist.

Zusammenfassend lässt sich sagen, dass die Implementierung von DevOps-Prozessen für Unternehmen aller Größenordnungen einige Herausforderungen mit sich bringt. Das Testdatenmanagement ist ein Teil des Problems, aber die Auswirkungen können sich aufgrund der großen Datenmengen potenzieren.

„Die Berücksichtigung dieser fünf Punkte in der #DevOps-Strategie zu einem möglichst frühen Zeitpunkt kann den Prozess erheblich rationalisieren und zukünftige Fallstricke vermeiden“, erklärt Thorsten Eckert von #Actifio. „Beim Thema Testdatenmanagement lohnt es sich, über #Copy-Data-Virtualisierung und Data-as-a-Service nachzudenken, um diesen entscheidenden Prozess vollständig zu automatisieren.“

#Netzpalaver