Empfehlungen zum Aktivieren der Automatisierung

Gilt für die folgende Checkliste für die Prüfliste für hervorragende Vorgänge in Azure Well-Architected Framework:

OE:10 Entwerfen und implementieren Sie Automatisierung im Voraus für Vorgänge wie Lebenszyklusaspekte, Bootstrapping und Anwenden von Governance- und Compliance-Schutzmaßnahmen. Versuchen Sie nicht, die Automatisierung später nachzurüsten. Wählen Sie Automatisierungsfeatures aus, die Ihre Plattform bereitstellt.

In diesem Leitfaden werden die Empfehlungen für das Entwerfen und Implementieren Ihrer Workload beschrieben, um die Automatisierung zu ermöglichen. Entwerfen Sie Ihre Workload unter Berücksichtigung der Automatisierung, um sicherzustellen, dass Routineaufgaben wie Bereitstellung von Ressourcen, Skalierung und Bereitstellungen schnell und zuverlässig ausgeführt werden. Automatisierung vereinfacht Wartungsaufgaben und ermöglicht es Ihnen, Ihre Systeme effizienter zu aktualisieren, zu patchen und zu aktualisieren.

Wichtige Entwurfsstrategien

Workloadentwurf

Sie können Ihre Workload so entwerfen, dass die Automatisierung von der Ideenfindungsphase bis zur laufenden Verbesserungsphase unterstützt wird. Überlegen Sie zunächst, wie Sie die Automatisierung in Ihrer Workload anwenden möchten, um sicherzustellen, dass Sie die erforderlichen Teile einrichten. Denken Sie an Ihre Workload in Bezug auf die Well-Architected Framework-Säulen, um die Von Ihnen verwendeten Automatisierungstypen zu planen. Sie können viele Funktionen wie Sicherheit, Zuverlässigkeit, Leistung, Vorgänge und Kostenkontrolle automatisieren.

Entwerfen Sie mit Berücksichtigung der Automatisierung, um das Refactoring nach der Ausführung Ihrer Workload zu minimieren. Berücksichtigen Sie Ihre Workloadanforderungen bei der Entscheidung, welche Automatisierungstools verwendet werden sollen. Möglicherweise gibt es Standardautomatisierungstools, mit denen Ihr Team bereits vertraut ist. Die Einführung dieser Tools kann den Weg zur Automatisierung Ihrer Workload vereinfachen, aber beachten Sie deren Einschränkungen und Kompatibilität mit Ihrer Cloudplattform. Beispielsweise können einige Automatisierungstools gut in Azure CLI-Tools integriert werden, während andere rest-Schnittstellen erfordern. Untersuchen Sie immer die Tools, die Ihre Cloudplattform bereitstellt, um sicherzustellen, dass sie kompatibel sind und die von Ihnen benötigten Funktionen bereitstellen. Beispiele für Möglichkeiten, die Sie proaktiv für die Automatisierung planen können, sind:

  • Bereitstellung: Automatisieren Sie Ihre Anwendungs- und Infrastrukturbereitstellungen, um einen vorhersagbaren Standard sicherzustellen. Planen Sie die automatisierte Bereitstellung, indem Sie Bereitstellungsstandards entwickeln, Ihr Team mit den Tools schulen, die Sie verwenden werden, und implementieren Sie die erforderliche Infrastruktur.

  • Validierung: Überprüfen Sie die Konformitätsanforderungen automatisch anhand Ihrer Workload mithilfe von Orchestrierungs- oder Richtlinientools. Identifizieren Sie das geeignete Validierungstool für Ihre Workload, und planen Sie die Implementierung der erforderlichen Systeme, z. B. Orchestrierungsserver.

  • Automatische Skalierung: Verwenden Sie die automatische Skalierung in Ihrer gesamten Infrastruktur, um Ihre Zuverlässigkeits- und Leistungsanforderungen zu erfüllen. Sie sollten IP-Adressraum und Subnetze in Ihrer Workload im Voraus zuordnen, um Skalierungsvorgänge zu berücksichtigen, zusätzlich zur Planung von Redundanz und natürlichem Wachstum.

Kompromiss: Berücksichtigen Sie beim Entwerfen Ihrer Workload zur Aktivierung der Automatisierung den Grad der Kontrolle, den Sie beibehalten möchten, und die Effizienz, die Sie durch Automatisierung erzielen können. In einigen Fällen ist Ihre Workload möglicherweise nicht ausgereift genug, um einige Funktionen zu automatisieren, oder Sie benötigen möglicherweise ein Maß an Flexibilität, das die Automatisierung nicht bietet.

Berücksichtigen Sie beim Entwerfen Ihrer Workload auch die Fähigkeiten Ihres Teams. Wenn ein hoher Automatisierungsgrad Tools erfordert, die Ihr Team nicht unterstützen kann, müssen Sie möglicherweise einen weniger umfassenden Entwurf als Zwischenschritt verwenden.

Kontinuierliche Workloadverbesserungen

Nachdem Ihre Workload in der Cloud ausgeführt wird, ist es wichtig, die kontinuierliche Verbesserung zu priorisieren. Beobachten Sie Ihre Workload in Aktion, analysieren Sie Nutzungsmuster und überprüfen Sie das Kundenverhalten im Zusammenhang mit Ihrer Workload, um Bereiche zu identifizieren, in denen Sie die Automatisierung verbessern können. Suchen Sie nach Möglichkeiten, die vorhandene Automatisierung zu verbessern oder neue Automatisierung einzuführen, um Ihre Kundenerfahrung zu verbessern. Beispielsweise können Sie die automatisierte Skalierung aktiviert haben, aber die Workloaderhöhung ist kurzlebig. Sie können die Automatisierung für horizontales Skalieren integrieren, um die CPU-Auslastung zu verringern, wenn die Last unter den Schwellenwert fällt.

Die folgenden Abschnitte dieses Leitfadens enthalten Empfehlungen zu bestimmten Automatisierungsbereichen, die Ihnen beim Entwurf und der Implementierung Ihrer Workload helfen können.

Bootstrapping

Bootstrapping bezieht sich auf die Konfigurationsupdates für eine Ressource, die nach der Bereitstellung vorgenommen werden muss, aber bevor sie als Teil des Workloadpools verfügbar ist. Bootstrapping wird häufig virtuellen Computern (VMs) zugeordnet, aber viele andere Ressourcen müssen im Rahmen des Bereitstellungsprozesses eingerichtet werden, einschließlich PaaS-Technologien (Platform-as-a-Service) und Containerhostingtechnologien wie Azure Kubernetes Service (AKS).

Ihre Cloudplattform bietet möglicherweise Bootstrappinglösungen für Sie, die Sie nach Möglichkeit verwenden sollten. Sie können beispielsweise VM-Erweiterungen in Azure verwenden, um während des Bereitstellungsprozesses vordefinierte Konfigurationsänderungen vorzunehmen und Ihre Konfigurationsänderungen anzupassen, indem Sie PowerShell-Skripts einfügen.

Authentifizierung und Autorisierung

Berücksichtigen Sie die Automatisierung beim Entwerfen Ihrer Authentifizierungs- und Autorisierungsstrategie. Es ist wichtig, das höchste Maß an Sicherheit in Produktionsworkloads zu gewährleisten, aber dies kann sich auf die Automatisierung auswirken. Beispielsweise erhöht die Verwendung der biometrischen oder mehrstufigen Authentifizierung die Komplexität, die in Ihrem Automatisierungsentwurf berücksichtigt werden muss. Verwenden Sie nicht menschliche, sichere Konten für die automatisierte Authentifizierung, z. B. verwaltete Identitäten, Workloadidentitäten oder Zertifikate. Stellen Sie sicher, dass Sie die Verwaltung von Geheimnissen und Schlüsseln in Ihre Automatisierung einbezogen haben, um die Authentifizierungssicherheit zu erhöhen.

Entwurfsvariabilität in Ihrer Workload

Vermeiden Sie die unnötige Bereitstellung neuer Infrastruktur, wenn kleine Änderungen vorgenommen werden, indem Sie Flexibilität in Ihre Artefakte integrieren. Anstatt beispielsweise Ihre Infrastruktur erneut bereitzustellen, wenn sich ein Featureflag ändert, können Sie Parameter verwenden, die festgelegt sind, um Komponenten wie App-Konfigurationen zu aktualisieren. Stellen Sie sicher, dass Sie klar definieren und dokumentieren, wie Variabilität verwendet wird, um übermäßige Nutzung und Konfigurationsabweichungen zu vermeiden.

Erstellen einer Steuerungsebene

Eine Steuerungsebene ist das Back-End-System oder die Suite von Tools, die Sie verwenden, um die Anwendung und ihre Abhängigkeiten über eine einheitliche Schnittstelle zu verwalten. Erstellen Sie Ihre Steuerungsebene wie eine REST-Schnittstelle, eine CLI oder einen Webhook, um die Automatisierung durch externe Tools zu unterstützen.

Machen Sie Wartungsvorgänge über die Steuerungsebene verfügbar, mit der Sie Workloadkomponenten koordinieren können, z. B. geordnete Sicherung und Wiederherstellung, Bootstrapping, Konfiguration, Import/Export und Batchverarbeitungsvorgänge. Achten Sie darauf, die richtige Granularitätsebene auszuwählen, wenn Sie die Vorgänge entscheiden, die über die Steuerungsebene verfügbar gemacht werden sollen.

Überwachen und Protokollieren

Entwickeln Sie eine Überwachungsstrategie, um Metriken zu erfassen, die den gewünschten Automatisierungstyp steuern. Verwenden Sie die strukturierte Protokollierung und benutzerdefinierte Metriken, um die für die Automatisierung erforderlichen Informationen in einem Format bereitzustellen, das mit Automatisierungstools leicht zu erkennen ist. Die erfassten Metriken sollten ggf. mit schwellenwerten gekoppelt werden, die im Überwachungssystem definiert sind und Warnungen und automatisierte Aktionen auslösen, z. B. Benachrichtigungen oder Selbstreparaturmechanismen. Weitere Informationen finden Sie unter Empfehlungen zur Selbstreparatur und Selbsterhaltung.

Benutzerlebenszyklus

Entwerfen Sie Ihre Anwendung und Infrastruktur so, dass sie ein automatisiertes Benutzer-Onboarding und Offboarding für Einzelpersonen oder mehrinstanzenfähige Kunden ermöglicht. Planen Sie automatisierte Datenbankupdates über Skripts, die Bereitstellung und Aufhebung der Bereitstellung der Infrastruktur sowie die Verwaltung von Anmeldeinformationen und Geheimnissen.

Orchestrierung und Richtlinienverwendung

Im Rahmen Ihrer kontinuierlichen Workloadverwaltung können Sie Desired State Configuration (DSC) in Ihren Ressourcen automatisieren, um sicherzustellen, dass sie Compliance- und Geschäftsanforderungen erfüllen. Die DSC-Automatisierung trägt dazu bei, sicherzustellen, dass Konfigurationsabweichungen schnell abgefangen und behoben werden. Sie können DSC mithilfe von Orchestrierungstools oder Richtlinienverwaltungstools automatisieren. Stellen Sie sich Orchestrierungstools wie Azure DevOps-Dienste oder Jenkins als pushbasierte Mechanismen vor. Orchestrierungstools ermöglichen das Pushen von Konfigurationsupdates über ein Workflowereignis, z. B. eine manuelle oder automatisierte Bereitstellung. Diese Updates werden als Teil einer Tasksequenz ausgeführt, die in Ihrem Bereitstellungsskript definiert ist. Richtlinienverwaltungstools verwenden pullbasierte Mechanismen. Dies bedeutet, dass ein System auf der grundlegenden Ebene Ihrer Workload ausgeführt wird, die die Workload regelmäßig abruft, um ihren Zustand anhand des definierten DSC zu überprüfen. Wenn die Umfrage eine Fehlausrichtung oder Konfigurationsabweichung identifiziert, ergreift das Tool Korrekturmaßnahmen. Berücksichtigen Sie bei der Entscheidung zwischen Orchestrierungs- und Richtlinienverwaltungstools die folgenden Faktoren:

  • Orchestrierungstools verfügen nicht über integrierte Funktionen, um Ihre Workload proaktiv auf Konfigurationsabweichungen abzufragen. Orchestrierungstools sollten in Ihre CI/CD-Pipeline (Continuous Integration und Continuous Delivery) integriert werden, um einen Standard für die Bereitstellung und Verwaltung von Infrastructure-as-Code (IaC) beizubehalten. Ein Vorteil der Verwendung von Orchestrierungstools besteht darin, dass Ressourcen bei der Bereitstellung immer vollständig konfiguriert sind.

  • Mit Richtlinienverwaltungstools können Sie Richtlinien definieren, die sich auf eine oder mehrere Ressourcengruppen auswirken. Diese Richtlinien werden erzwungen, wenn die Ressource beim Richtlinienverwaltungssystem eingecheckt wird. Ein Vorteil der Verwendung der Richtlinienverwaltung besteht darin, dass diese Systeme nicht codegesteuert sind, sodass sie für Operatoren in Ihrem Team möglicherweise einfacher zu übernehmen sind.

Berücksichtigen Sie bei der Entscheidung zwischen Orchestrierungs- oder Richtlinientools, ob die Konfigurationsupdates, die Sie für neue Ressourcen vornehmen möchten, zum Zeitpunkt der Bereitstellung vorgenommen werden müssen. Überlegen Sie auch, ob die Definition von Updates im Code zu Ihren Betriebspraktiken passt und wie viele Ressourcentypen Sie bereitstellen möchten. Wenn es viele verschiedene Konfigurationen zwischen Ressourcentypen gibt, können Richtlinientools eine einfachere Möglichkeit zum Verwalten von Updates sein.

Azure-Erleichterung

Richtlinienverwaltung

Azure Policy: Mit Azure Policy können Sie Standards erzwingen und die Konformität im großen Stil bewerten. Azure Policy bietet eine aggregierte Ansicht zum Bewerten des Gesamtzustands der Workloadumgebung im Compliance-Dashboard. Alternativ können Sie Azure Policy verwenden, um jede Ressource und Richtlinie auf einer granularen Ebene auszuwerten. Sie können auch Azure Policy verwenden, um neue Ressourcen automatisch zu korrigieren oder vorhandene Ressourcen in einem Massenvorgang zu beheben.

Kompromiss: Das Auslagern von Automatisierung aus Ihrer CI/CD-Pipeline auf Plattformtools oder -dienste wie Azure Policy kann Ihre Pipeline vereinfachen, hat jedoch Nachteile wie den zusätzlichen Verwaltungsaufwand bei der Verwendung mehrerer Systeme. Beispielsweise werden Ausführungsfehler in einem Plattformdienst nicht in Ihren Pipelineprotokollen erfasst und müssen intelligent in Ihre Beobachtungsplattform eingespeist werden, damit die entsprechenden Parteien benachrichtigt werden.

Bootstrap-Automatisierung

Azure Virtual Machines-Erweiterungen: Virtual Machines-Erweiterungen sind kleine Pakete, die die Konfiguration und Automatisierung nach der Bereitstellung auf VMs ausführen. Für verschiedene Konfigurationsaufgaben stehen mehrere Erweiterungen zur Verfügung, z. B. das Ausführen von Skripts, das Konfigurieren von Antischadsoftwarelösungen und das Konfigurieren von Protokollierungslösungen. Installieren und ausführen Sie diese Erweiterungen auf virtuellen Computern mithilfe einer Azure Resource Manager-Vorlage, der Azure CLI, Azure PowerShell Moduls oder des Azure-Portal. Auf jeder VM ist ein VM-Agent installiert, der den Lebenszyklus der Erweiterung verwaltet.

In der Regel verwenden VM-Erweiterungen eine benutzerdefinierte Skripterweiterung, um Software zu installieren, Befehle auszuführen und Konfigurationen auf einem virtuellen Computer oder azure Virtual Machine Scale Sets auszuführen. Sie können diese Erweiterungen so einrichten, dass sie als Teil von IaC-Bereitstellungen ausgeführt werden, sodass sie mit dem Azure-VM-Agent auf neuen VMs ausgeführt werden. Erweiterungen können auch außerhalb einer Azure-Bereitstellung mithilfe der Azure CLI, des PowerShell-Moduls oder des Azure-Portal ausgeführt werden.

Cloud-init: Cloud-init ist ein Branchentool zum Konfigurieren von Linux-VMs beim ersten Start. Ähnlich wie benutzerdefinierte Azure-Skripterweiterungen können Sie mit cloud-init Pakete installieren und Befehle auf linux-VMs ausführen. Sie können cloud-init für Softwareinstallation, Systemkonfiguration und Inhaltssing verwenden. Azure umfasst viele cloudinitfähige VM-Images in bekannten Linux-Distributionen. Eine vollständige Liste finden Sie unter Cloud-Init-Unterstützung für VMs in Azure.

Azure-Bereitstellungsskriptressource: Bei der Bereitstellung mithilfe von Azure müssen Sie möglicherweise beliebigen Code ausführen, um die Verwaltung von Benutzerkonten, Kubernetes-Pods oder das Abfragen von Daten aus einem Nicht-Azure-System zu starten. Da auf keine dieser Vorgänge über die Azure-Steuerungsebene zugegriffen werden kann, ist ein separater Mechanismus erforderlich. Weitere Informationen finden Sie unter Microsoft.Resources deploymentScripts. Wie bei jeder anderen Azure-Ressource auch die Bereitstellungsskriptressource:

  • Kann in einer Azure Resource Manager-Vorlage verwendet werden.

  • Enthält Azure Resource Manager Vorlagenabhängigkeiten in anderen Ressourcen.

  • Verbraucht Eingaben und erzeugt Eine Ausgabe.

  • Verwendet eine benutzerseitig zugewiesene verwaltete Identität für die Authentifizierung.

Bei der Bereitstellung führt das Bereitstellungsskript PowerShell- oder Azure CLI-Befehle und -Skripts aus. Skriptausführungen und -protokollierungen können im Azure-Portal oder mit der Azure CLI und dem PowerShell-Modul beobachtet werden. Sie können die Variablen für die Ausführungsumgebung, Timeoutoptionen und die Ressourcenverwaltung nach einem Skriptfehler anpassen.

Bootstrap-AKS-Cluster mit GitOps: Sie können einen neu bereitgestellten AKS-Cluster mithilfe von GitOps und der Flux v2-Clustererweiterung starten, indem Sie Ihre Konfigurationseinstellungen in GitHub-Repositorys deklarieren. Da AKS-Clusterdateien in einem GitHub-Repository gespeichert werden, sind sie versioniert, und Änderungen zwischen Versionen können problemlos nachverfolgt werden. Kubernetes-Controller werden in den Clustern ausgeführt und stimmen den Clusterstatus kontinuierlich mit dem im Git-Repository deklarierten gewünschten Zustand ab, indem die Dateien aus dem Repository abgerufen werden. Weitere Informationen finden Sie unter Referenzarchitektur der AKS-Baseline.

Konfigurationsverwaltung

Azure Automation State Configuration ist ein DSC-Verwaltungstool, das vom Azure Policy Gastkonfigurationsfeature verwaltet wird und mit dem Sie PowerShell DSC-Konfigurationen für Knoten in einem beliebigen Cloud- oder lokalen Rechenzentrum schreiben, verwalten und kompilieren können. Sie können dieses Tool auch verwenden, um DSC-Ressourcen zu importieren und Zielknoten Konfigurationen zuzuweisen.

Azure App Configuration ist ein Dienst, mit dem Sie Ihre Anwendungseinstellungen und Featureflags zentral verwalten können. Es funktioniert mit Azure Key Vault, sodass Sie eine Vielzahl von Anwendungskonfigurationen in Ihrer Umgebung sicher verwalten können.

Änderungsnachverfolgung und Bestand

Änderungsnachverfolgung und Bestand mithilfe des Azure Monitoring-Agents verfolgen die Abweichung der Betriebssystemkonfiguration auf virtuellen Computern nach. Dies automatisiert die Erkennung von Drift, der in der Inventur ausgeführten Dienste und installierten Paketen auf den virtuellen Computern in Ihrer Workload. Zu den Elementen, die durch Änderungsnachverfolgung und Bestand nachverfolgt werden, gehören:

  • Installierte Windows- und Linux-Software
  • Wichtige Windows- und Linux-Dateien
  • Windows-Registrierungsschlüssel
  • Windows-Dienste und Linux-Daemons

Checkliste für operationale Exzellenz

Weitere Informationen finden Sie im vollständigen Satz von Empfehlungen.