DevOps in der Datenbankentwicklung 1/3

Brauchen Sie DevOps?

 

Wenn Sie noch überlegen, ob DevOps für Ihr Unternehmen sinnvoll sein kann, stellen Sie sich einfach die folgenden Fragen:

  • Verlangt das höhere Management von Ihnen, Ihre Lieferfristen und Prozesse zu beschleunigen?
  • Kommt es in Entwicklung, Qualitätssicherung und Lieferung zu Verzögerungen?
  • Gibt es im Anwendungslebenszyklus viele manuelle Prozesse, die die Bereitstellungszeit verzögern?

 

Warum aber ist die Datenbankentwicklung langsamer?

Was steht der Datenbankentwicklung im Wege, zum Rest des Unternehmens aufholen zu können? Die Antwort liegt hier in der Natur von Datenbanken und den inhärenten Eigenheiten der Datenbankentwicklung: Bei der Entwicklung von Standardanwendungen haben Änderungen am Code einer Front- End-Anwendung meist weniger Konsequenzen, da die Anwendung, sollte etwas schieflaufen, meist problemlos auf einen vorherigen Build zurückgesetzt werden kann. Es mag zu einer kurzen Serviceunterbrechung kommen, das Risiko des Datenverlusts ist aber gewöhnlich gering.

Bei der Datenbankentwicklung hingegen führt kein Weg daran vorbei, den Status der Datenbank zu erhalten und deren Daten während der Codeänderungen zu schützen. Hierzu ist ein komplexes Scripting erforderlich, das auf dem aktuellen Datenbankstatus des jeweiligen Zeitpunkts basiert. Während Anwendungsentwickler also jederzeit zu einer früheren Version zurückkehren können, müssen Datenbankentwickler zur Zurücksetzung von Änderungen wesentlich mehr Schritte durchführen, im schlimmsten Fall gar die vollständige Datenbank wiederherstellen.

Anwendungsteams checken ihren Code meist nur ein, um eine Reihe automatisierter Prozesse zu starten: Kompilierung, Test, Prüfung, Staging, Bereitstellung. Die Änderungen werden automatisch in Testumgebungen und schließlich an die Produktion weitergeleitet, während sie die automatisierte Validierung durchlaufen. Sind aber zugleich auch Änderungen am Datenbankcode erforderlich, so muss das restliche Unternehmen warten, da die Prozesse auf dieser Ebene nach wie vor manuell durchgeführt werden.

 

Schnellere Prozesse bei niedrigeren Kosten ohne zusätzliches Risiko

Die Gründe für mehr Agilität sind die Reduzierung des Risikos, die Senkung der Kosten und schnellere Geschwindigkeiten. Dies sind auch die Gründe für die Automatisierung des Datenbankentwicklungszyklus.

Das beherrschende Thema der Datenbankentwicklung war immer der Kompromiss zwischen Geschwindigkeit und Qualität (bzw. Risiko). Zur Vermeidung von Risiken arbeiten Datenbankentwickler methodisch und sorgfältig, kontrollieren ein jedes Script, um Fehler auszuschließen.

Keine gute Methode, Kosten zu sparen oder die Geschwindigkeit zu erhöhen. Ganz zu schweigen von der Agilität und Wendigkeit des gesamten Business. Wenn Datenbankänderungen der Engpass sind und deren Verringerung als bester Schutz der Datenbank betrachtet wird, dann erreichen Unternehmen, die sich an Stabilität klammern, niemals wahre Agilität.

 

In den nächsten Blog werden wir uns die Frage stellen: Wie können die DevOps Datenbanktools zu einer Beschleunigung der Softwarebereitstellung beitragen?

Anonymous