Einführung in Datenbank-DevOps

Einführung in Datenbank-DevOps

  • ITOps & DevOps
6 Minuten Lesezeit Aktualisiert Nov 9, 2021

Auf einen Blick: Datenbank-DevOps steigert die Effizienz, indem es das Datenbankmanagement in das DevOps-Framework integriert, mit Fokus auf Automatisierung und Best Practices. Ziel ist es, die Quellcode-Kontrolle zu zentralisieren und mit CI/CD-Prozessen zu synchronisieren, um häufige Herausforderungen bei der Datenbankbereitstellung anzugehen.

  • Über 90 % der Stakeholder wollen die Datenbankbereitstellung beschleunigen.
  • Best Practices umfassen die Übernahme agiler Prinzipien und die Automatisierung von sich wiederholenden Aufgaben.

Datenbank-DevOps ist ein aufkommendes Gebiet der DevOps-Methodik. Werfen wir einen Blick auf Datenbankmanagement und was passiert, wenn man DevOps-Konzepte anwendet.

DevOps für Datenbanken?

DevOps ist (offiziell) das bevorzugte Softwareentwicklungs-Lifecycle (SDLC)-Framework für die Anwendungsentwicklung in den letzten Jahren. Kontinuierlicher Betrieb und Automatisierung haben sich als zentrales Merkmal der DevOps-Philosophie etabliert, wie sie in erfolgreichen DevOps-Umgebungen praktiziert wird. Dennoch haben die Prinzipien von Kontinuität und Automatisierung nicht alle Aspekte von Softwareanwendungen vollständig abgedeckt. Das laufende Management, die Veränderung, Aktualisierungen, Entwicklung und Verarbeitung von Datenbank (Code) hat sich für viele DevOps-Organisationen als Engpass erwiesen. Dies hat Ingenieure gezwungen, unzählige Stunden in Datenbankentwicklungs-Überarbeitungen zu investieren, die kontinuierliche Release-Zyklen unterstützen, wie es für eine optimierte DevOps-SDLC-Pipeline erwartet wird. Da Datenbankänderungen und -entwicklung als einer der riskantesten und langsamsten Prozesse des SDLC gelten, gilt die Anwendung der DevOps-Prinzipien für kontinuierliche Operationen und Automatisierung speziell für die Entwicklung von Datenbankcodes als potenzielle Lösung für das Datenbankproblem. Laut einem aktuellen Forschungsbericht:

  • Über 90 % der Anwendungsbeteiligten arbeiten daran, Datenbankbereitstellungs- und -managementverfahren zu beschleunigen.
  • Mehr als die Hälfte aller Anwendungsänderungen erfordert zudem Änderungen am entsprechenden Datenbankcode.

Datenbankherausforderungen in DevOps

Bevor wir besprechen, wie Datenbank-DevOps die DevOps SDLC-Pipeline effizient gestalten kann, wollen wir die datenbankspezifischen Herausforderungen betrachten, denen DevOps-Organisationen gegenüberstehen:

  • Manuelle Änderungen. Traditionelles Datenbankmanagement folgt manuellen Prozessen wie Code-Reviews und -Genehmigungen – all das verzögert den Release-Zyklus.
  • Datenbereitstellung. Aufgrund von Sicherheits- und regulatorischen Einschränkungen sind Produktionsdaten oft nicht verfügbar, um frühe Anwendungsentwicklungen zu testen. Die Daten werden daher verarbeitet und verschlüsselt, um die erforderlichen regulatorischen Anforderungen zu erfüllen.
  • CI/CD für Datenbanken. Die Datenpersistenz kann nicht auf die gleiche Weise aufrechterhalten werden wie die Code-Persistenz bei einer Continuous Integration/Continuous Deployment (CI/CD)-Pipeline. Die kontinuierliche Integration und Bereitstellung neuer Datenbankversionen muss die gemeinsame Struktur und das Schema der Datenbanken respektieren – genau deshalb wird manuelles Eingreifen notwendig.
  • Integrationsherausforderungen. Die schiere Vielfalt an Werkzeugen und architektonischen Variationen kann es erschweren, dass Datenbanksysteme kohärent funktionieren. Der Mangel an Standardisierung bedeutet, dass ein DevOps-Team kontinuierliche und automatisierte Infrastrukturoperationen für die Bereitstellung und Verwaltung von Datenbanksystemen nicht vollständig verfolgen kann.

Und dann gibt es noch eine größere, schwerer zu bewältigende Herausforderung: unzureichende DevOps-Aufmerksamkeit. Viele reale DevOps-Implementierungen haben es nicht geschafft, Datenbank- und Anwendungsentwicklungsprozesse in eine einheitliche und ganzheitliche SDLC-Rahmenrichtlinie zu integrieren. Datenbankmanagementprozesse haben den traditionellen Weg fortgesetzt, und das zunehmende Ausmaß der Datenbankänderungen hat es Ingenieuren erschwert, Datenbankentwicklungen mit dem Rest der Anwendungsentwicklung zu standardisieren und zu koordinieren. (Beobachten, wie diese Herausforderungen zunehmen, wenn die Datenspeicherung zunimmt.)

Der Datenbank-DevOps-Prozess

Was ist Datenbank-DevOps? Ein Prozess

Schauen wir uns nun die Hauptaufgaben im Datenbank-DevOps an, die den Prozess tatsächlich ähnlich machen wie die Einführung des DevOps-Frameworks für Anwendungscode:

1. Quellcode-Kontrolle zentralisieren

Verwenden Sie ein zentralisiertes Versionskontrollsystem, in dem der gesamte Datenbankcode gespeichert, zusammengeführt und modifiziert wird. Das Speichern statischer Daten, Skripte und Konfigurationsdateien in einem einheitlichen Quellcodesystem erleichtert das Rückgängigmachen und Datenbankcodeänderungen mit der Anwendungsentwicklung nach einem CI/CD-Ansatz zu synchronisieren. (Erfahren Sie mehr über CI/CD.)

2. Synchronisieren mit CI/CD

Automatisierung von Build-Operationen, die parallel zu Anwendungsreleases laufen. Dies erleichtert die Koordination des Anwendungs- und Datenbankcode-Deployment-Prozesses. Der Datenbankcode wird getestet und aktualisiert, während eine neue Software-Build-Integration stattfindet, entsprechend den zugrundeliegenden Datenbankabhängigkeiten.

3. Testen & überwachen

Der CI/CD-Ansatz mit einem zentralisierten Versionskontrollsystem für Datenbank- und Anwendungscode erleichtert die Identifizierung von Datenbankproblemen jedes Mal, wenn ein neuer Build eingecheckt und ins Repository kompiliert wird.

  • Entwickler können Probleme frühzeitig im SDLC-Lebenszyklus erkennen und beheben, der auf kontinuierliche Bereitstellungs- und Release-Zyklen eines schnelllebigen DevOps-Frameworks folgt.
  • Im Gegensatz dazu erfordern traditionelle Datenbankverwaltungsoperationen langsame und manuelle Überprüfungs-, Test- und Genehmigungsprozesse für den entsprechenden Datenbankcode.

Best Practices für Datenbank-DevOps

Weitere Best Practices, die mit dem DevOps-Framework übereinstimmen:

  • Übernehmen Sie die DevOps- und Agile-Prinzipien, kleine, inkrementelle und häufige Änderungen am Datenbankcode zu schreiben. Kleine Änderungen lassen sich leichter rückgängig machen und potenzielle Fehler frühzeitig im SDLC-Prozess erkennen.
  • Bei jeder schrittweisen Änderung überwachen und verwalten Sie Abhängigkeiten. Verfolgen Sie bei der Datenbankentwicklung einen microservices-basierten Ansatz.
  • Übernehmen Sie die schnelle Rückkopplungsschleife , ähnlich wie beim Entwicklungsprozess von Anwendungscodes. Kritisches Feedback kann jedoch in der Flut an Logmetriken, Daten und Warnungen an jedem Knoten des Netzwerks verborgen sein.
  • Verfolgen Sie jede Änderung am Datenbankcode. Testen Sie früh und häufig, und priorisieren Sie die Leistung der Kennzahlen basierend auf der Geschäftsauswirkung und der Nutzererfahrung.
  • Richten Sie die Testumgebung so ein, dass sie reale Anwendungsfälle repliziert. Richten Sie eine Produktionsumgebung ein, um Tests zu etablieren, die die Zuverlässigkeit der Datenbank gewährleisten.
  • Automatisiert so viel wie möglich. Identifiziert wiederholende und vorhersehbare Datenbankverwaltungsaufgaben und schreibt Skripte, die den Datenbankcode aktualisieren, wenn ein neuer Build am Continuous Integration Server kompiliert wird.

Abschließend ist zu beachten, dass jede DevOps-Implementierung einzigartig für die Organisation ist, die das Framework adoptiert. Datenbank-DevOps kann konzeptionell mehrere Richtlinien aus dem Anwendungscode-DevOps-Playbook übernehmen und die Entwicklung und Verwaltung von Datenbankcodes mit dem Anwendungscode integrieren, um ähnliche SDLC-Leistungs- und Effizienzsteigerungen zu erzielen.

Verwandte Literatur

DevOps-Leitfaden

  1. Was ist DevOps? Eine umfassende Einführung
  2. Eine kurze Geschichte von DevOps
  3. Einführung in die DevOps-Architektur
  4. Automatisierung in DevOps: Warum und wie man DevOps-Praktiken automatisiert
  5. Was ist CI/CD? Kontinuierliche Integration und kontinuierliche Lieferung erklärt
  6. Wie man eine CI/CD-Pipeline mit Jenkins aufbaut
  7. DevOps-Metriken zur Optimierung von CI/CD-Pipelines
  8. Kontinuierliche Liefermetriken
  9. Ist Continuous Integration in Continuous Deployment ein Fortschritt – oder nicht?
  10. Unterschiede zwischen Continuous Integration (CI), Delivery (CD) und Deployment
  11. Quellcode und Versionskontrolle in DevOps
  12. Was ist kontinuierliche Testung?
  13. Testautomatisierungs-Frameworks: Der ultimative Leitfaden
  14. Release Management in DevOps
  15. Erklärt: Monitoring & Telemetrie in DevOps
  16. Anwendungs-Leistungsmanagement in DevOps
  17. DevOps-Orchestrierung im SDLC
  18. Einführung in Datenbank-DevOps
  19. Die Rolle der Microservices in DevOps
  20. Die Rolle der Virtualisierung in DevOps
  21. Container & DevOps: Wie Container in DevOps-Lieferpipelines passen
  22. Was ist eine Containerpipeline?
  23. Was ist eine DevOps-Toolchain?
  24. Verwaltung von Containern und Code für DevOps
  25. Die Rolle von Agile in DevOps
  26. Die Rolle der Cloud in DevOps
  27. Was ist FinDevOps?
  28. Top-DevOps-Trends im Jahr 2022
  29. DevOps-Werte & Prinzipien
  30. DevOps-Kennzahlen und KPIs
  31. DevOps-Ratschläge für kleine, mittlere und große Organisationen
  32. DevOps-Teamstruktur
  33. Top-DevOps-Bücher, die man heute lesen sollte
  34. Buchrezension von The Phoenix Project: DevOps For Everyone
  35. DevOps-Influencer: 11 DevOps-Experten, denen Sie auf Twitter folgen können
  36. GitHub, GitLab, Bitbucket & Azure DevOps: Was ist der Unterschied?
  37. Best Practices: Wie man Anwendungen für Kubernetes architekt
  38. Konfigurationsmanagement in DevOps
  39. DevOps-Verzweigungsstrategien erklärt
  40. DevOps-Jobbezeichnungen, Rollen und Verantwortlichkeiten
  41. Testen in DevOps: Konzepte, Best Practices und mehr
  42. Der vollständige DevOps-Zertifizierungsleitfaden für 2022
  43. Was ist das Kubernetes-Operator-Muster?

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus ITOps & DevOps

Abonnieren Sie The Brief

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Danke

Sie haben The Brief abonniert
Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.