Die Leistungsfähigkeit von DevOps für die Datenbank Was ist Datenbank-DevOps?

Ein Gastbeitrag von Sascha Giese 3 min Lesedauer

Anbieter zum Thema

Warum gelingt es einigen Unternehmen, Datenbankbetrieb und Anwendungen hervorragend zu optimieren, während andere daran scheitern? Warum arbeiten manche Datenbankteams erfolgreich agil, während andere Monate brauchen eine Codezeile fertigzustellen? Was ist die Geheimzutat, die manche Datenbankteams smarter macht?

Bei Strategien zur Nutzung von DevOps-Prozessen für das Datenbankmanagement sollte Observability immer auch eine betriebliche Maßgabe sein.
Bei Strategien zur Nutzung von DevOps-Prozessen für das Datenbankmanagement sollte Observability immer auch eine betriebliche Maßgabe sein.
(Bild: © Asha Sreenivas - stock.adobe.com)

Schon lange versuchen führende Akteure in der Softwarebranche, DevOps zu definieren. Es gibt zwar eine Menge detailgenaue Definitionen von DevOps und unterschiedliche Vorstellungen davon, wie man DevOps richtig umsetzt, doch alle sind kontextspezifisch. Bevor sich Datenbank-DevOps definieren lassen, muss man aber verstehen, weshalb es in der DevOps-Community so unterschiedliche Ansichten dazu gibt, und was die Kultur und die Mentalität dahinter ausmacht.

Stark vereinfacht lässt sich sagen: DevOps basiert auf der Idee, sicherzustellen, dass Softwareentwicklungsteams und IT-Betriebsteams einheitlich und mit einem gemeinsamen Ziel arbeiten. Das bedeutet, aus der althergebrachten manuellen Systemadministration auszubrechen und selbst die Kontrolle über die zur Bereitstellung genutzte Infrastruktur, die Anwendungsbereitstellung und das Leistungsmonitoring zu übernehmen.

In den Anfängen von DevOps begannen Ingenieure damit, ihre Arbeit mit Tools wie Chef, Puppet und Ansible zu automatisieren. Heutzutage nutzen viele Unternehmen DevOps-Praktiken, um den Betrieb und die Pipeline der Anwendungsentwicklung positiv zu verändern.

Die meisten Top-Unternehmen geben an, eine holistische DevOps-Philosophie zu verfolgen, und versuchen sie unternehmensweit umzusetzen, indem sie Rollen und Funktionen im gesamten Entwicklungsprozess integrieren. Viele von ihnen übersehen dabei jedoch den Bereich, in dem Probleme am häufigsten auftreten und die größten Konsequenzen haben: die Datenbank.

Vorteile von Datenbank-DevOps

Anwendungsfälle, wie die Nutzung von DevOps-Methoden zur Automatisierung von Aufgaben wie Datenbankbereitstellung, Sicherungen, Workflowmanagement und CI/CD (Continuous Integration/Continuous Delivery) bieten Datenbankteams sowohl sofortige als auch langfristige Vorteile.

Eine auf DevOps basierende Datenbankkultur hilft außerdem allen involvierten Teams, mehr Kontrolle zu übernehmen. So können sie Engpässe im Datenbankcode reduzieren und DBAs ermutigen, schneller Innovationen zu schaffen, Fehler zu vermeiden und sich selbst zu übertreffen.

So nutzen Sie DevOps für die Datenbank

Im kostenlosen E-Book DevOps für die Datenbank liefert Autor Baron Schwartz beispielweise Beobachtungen und Einblicke zu den Vorteilen der DevOps-Nutzung aus erster Hand, die er in der Datenbank-Community gewonnen hat. Er beschreibt, auf welche sechs Bereiche sich Unternehmen aus der Datenbankperspektive konzentrieren sollten, wenn sie mit der Implementierung von DevOps-Praktiken beginnen:

  • 1. Grundlegende DevOps-Praktiken für den Infrastrukturbetrieb auf die Datenbank anwenden:
    Zu diesen Grundlagen gehören die automatisierte Bereitstellung, Konfiguration und Überwachung.
  • 2. Datenbankspezifische betriebliche Aufgaben automatisieren:
    Zu diesen Automatisierungsaufgaben gehören Backups, Wiederherstellungen, Upgrades und die Aktualisierung des Testdatensatzes von Datenbanken vor der Produktion.
  • 3. Versionskontrolle implementieren:
    Die Verwaltung von Datenbankschemata, Code und Datenmodellen – Tabellenstrukturen, gespeicherte Verfahrenscodes usw. – ähnlich wie Quellcode mithilfe der Versionskontrolle und „normalen“ Änderungskontrollprozessen in CI/CD-Pipelines.
  • 4. Bereitstellungen von Datenbankänderungen automatisieren:
    Die Nutzung von Skripts zur Datenbankautomatisierung und -migration statt manueller, zeitaufwändiger Datenbankbereitstellungen für Schemaänderungen (Migrationen) und Datentransformationen (Datenmigrationen).
  • 5. Die Entwickler einbeziehen:
    Leistung und Verfügbarkeit sind nicht nur die Aufgabe von DBAs. Die Entwickler müssen einbezogen werden und im Idealfall für die Leistung der Produktionsdatenbank ihrer Anwendungen verantwortlich und verfügbar sein.
  • 6. Sich wiederholende Aufgaben beenden:
    Datenbankadministratoren sollten keine sich wiederholenden Aufgaben erledigen müssen. Stattdessen sollten sie als Fachexperten die Engineering-Teams beraten oder Teil von ihnen sein, um die Produktivität zu maximieren.

Baron betont, dass diese sechs Bereiche zwar danach geordnet sind, wie leicht sie implementiert werden können, aber kein Reifegradmodell darstellen. DevOps ist ein Weg und kein Ziel, und Fortschritt ist nicht linear – man ist niemals „fertig“. Bei Datenbank-DevOps geht es darum, das zu tun, was in jeder individuellen Situation machbar und hilfreich ist.

Die Überschneidungen zwischen Datenbank-DevOps und Observability

Man sollte bei alledem nicht vergessen, dass die Strategien zur Nutzung von DevOps-Prozessen für Datenbankmanagement, Anwendungsänderungen, Anwendungsentwicklung und Wartung nicht in einem Vakuum stattfinden. Die Einführung von Observability als betriebliche Maßgabe kann und sollte unterstützen und beeinflussen, welche Vorteile DevOps nicht nur Datenbankadministrationsteams, sondern dem gesamten Unternehmen bringen kann.

Durch umfassendere Transparenz kann Observability viele der Einblicke bieten, die DBAs für ihre Arbeit benötigen, etwa beim Überwachen der Auswirkungen von Schemaänderungen auf Datenfluss und -herkunft, bei Aktualisierungen an Datentabellen und Datenverteilung, beim Prüfen des Anwendungscodes in der Quellkontrolle oder bei weiteren Optimierungen. Dazu kommen die Aufgaben, auf die sich andere Teams in derselben Umgebung konzentrieren. Die Implementierung von DevOps-Methoden für die Datenbank kann zusammen mit Observability völlig verändern, wie Datenbankteams und andere Teams Probleme erkennen und proaktiv kostspielige Ausfallzeiten und andere negative Auswirkungen auf das Geschäft vermeiden können. Alle Teams können dabei auf eine zentrale Übersicht zugreifen und gemeinsame Informationen für ihre Arbeit nutzen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Sascha Giese.
Sascha Giese.
(Bild: SolarWinds)

Über den Autor

Sascha Giese ist Head Geek bei SolarWinds.

(ID:49666511)