Dieses Prinzip im Bereich „Operative Exzellenz“ des Google Cloud Well-Architected Framework enthält Empfehlungen zur Automatisierung und Verwaltung von Änderungen für Ihre Cloud-Arbeitslasten. Dazu gehören die Implementierung von Infrastructure as Code (IaC), die Einrichtung von Standardarbeitsanweisungen, die Implementierung eines strukturierten Änderungsmanagementprozesses sowie die Verwendung von Automatisierung und Orchestrierung.
Übersicht über die Grundsätze
Änderungsmanagement und Automatisierung spielen eine entscheidende Rolle für reibungslose und kontrollierte Übergänge in Cloud-Umgebungen. Für ein effektives Änderungsmanagement müssen Sie Strategien und Best Practices anwenden, die Unterbrechungen minimieren und dafür sorgen, dass Änderungen nahtlos in bestehende Systeme integriert werden.
Effektives Änderungsmanagement und Automatisierung umfassen die folgenden grundlegenden Elemente:
- Change Governance: Legen Sie klare Richtlinien und Verfahren für das Änderungsmanagement fest, einschließlich Genehmigungsprozessen und Kommunikationsplänen.
- Risikobewertung: Ermitteln Sie potenzielle Risiken, die mit Änderungen verbunden sind, und mindern Sie sie durch Risikomanagementtechniken.
- Tests und Validierung: Änderungen müssen gründlich getestet werden, um sicherzustellen, dass sie die funktionalen und Leistungsanforderungen erfüllen und potenzielle Regressionen minimieren.
- Kontrollierte Bereitstellung: Änderungen kontrolliert implementieren, um sicherzustellen, dass Nutzer nahtlos in die neue Umgebung migriert werden. Bei Bedarf sind Mechanismen für ein nahtloses Rollback vorhanden.
Diese grundlegenden Elemente tragen dazu bei, die Auswirkungen von Änderungen zu minimieren und dafür zu sorgen, dass sich Änderungen positiv auf den Geschäftsbetrieb auswirken. Diese Elemente werden durch die Prozesse, Tools und Governance-Fokusbereiche der Betriebsbereitschaft dargestellt.
Empfehlungen
Wenn Sie Änderungen automatisieren und verwalten möchten, sollten Sie die Empfehlungen in den folgenden Abschnitten berücksichtigen. Jede Empfehlung in diesem Dokument bezieht sich auf einen oder mehrere der Schwerpunkte der Betriebsbereitschaft.
IaC einführen
Infrastructure as Code (IaC) ist ein transformativer Ansatz für die Verwaltung von Cloud-Infrastruktur. Sie können die Cloud-Infrastruktur deklarativ definieren und verwalten, indem Sie Tools wie Terraform verwenden. 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 Schwerpunkte der operativen Bereitschaft relevant: Prozesse und Tools.
Im Folgenden sind die wichtigsten Vorteile der Einführung des IaC-Ansatzes für Ihre Cloud-Bereitstellungen aufgeführt:
- Für Menschen 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 ‑operatoren können die Infrastruktur einfach nachvollziehen und ändern und mit anderen zusammenarbeiten.
- Konsistenz und Wiederholbarkeit: IaC ermöglicht Konsistenz und Wiederholbarkeit bei der Bereitstellung Ihrer Infrastruktur. Sie können dafür sorgen, dass Ihre Infrastruktur jedes Mal auf dieselbe Weise bereitgestellt und konfiguriert wird, unabhängig davon, wer die Bereitstellung vornimmt. Dieser Ansatz trägt dazu bei, Fehler zu reduzieren, und sorgt dafür, 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 Versionsverwaltungssystem speichern, können Sie Änderungen nachverfolgen und feststellen, wann und von wem Änderungen vorgenommen wurden. Bei Bedarf können Sie ganz einfach ein Rollback auf frühere Versionen durchführen.
Versionsverwaltung implementieren
Ein Versionskontrollsystem wie Git ist ein wichtiger Bestandteil des IaC-Prozesses. Es bietet robuste Funktionen für das Änderungsmanagement und die Risikominderung und wird daher häufig eingesetzt, entweder durch interne Entwicklung oder SaaS-Lösungen. Diese Empfehlung ist für die folgenden Schwerpunkte der operativen Bereitschaft relevant: Governance und Tools.
Durch die Nachverfolgung von Änderungen an IaC-Code und -Konfigurationen bietet die Versionsverwaltung einen Einblick in die Entwicklung des Codes. So lässt sich die Auswirkung von Änderungen leichter nachvollziehen und potenzielle Probleme können einfacher erkannt werden. Diese verbesserte Sichtbarkeit fördert die Zusammenarbeit zwischen Teammitgliedern, die am selben IaC-Projekt arbeiten.
In den meisten Versionsverwaltungssystemen können Sie Änderungen bei Bedarf ganz einfach rückgängig machen. So lässt sich das Risiko unbeabsichtigter Folgen oder Fehler verringern. Durch die Verwendung von Tools wie Git in Ihrem IaC-Workflow können Sie die Prozesse für das Änderungsmanagement 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 den Prozess der Entwicklung und Bereitstellung von Cloud-Anwendungen. CI/CD-Pipelines automatisieren die Build-, Test- und Bereitstellungsphasen. So können Sie schneller und häufiger Releases mit verbesserter Qualitätssicherung veröffentlichen. Diese Empfehlung bezieht sich auf den Fokusbereich der betrieblichen Bereitschaft.
CI/CD-Pipelines sorgen dafür, dass Codeänderungen kontinuierlich in ein zentrales Repository integriert werden, in der Regel ein Versionskontrollsystem wie Git. Durch Continuous Integration lassen sich Probleme frühzeitig erkennen und beheben. Außerdem wird die Wahrscheinlichkeit von Fehlern oder Kompatibilitätsproblemen verringert.
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. Es lässt sich nahtlos in gängige Quellcodeverwaltungsplattformen einbinden und kann durch Ereignisse wie Code-Pushes und Pull-Anfragen ausgelöst werden.
- Cloud Deploy ist ein serverloser Bereitstellungsdienst, der die Bereitstellung von Anwendungen in verschiedenen Umgebungen wie Test, Staging und Produktion automatisiert. Es bietet Funktionen wie Blau/Grün-Bereitstellungen, Trafficaufteilung und Rollback-Funktionen, die die Verwaltung und Überwachung von Anwendungsbereitstellungen erleichtern.
Durch die Integration von CI/CD-Pipelines in Versionskontrollsysteme und Testframeworks können Sie die Qualität und Zuverlässigkeit Ihrer Cloudanwendungen sicherstellen. Durch das Ausführen 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 allgemeine Stabilität und Leistung Ihrer Cloud-Anwendungen zu verbessern.
Tools zur Konfigurationsverwaltung verwenden
Tools wie Puppet, Chef, Ansible und VM Manager helfen Ihnen, die Konfiguration und Verwaltung von Cloud-Ressourcen zu automatisieren. Mit diesen Tools können Sie für Ressourcenkonsistenz und Compliance in Ihren Cloud-Umgebungen sorgen. Diese Empfehlung bezieht sich auf den Fokusbereich der operativen Bereitschaft.
Die Automatisierung der Konfiguration und Verwaltung von Cloud-Ressourcen bietet folgende Vorteile:
- Deutliche Reduzierung des Risikos manueller Fehler: Bei manuellen Prozessen ist die Wahrscheinlichkeit von Fehlern aufgrund menschlichen Versagens höher. Tools zur Konfigurationsverwaltung verringern dieses Risiko, indem sie Prozesse automatisieren, sodass Konfigurationen konsistent und genau auf alle Cloud-Ressourcen angewendet werden. Diese Automatisierung kann die Zuverlässigkeit und Stabilität der Cloud-Umgebung verbessern.
- Steigerung der betrieblichen Effizienz: Durch die Automatisierung sich wiederholender Aufgaben kann Ihre Organisation IT-Mitarbeiter für strategischere Initiativen freistellen. Diese Automatisierung kann zu einer höheren Produktivität, Kosteneinsparungen und einer besseren Reaktionsfähigkeit auf sich ändernde Geschäftsanforderungen führen.
- Vereinfachte Verwaltung komplexer Cloud-Infrastruktur: Wenn Cloud-Umgebungen an Größe und Komplexität zunehmen, kann die Verwaltung der Ressourcen immer schwieriger werden. Tools zur Konfigurationsverwaltung bieten eine zentrale Plattform zum Verwalten von Cloud-Ressourcen. Die Tools erleichtern das Nachverfolgen von Konfigurationen, das Erkennen von Problemen und das Implementieren von Änderungen. Die Verwendung dieser Tools kann zu einer besseren Transparenz, Kontrolle und Sicherheit Ihrer Cloud-Umgebung führen.
Tests automatisieren
Durch die Integration automatisierter Tests in Ihre CI/CD-Pipelines können Sie die Qualität und Zuverlässigkeit Ihrer Cloud-Anwendungen sicherstellen. Wenn Sie Änderungen vor der Bereitstellung validieren, können Sie das Risiko von Fehlern und Regressionen erheblich reduzieren. Dies führt zu einem stabileren und robusteren Softwaresystem. Diese Empfehlung ist für die folgenden Schwerpunkte der operativen Bereitschaft relevant: Prozesse und Tools.
Im Folgenden sind die wichtigsten Vorteile der Einbindung automatisierter Tests in Ihre CI/CD-Pipelines aufgeführt:
- Früherkennung von Fehlern: Automatisierte Tests helfen, Fehler frühzeitig im Entwicklungsprozess zu erkennen, bevor sie in der Produktion zu größeren Problemen führen können. So sparen Sie Zeit und Ressourcen, da kostspielige Nachbearbeitungen und Fehlerkorrekturen in späteren Phasen des Entwicklungsprozesses vermieden werden.
- Hochwertiger und standardbasierter Code: Automatisierte Tests können dazu beitragen, die allgemeine Qualität Ihres Codes zu verbessern, indem sichergestellt wird, dass der Code bestimmte Standards und Best Practices erfüllt. Dies führt zu wartungsfreundlicheren und zuverlässigeren Anwendungen, die weniger anfällig für Fehler sind.
Sie können verschiedene Arten von Testverfahren in CI/CD-Pipelines verwenden. Jeder Testtyp dient einem bestimmten Zweck.
- Beim Unittest werden einzelne Codeeinheiten wie Funktionen oder Methoden getestet, um sicherzustellen, dass sie wie erwartet funktionieren.
- Beim Integrationstest werden die Interaktionen zwischen verschiedenen Komponenten oder Modulen Ihrer Anwendung getestet, um zu prüfen, ob 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 sicherstellen, dass die Anwendung die Anforderungen Ihrer Endnutzer erfüllt.
Um automatisierte Tests effektiv in Ihre CI/CD-Pipelines zu integrieren, 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 Arten der 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.