Dieses Prinzip im Bereich „Operative Exzellenz“ des Google Cloud-Architektur-Frameworks enthält Empfehlungen zur Automatisierung und Verwaltung von Änderungen für Ihre Cloud-Arbeitslasten. Dazu gehört die Implementierung von Infrastruktur als Code (IaC), die Festlegung von Standardverfahren, die Implementierung eines strukturierten Änderungsmanagementprozesses und die Verwendung von Automatisierung und Orchestrierung.
Grundsatzübersicht
Änderungsmanagement und Automatisierung spielen eine entscheidende Rolle für einen reibungslosen und kontrollierten Übergang in Cloud-Umgebungen. Für eine effektive Änderungsverwaltung müssen Sie Strategien und Best Practices anwenden, die Unterbrechungen minimieren und dafür sorgen, dass Änderungen nahtlos in die vorhandenen Systeme integriert werden.
Effektives Änderungsmanagement und Automatisierung umfassen die folgenden grundlegenden Elemente:
- Änderungsgovernance: Legen Sie klare Richtlinien und Verfahren für das Änderungsmanagement fest, einschließlich Genehmigungsverfahren und Kommunikationsplänen.
- Risikobewertung: Identifizierung potenzieller Risiken im Zusammenhang mit Änderungen und Minderung dieser Risiken durch Risikomanagementtechniken.
- Tests und Validierung: Änderungen müssen gründlich getestet werden, um sicherzustellen, dass sie die funktionalen und Leistungsanforderungen erfüllen und potenzielle Rückschritte minimieren.
- Kontrollierte Bereitstellung: Änderungen werden kontrolliert implementiert, um einen reibungslosen Übergang der Nutzer in die neue Umgebung zu ermöglichen. Bei Bedarf können sie nahtlos rückgängig gemacht werden.
Diese grundlegenden Elemente tragen dazu bei, die Auswirkungen von Änderungen zu minimieren und dafür zu sorgen, dass sie sich positiv auf den Geschäftsbetrieb auswirken. Diese Elemente werden durch die Fokusbereiche der Betriebsbereitschaft in Bezug auf Prozesse, Tools und Governance dargestellt.
Empfehlungen
Beachten Sie die Empfehlungen in den folgenden Abschnitten, um Änderungen zu automatisieren und zu verwalten. Jede Empfehlung in diesem Dokument ist für mindestens einen der Schwerpunktbereiche der Betriebsbereitschaft relevant.
IaC verwenden
Infrastructure as Code (IaC) ist ein transformativer Ansatz für die Verwaltung von Cloud-Infrastrukturen. Mit Tools wie Terraform können Sie die Cloud-Infrastruktur deklarativ definieren und verwalten. Mit IaC können Sie für Konsistenz, Wiederholbarkeit und eine vereinfachte Änderungsverwaltung sorgen. Außerdem ermöglicht es schnellere und zuverlässigere Bereitstellungen. Diese Empfehlung ist für die folgenden Schwerpunktbereiche der Betriebsbereitschaft relevant: Prozesse und Tools.
Im Folgenden sind die wichtigsten Vorteile der Verwendung des IaC-Ansatzes für Ihre Cloud-Bereitstellungen aufgeführt:
- Lesbare Ressourcenkonfigurationen: Mit dem IaC-Ansatz können Sie Ihre Cloud-Infrastrukturressourcen in einem für Menschen lesbaren Format wie JSON oder YAML deklarieren. Infrastrukturadministratoren und -betreiber können die Infrastruktur leicht verstehen und ändern sowie mit anderen zusammenarbeiten.
- Konsistenz und Wiederholbarkeit: IaC ermöglicht Konsistenz und Wiederholbarkeit bei Ihren Infrastrukturbereitstellungen. So können Sie dafür sorgen, dass Ihre Infrastruktur jedes Mal auf die gleiche Weise bereitgestellt und konfiguriert wird, unabhängig davon, wer die Bereitstellung durchführt. Dieser Ansatz trägt dazu bei, Fehler zu reduzieren und dafür zu sorgen, dass sich Ihre Infrastruktur immer in einem bekannten Zustand befindet.
- Verantwortlichkeit und vereinfachte Fehlerbehebung: Der IaC-Ansatz trägt dazu bei, die Verantwortlichkeit zu verbessern und die Fehlerbehebung zu vereinfachen. Wenn Sie Ihren IaC-Code in einem Versionskontrollsystem speichern, können Sie Änderungen nachverfolgen und feststellen, wann und von wem sie vorgenommen wurden. Bei Bedarf können Sie ganz einfach zu vorherigen Versionen zurückkehren.
Versionsverwaltung implementieren
Ein Versionskontrollsystem wie Git ist eine wichtige Komponente des IaC-Prozesses. Es bietet robuste Funktionen für das Change Management und die Risikobewältigung. Daher wird es häufig eingesetzt, entweder durch interne Entwicklung oder SaaS-Lösungen. Diese Empfehlung ist für die folgenden Schwerpunktbereiche der Betriebsbereitschaft relevant: Governance und Tools.
Durch das Nachverfolgen von Änderungen an IaC-Code und ‑Konfigurationen bietet die Versionskontrolle Transparenz in Bezug auf die Entwicklung des Codes. So lassen sich die Auswirkungen von Änderungen leichter nachvollziehen und potenzielle Probleme erkennen. Diese verbesserte Sichtbarkeit fördert die Zusammenarbeit zwischen Teammitgliedern, die an demselben IaC-Projekt arbeiten.
Mit den meisten Versionskontrollsystemen können Sie Änderungen bei Bedarf ganz einfach rückgängig machen. So lässt sich das Risiko von unbeabsichtigten Folgen oder Fehlern verringern. Wenn Sie Tools wie Git in Ihrem IaC-Workflow verwenden, können Sie die Prozesse des Änderungsmanagements erheblich verbessern, die Zusammenarbeit fördern und Risiken minimieren. Dies führt zu einer effizienteren und zuverlässigeren IaC-Implementierung.
CI/CD-Pipelines erstellen
Pipelines für Continuous Integration und Continuous Delivery (CI/CD) optimieren die Entwicklung und Bereitstellung von Cloud-Anwendungen. CI/CD-Pipelines automatisieren die Build-, Test- und Bereitstellungsphasen. Dadurch sind schnellere und häufigere Releases mit verbesserter Qualitätskontrolle möglich. Diese Empfehlung bezieht sich auf das Tooling im Fokusbereich „Betriebsbereitschaft“.
CI/CD-Pipelines sorgen dafür, dass Codeänderungen kontinuierlich in ein zentrales Repository integriert werden, in der Regel ein Versionskontrollsystem wie Git. Durch die kontinuierliche Integration können Probleme frühzeitig erkannt und behoben werden. Außerdem sinkt die Wahrscheinlichkeit von Fehlern oder Kompatibilitätsproblemen.
Zum Erstellen und Verwalten von CI/CD-Pipelines für Cloud-Anwendungen können Sie Tools wie Cloud Build und Cloud Deploy verwenden.
- Cloud Build ist ein vollständig verwalteter Build-Dienst, mit dem Entwickler Build-Schritte deklarativ definieren und ausführen können. Sie lässt sich nahtlos in gängige Plattformen zur Quellcodeverwaltung einbinden und kann durch Ereignisse wie Codepushes und Pull-Requests ausgelöst werden.
- Cloud Deploy ist ein serverloser Bereitstellungsdienst, der die Bereitstellung von Anwendungen in verschiedenen Umgebungen wie Test-, Staging- und Produktionsumgebungen automatisiert. Es bietet Funktionen wie Blau/Grün-Bereitstellungen, Trafficaufteilung und Rollback-Funktionen, die die Verwaltung und Überwachung von Anwendungsbereitstellungen erleichtern.
Durch die Einbindung von CI/CD-Pipelines in Versionskontrollsysteme und Testframeworks lässt sich die Qualität und Zuverlässigkeit Ihrer Cloud-Anwendungen verbessern. Durch die Ausführung automatisierter Tests im Rahmen des CI/CD-Prozesses können Entwicklungsteams Probleme schnell erkennen und beheben, bevor der Code in der Produktionsumgebung bereitgestellt wird. Diese Integration trägt dazu bei, die Stabilität und Leistung Ihrer Cloud-Anwendungen insgesamt zu verbessern.
Tools zur Konfigurationsverwaltung verwenden
Mit Tools wie Puppet, Chef, Ansible und VM Manager können Sie die Konfiguration und Verwaltung von Cloud-Ressourcen automatisieren. Mit diesen Tools können Sie für Ressourcenkonsistenz und Compliance in Ihren Cloud-Umgebungen sorgen. Diese Empfehlung bezieht sich auf den Fokusbereich „Betriebsbereitschaft“.
Die Automatisierung der Konfiguration und Verwaltung von Cloud-Ressourcen bietet folgende Vorteile:
- Reduzierung des Risikos manueller Fehler: Bei manuellen Prozessen ist die Wahrscheinlichkeit von Fehlern aufgrund menschlicher Fehler höher. Tools zur Konfigurationsverwaltung reduzieren dieses Risiko, indem sie Prozesse automatisieren, sodass Konfigurationen einheitlich und korrekt auf alle Cloud-Ressourcen angewendet werden. Diese Automatisierung kann die Zuverlässigkeit und Stabilität der Cloud-Umgebung verbessern.
- Optimierung der Betriebseffizienz: Durch die Automatisierung sich wiederholender Aufgaben kann Ihr Unternehmen die IT-Mitarbeiter entlasten, damit sie sich auf strategischere Initiativen konzentrieren können. Diese Automatisierung kann zu einer Steigerung der Produktivität und Kosteneinsparungen sowie zu einer besseren Reaktion auf sich ändernde Geschäftsanforderungen führen.
- Vereinfachte Verwaltung komplexer Cloud-Infrastrukturen: Mit zunehmender Größe und Komplexität von Cloud-Umgebungen kann die Verwaltung der Ressourcen immer schwieriger werden. Tools zur Konfigurationsverwaltung bieten eine zentrale Plattform für die Verwaltung von Cloud-Ressourcen. Mit den Tools können Sie Konfigurationen leichter im Blick behalten, Probleme erkennen und Änderungen implementieren. Die Verwendung dieser Tools kann zu mehr Transparenz, Kontrolle und Sicherheit Ihrer Cloud-Umgebung führen.
Tests automatisieren
Durch die Einbindung automatisierter Tests in Ihre CI/CD-Pipelines können Sie die Qualität und Zuverlässigkeit Ihrer Cloud-Anwendungen verbessern. Wenn Sie Änderungen vor der Bereitstellung validieren, können Sie das Risiko von Fehlern und Rückschritten erheblich reduzieren. Das führt zu einem stabileren und robusteren Softwaresystem. Diese Empfehlung gilt für die folgenden Schwerpunktbereiche der Betriebsbereitschaft: Prozesse und Tools.
Im Folgenden sind die wichtigsten Vorteile der Einbindung automatisierter Tests in Ihre CI/CD-Pipelines aufgeführt:
- Frühzeitige Erkennung von Fehlern und Mängeln: Automatisierte Tests helfen, Fehler und Mängel frühzeitig im Entwicklungsprozess zu erkennen, bevor sie zu größeren Problemen in der Produktion führen können. So sparen Sie Zeit und Ressourcen, da in späteren Phasen des Entwicklungsprozesses keine kostspieligen Überarbeitungen und Fehlerkorrekturen mehr erforderlich sind.
- Hochwertiger und standardsbasierter Code: Mit automatisierten Tests lässt sich die Gesamtqualität Ihres Codes verbessern, da sichergestellt wird, dass der Code bestimmte Standards und Best Practices erfüllt. Diese Funktion führt zu wartungsfreundlicheren und zuverlässigeren Anwendungen, die weniger fehleranfällig sind.
In CI/CD-Pipelines können Sie verschiedene Arten von Testmethoden verwenden. Jeder Testtyp dient einem bestimmten Zweck.
- Bei Unittests liegt der Schwerpunkt auf dem Testen einzelner Codeeinheiten wie Funktionen oder Methoden, um sicherzustellen, dass sie wie erwartet funktionieren.
- Bei Integrationstests werden die Interaktionen zwischen verschiedenen Komponenten oder Modulen Ihrer Anwendung getestet, um sicherzustellen, dass sie ordnungsgemäß zusammenarbeiten.
- End-to-End-Tests werden häufig zusammen mit Unit- und Integrationstests verwendet. Bei End-to-End-Tests werden reale Szenarien simuliert, um die Anwendung als Ganzes zu testen. So lässt sich besser nachvollziehen, ob die Anwendung die Anforderungen der Endnutzer erfüllt.
Um automatisierte Tests effektiv in Ihre CI/CD-Pipelines einzubinden, müssen Sie geeignete Testtools und ‑Frameworks auswählen. Es gibt viele verschiedene Optionen, die jeweils ihre eigenen Stärken und Schwächen haben. Außerdem müssen Sie eine klare Teststrategie festlegen, in der die durchzuführenden Tests, die Häufigkeit der Tests und die Kriterien für das Bestehen oder Nichtbestehen eines Tests beschrieben werden. Wenn Sie diese Empfehlungen befolgen, können Sie dafür sorgen, dass Ihr automatisierter Testprozess effizient und effektiv ist. Ein solcher Prozess liefert wertvolle Informationen zur Qualität und Zuverlässigkeit Ihrer Cloud-Anwendungen.