Überlegungen zur Bereitstellung für DevOps

Beim Bereitstellen und Aktualisieren von Azure-Ressourcen, Anwendungscode und Konfigurationseinstellungen hilft Ihnen ein wiederholbarer und vorhersagbarer Prozess, Fehler und Ausfallzeiten zu vermeiden. Es empfiehlt sich, automatisierte Prozesse für die Bereitstellung einzusetzen, die bei Bedarf ausgeführt und beim Auftreten von Fehlern erneut ausgeführt werden können. Wenn Ihre Bereitstellungsprozesse erst einmal problemlos laufen, kann Prozessdokumentation dafür sorgen, dass dieser Zustand erhalten bleibt.

Automation

Um Ressourcen bei Bedarf zu aktivieren, Lösungen schnell bereitzustellen, menschliche Fehler zu minimieren und konsistente und wiederholbare Ergebnisse zu erzeugen, müssen Sie Bereitstellungen und Aktualisierungen automatisieren.

Automatisieren möglichst vieler Prozesse

Die zuverlässigsten Bereitstellungsprozesse sind automatisiert und idempotent – also wiederholbar, um stets die gleichen Ergebnisse zu erzeugen.

Erstellen Sie als bewährte Methode ein Repository mit kategorisierten Automatisierungsskripts für den schnellen Zugriff, das mit Erklärungen der Parameter und Beispielen für die Verwendung der Skripts dokumentiert ist. Halten Sie diese Dokumentation stets auf dem Stand Ihrer Azure-Bereitstellungen, und weisen Sie eine Hauptperson zum Verwalten des Repositorys zu.

Auch die Aktivierung von Ressourcen bei Bedarf in der Notfallwiederherstellung kann mithilfe von Automatisierungsskripts erfolgen.

Automatisieren und Testen von Bereitstellungs- und Wartungsaufgaben

Verteilte Anwendungen bestehen aus mehreren Teilen, die zusammenarbeiten müssen. Die Bereitstellung sollte bewährte Mechanismen nutzen, beispielsweise Skripts, mit denen sich die Konfiguration aktualisieren und überprüfen und der Bereitstellungsprozess automatisieren lässt. Testen Sie alle Prozesse vollständig, um sicherzustellen, dass Fehler nicht zu zusätzlichen Ausfallzeiten führen.

Implementieren von Sicherheitsmaßnahmen für die Bereitstellung

Alle Bereitstellungstools müssen Sicherheitseinschränkungen beinhalten, um die bereitgestellte Anwendung zu schützen. Gehen Sie bei Definition und Durchsetzung von Bereitstellungsrichtlinien umsichtig vor, und minimieren Sie das Erfordernis menschlichen Eingriffs.

Releaseprozess

Eine der Herausforderungen bei der Automatisierung der Bereitstellung ist der eigentliche Cut-Over, das Überführen der Software aus der letzten Testphase in die Live Produktion. In der Regel müssen Sie dies schnell ausführen, um die Ausfallzeit zu minimieren. Der Blau-/Grün-Bereitstellungsansatz geht dieses Problem mithilfe von zwei Produktionsumgebungen an, die so identisch wie möglich sind.

Dokumentieren des Releaseprozesses

Ohne detaillierte Dokumentation des Releaseprozesses stellt ein Operator möglicherweise ein fehlerhaftes Update bereit oder konfiguriert die Einstellungen für Ihre Anwendung nicht ordnungsgemäß. Definieren und dokumentieren Sie den Freigabeprozess eindeutig, und stellen Sie sicher, dass er für das gesamte Betriebsteam verfügbar ist.

Staging Ihrer Workloads

Die Bereitstellung in verschiedenen Phasen und das Ausführen von Tests/Validierungen in jeder Phase, bevor Sie mit der nächsten fortfahren, sorgt für eine reibungslose Bereitstellung für die Produktion.

Durch sinnvollen Einsatz von Staging- und Produktionsumgebungen können Sie Updates in umfassend kontrollierter Weise per Push in die Produktionsumgebung übertragen und Unterbrechungen aufgrund unvorhergesehener Bereitstellungsprobleme minimieren.

  • Eine Blau-/Grün-Bereitstellung beinhaltet das Bereitstellen eines Updates in einer von der Liveanwendung separaten Produktionsumgebung. Wechseln Sie für das Routing von Datenverkehr nach der Überprüfung der Bereitstellung dann zur aktualisierten Version. Dies kann beispielsweise durch Verwenden der Stagingslots erfolgen, die in Azure App Service für das Staging von Bereitstellungen vor dem Wechsel zur Produktion zur Verfügung stehen.
  • Canary-Releases ähneln Blau-/Grün-Bereitstellungen. Statt den gesamten Datenverkehr in die aktualisierte Anwendung umzuleiten, routen Sie nur einen kleinen Teil des Datenverkehrs in die neue Bereitstellung. Falls ein Problem auftritt, kehren Sie wieder zur alten Bereitstellung zurück. Falls nicht, routen Sie nach und nach mehr Verkehr zur neuen Version. Wenn Sie Azure App Service verwenden, können Sie die Funktion Test-in-Produktion verwenden, um ein Canary-Release zu verwalten.

Testumgebungen

Wenn die Entwicklungs- und Testumgebungen nicht der Produktionsumgebung entsprechen, lassen sich Probleme nur sehr schwer testen und diagnostizieren. Richten Sie daher die Entwicklungs- und Testumgebungen so ein, dass sie der Produktionsumgebung so ähnlich wie möglich sind. Stellen Sie sicher, dass die Testdaten konsistent mit den Daten sind, die in der Produktion verwendet werden – auch wenn es sich (aus Gründen des Datenschutzes oder aufgrund rechtlicher Vorschriften) nicht um echte Produktionsdaten handelt, sondern um Testdaten. Planen Sie die Generierung und Anonymisierung von Beispieldaten für Tests.

Protokollierung und Überwachung

Implementieren Sie eine stabile Protokollierungsstrategie, um so viele versionsspezifische Informationen wie möglich zu erfassen. Wenn Sie mehrstufige Bereitstellungstechniken einsetzen, werden mehrere Versionen Ihrer Anwendung in der Produktionsumgebung ausgeführt. Wenn ein Problem auftritt, bestimmen Sie, von welcher Version es verursacht wird.

Überlegungen zu Hochverfügbarkeit

Eine Anwendung, die von einer einzelnen Instanz eines Diensts abhängig ist, bildet einen Single Point of Failure. Um Resilienz und Skalierbarkeit zu verbessern, stellen Sie mehrere Instanzen bereit.

Überlegungen zur Bereitstellung in mehreren Regionen

Es empfiehlt sich, alle bis auf besonders unkritische Anwendungen und Anwendungsdienste übergreifend in mehreren Regionen bereitzustellen. Wenn Ihre Anwendung in einer einzelnen Region bereitgestellt wird, ist die Anwendung nicht mehr verfügbar, falls doch einmal die gesamte Region ausfällt. Wenn Sie sich für die Bereitstellung in einer einzelnen Region entscheiden, erwägen Sie, als Reaktion auf einen unerwarteten Ausfall eine erneute Bereitstellung in einer sekundären Region vorzubereiten.

Erneute Bereitstellung in einer sekundären Region

Wenn Sie Anwendungen und Datenbanken in einer einzelnen, primären Region ohne Replikation ausführen, kann Ihre Wiederherstellungsstrategie darin bestehen, eine erneute Bereitstellung in einer anderen Region auszuführen. Diese Lösung ist erschwinglich, eignet sich aber vorwiegend für nicht kritische Anwendungen, bei denen längere Ausfallzeiten akzeptabel sind. Wenn Sie diese Strategie wählen, automatisieren Sie den Bereitstellungsprozess so weit wie möglich, und schließen Sie Szenarien zur erneuten Bereitstellung in Ihre Tests für die Reaktion auf Notfälle ein.

Um Ihren Wiederbereitstellungsprozess zu automatisieren, erwägen Sie den Einsatz von Azure Site Recovery.

Nächste Schritte