Empfehlungen für die Aktivierung der Automatisierung

Gilt für diese Checkliste für Azure Well-Architected Framework Operation Excellence:

OE:10 Entwerfen und implementieren Sie im Vorfeld Automatisierungen für Vorgänge wie Lebenszyklusbedenken, Bootstrapping und die Anwendung von Governance- und Compliance-Richtlinien. Versuchen Sie nicht, die Automatisierung später nachzurüsten. Wählen Sie Automatisierungsfeatures aus, die Ihre Plattform bereitstellt.

In diesem Leitfaden werden die Empfehlungen zum Entwerfen und Implementieren Ihrer Arbeitsauslastung beschrieben, um die Automatisierung zu ermöglichen. Entwerfen Sie Ihre Arbeitsauslastung im Hinblick auf die Automatisierung, um sicherzustellen, dass Routineaufgaben wie Bereitstellungsressourcen, Skalierung und Bereitstellungen schnell und zuverlässig ausgeführt werden. Die Automatisierung vereinfacht Wartungsaufgaben und ermöglicht es Ihnen, Ihre Systeme effizienter zu aktualisieren, zu patchen und zu aktualisieren.

Wichtige Entwurfsstrategien

Entwerfen von Workloadkomponenten zur Unterstützung der Automatisierung

Sie können Ihre Arbeitsauslastung so gestalten, dass sie die Automatisierung von der Ideenphase bis zur laufenden Verbesserungsphase unterstützt. Überlegen Sie zunächst, wie Sie die Automatisierung in Ihrer Workload anwenden möchten, um sicherzustellen, dass Sie die erforderlichen Teile platzieren. Überlegen Sie sich Ihre Arbeitsauslastung in Bezug auf die Säulen des Well-Architected Framework, um die Art der Automatisierung zu planen, die Sie verwenden werden. Sie können viele Funktionen von Sicherheit, Zuverlässigkeit, Leistung, Vorgängen und Kostenkontrolle automatisieren.

Entwerfen Sie die Automatisierung im Hinblick auf die Minimierung der Umgestaltung, nachdem Ihre Workload ausgeführt wurde. Berücksichtigen Sie Ihre Arbeitsauslastungsanforderungen bei der Entscheidung, welche Automatisierungstools verwendet werden sollen. Möglicherweise gibt es automatisierungsfreie Tools, mit denen Ihr Team bereits vertraut ist. Durch die Einführung dieser Tools können Sie den Weg zur Automatisierung Ihrer Workload vereinfachen, aber berücksichtigen Sie ihre Einschränkungen und Kompatibilität mit Ihrer Cloudplattform. Einige Automatisierungstools können z. B. gut in die 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 benötigten Funktionen bereitstellen. Beispiele für proaktive Planungsmöglichkeiten für die Automatisierung:

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

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

  • Automatische Skalierung: Verwenden Sie die automatische Skalierung in der gesamten Infrastruktur, um Ihre Zuverlässigkeits- und Leistungsanforderungen zu erreichen. Sie sollten ip-Adressraum und Subnetze in Ihrer Workload vorab zuweisen, um Skalierungsvorgänge zu berücksichtigen, zusätzlich zur Planung von Redundanz und natürlichem Wachstum.

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

Berücksichtigen Sie auch die Fähigkeiten Ihres Teams beim Entwerfen Ihrer Workload. Wenn ein hohes Maß an Automatisierung Tools erfordert, die Ihr Team nicht unterstützt, müssen Sie möglicherweise ein weniger umfassendes Design als Zwischenschritt verwenden.

Überarbeitetes Automatisierungsdesign während des Lebenszyklus

Nachdem Ihre Workload in der Cloud ausgeführt wurde, ist es wichtig, eine kontinuierliche Verbesserung zu priorisieren. Beobachten Sie Ihre Arbeitsauslastung 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 eine neue Automatisierung einzuführen, um Ihre Kundenerfahrung zu verbessern. Beispielsweise haben Sie möglicherweise eine automatisierte Skalierung aktiviert, aber die Workloaderhöhung ist kurzlebig. Sie können skalierungsbasierte Automatisierung integrieren, um die CPU-Auslastung zu verringern, wenn die Last unter den Schwellenwert fällt.

In den folgenden Abschnitten dieses Leitfadens finden Sie Empfehlungen zu bestimmten Automatisierungsbereichen, die Ihnen bei der Gestaltung und Implementierung ihrer Workload helfen können.

Automatisieren der Bootstrapping

Bootstrapping bezieht sich auf die Konfigurationsaktualisierungen einer Ressource, die vorgenommen werden müssen, nachdem sie bereitgestellt wurde, aber bevor sie als Teil des Workload-Pools verfügbar ist. Bootstrapping ist häufig mit virtuellen Computern (VMs) verknüpft, aber viele andere Ressourcen müssen als Teil des Bereitstellungsprozesses eingerichtet werden, einschließlich PaaS-Technologien (Platform as a Service) und Containerhostingtechnologien wie Azure Kubernetes Service (AKS).

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

Integrieren der Automatisierung in die Zugriffsverwaltung

Berücksichtigen Sie die Automatisierung beim Entwerfen Ihrer Authentifizierungs- und Autorisierungsstrategie. Es ist wichtig, die höchste Sicherheitsstufe in Produktionsworkloads aufrechtzuerhalten, dies kann sich jedoch auf die Automatisierung auswirken. Die Verwendung biometrischer oder mehrstufiger Authentifizierung erhöht beispielsweise Komplexität, die in Ihrem Automatisierungsdesign berücksichtigt werden muss. Verwenden Sie nichtmenschliche, sichere Konten für die automatisierte Authentifizierung, z. B. verwaltete Identitäten, Workloadidentitäten oder Zertifikate. Stellen Sie sicher, dass Sie geheime und schlüsselbasierte Verwaltung in Ihre Automatisierung aufgenommen haben, um die Authentifizierungssicherheit zu erhöhen.

Entwerfen von Variabilität in Ihre Workload

Vermeiden Sie unnötige Bereitstellung neuer Infrastruktur, wenn kleine Änderungen vorgenommen werden, indem Sie Flexibilität in Ihre Artefakte integrieren. Anstatt ihre Infrastruktur beispielsweise erneut bereitzustellen, wenn sich ein Featurekennzeichnung ändert, können Sie Parameter verwenden, die zum Aktualisieren von Komponenten wie App-Konfigurationen festgelegt sind. Achten Sie darauf, klar zu definieren und zu dokumentieren, wie Die Variabilität verwendet wird, um übermäßige Verwendung und Konfigurationsabweichung zu vermeiden.

Erstellen einer Steuerebene

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

Machen Sie Wartungsvorgänge über die Kontrollebene verfügbar, mit der Sie Workloadkomponenten koordinieren können, z. B. geordnet sichern und wiederherstellen, Bootstrapping, Konfiguration, Import-/Export- und Batchverarbeitungsvorgänge. Achten Sie darauf, die richtige Granularitätsstufe auszuwählen, wenn Sie entscheiden, welche Vorgänge über die Steuerungsebene verfügbar gemacht werden sollen.

Einführen eines datengesteuerten Ansatzes zur Entwicklung von Automatisierung

Entwickeln Sie eine Überwachungsstrategie, um Metriken zu erfassen, die den von Ihnen benötigten Automatisierungstyp fördern. Verwenden Sie strukturierte Protokollierung und benutzerdefinierte Metriken, um die informationen bereitzustellen, die von der Automatisierung in einem Format benötigt werden, das mit Automatisierungstools leicht zu erkennen ist. Die erfassten Metriken sollten mit Schwellenwerten kombiniert werden, die im Überwachungssystem definiert sind, die Warnungen und automatisierte Aktionen auslösen, z. B. Benachrichtigungen oder Selbstheilungsmechanismen, falls zutreffend. Weitere Informationen finden Sie unter Empfehlungen zur Selbstheilung und Selbsterhaltung.

Automatisieren von Benutzerlebenszyklusereignissen

Entwerfen Sie Ihre Anwendung und Infrastruktur so, dass sie das automatisierte Onboarding und Offboarding für Einzelpersonen oder mehrinstanzenfähige Kunden ermöglicht. Planen Sie automatisierte Datenbankaktualisierungen über Skripts, Infrastrukturbereitstellung und Bereitstellung sowie Anmeldeinformationen und geheime Verwaltung.

Automatisieren der gewünschten Zustandskonfiguration

Im Rahmen ihrer kontinuierlichen Workloadverwaltung können Sie die Gewünschte Zustandskonfiguration (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, dass konfigurationsabweichungen schnell abgefangen und behoben werden. Sie können DSC mithilfe von Orchestrierungstools oder Tools zur Richtlinienverwaltung automatisieren. Stellen Sie sich Orchestrierungstools wie Azure DevOps-Dienste oder Jenkins als pushbasierte Mechanismen vor. Mithilfe von Orchestrierungstools können Konfigurationsupdates über ein Workflowereignis übertragen werden, z. B. eine manuelle oder automatisierte Bereitstellung. Diese Updates werden als Teil einer tasksequenz ausgeführt, die in Ihrem Bereitstellungsskript definiert ist. Richtlinienverwaltungstools verwenden Pull-basierte Mechanismen, was bedeutet, dass ein System auf der grundlegenden Ebene Ihrer Arbeitsauslastung ausgeführt wird, die die Arbeitsauslastung regelmäßig abruft, um den Zustand anhand Ihres definierten DSC zu überprüfen. Wenn die Umfrage eine Fehlausrichtung oder Konfigurationsabweichung identifiziert, führt das Tool Korrekturmaßnahmen durch. Berücksichtigen Sie bei der Entscheidung zwischen Orchestrierung und Richtlinienverwaltungstools die folgenden Faktoren:

  • Orchestrierungstools verfügen nicht über integrierte Funktionen, um Ihre Arbeitsauslastung proaktiv nach Konfigurationsabweichungen abzufragen. Orchestrierungstools sollten in Ihre pipeline für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) integriert werden, um einen Standard für die Infrastruktur als Codebereitstellung und -verwaltung (IaC) aufrechtzuerhalten. 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 Ressourcen mit dem Richtlinienverwaltungssystem eingecheckt werden. Ein Vorteil der Verwendung der Richtlinienverwaltung besteht darin, dass diese Systeme nicht codegesteuert sind, sodass sie für Operatoren in Ihrem Team 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 außerdem, ob das Definieren von Updates im Code zu Ihren betrieblichen Praktiken passt und wie viele Ressourcentypen Sie bereitstellen möchten. Wenn es viele verschiedene Konfigurationen in ressourcenübergreifenden Typen gibt, können Richtlinientools möglicherweise eine einfachere Möglichkeit zum Verwalten von Updates sein.

Umsetzung in Azure

Richtlinienverwaltung

Azure-Richtlinie: Mithilfe von Azure-Richtlinien können Sie Standards erzwingen und die Compliance im großen Maßstab bewerten. Azure Policy bietet eine aggregierte Ansicht, um den Gesamtzustand der Workloadumgebung im Compliance-Dashboard zu bewerten. Sie können auch Azure-Richtlinie verwenden, um jede Ressource und Richtlinie auf granularer Ebene auszuwerten. Sie können auch Azure-Richtlinie verwenden, um neue Ressourcen automatisch zu beheben oder vorhandene Ressourcen in Massen zu beheben.

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

Bootstrap-Automatisierung

Erweiterungen für virtuelle Azure-Computer: Erweiterungen für virtuelle Computer sind kleine Pakete, die die Konfiguration nach der Bereitstellung und Automatisierung auf virtuellen Computern ausführen. Verschiedene Erweiterungen stehen für verschiedene Konfigurationsaufgaben 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, einer Azure CLI, eines Azure PowerShell-Moduls oder des Azure-Portal. Jeder virtuelle Computer verfügt über einen VM-Agent, der den Lebenszyklus der Erweiterung verwaltet.

Vm-Erweiterungen verwenden in der Regel eine benutzerdefinierte Skripterweiterung, um Software zu installieren, Befehle auszuführen und Konfigurationen auf einer VM 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 mit dem Azure CLI-, PowerShell-Modul oder dem Azure-Portal ausgeführt werden.

Cloud-init: Cloud-init ist ein Industrietool zum Konfigurieren von Linux-VMs beim ersten Start. Ähnlich wie bei benutzerdefinierten Azure-Skripterweiterungen können Sie Init Pakete installieren und Befehle auf Linux-VMs ausführen. Sie können cloud-init für Softwareinstallation, Systemkonfiguration und Inhalts-Staging verwenden. Azure enthält viele cloudinitfähige VM-Images für bekannte Linux-Distributionen. Eine vollständige Liste finden Sie unter cloudinit-Unterstützung für VMs in Azure.

Azure-Bereitstellungsskriptressource: Wenn Sie Azure bereitstellen, müssen Sie möglicherweise beliebigen Code zum Bootstrapping der Verwaltung von Benutzerkonten, Kubernetes-Pods oder Abfragen von Daten aus einem Nicht-Azure-System ausführen. Da auf keine dieser Vorgänge über die Azure-Kontrollebene zugegriffen werden kann, ist ein separater Mechanismus erforderlich. Weitere Informationen finden Sie unter Microsoft.Resources deploymentScripts. Wie jede andere Azure-Ressource, die Bereitstellungsskriptressource:

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

  • Enthält Abhängigkeiten von Azure Resource Manager-Vorlagen in anderen Ressourcen.

  • Verbraucht Eingaben und erzeugt Ausgabe.

  • Verwendet eine vom Benutzer 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 dem Azure CLI- und 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 bootstrapieren, indem Sie Ihre Konfigurationseinstellungen in GitHub-Repositorys deklarieren. Da AKS-Clusterdateien in einem GitHub-Repository gespeichert werden, werden sie versionsiert, und Änderungen zwischen Versionen können problemlos nachverfolgt werden. Kubernetes-Controller werden in den Clustern ausgeführt und synchronisieren den Clusterzustand kontinuierlich mit dem gewünschten Zustand, der im Git-Repository deklariert ist, indem die Dateien aus dem Repository abgerufen werden. Weitere Informationen finden Sie unter AKS-Basisreferenzarchitektur.

Konfigurationsverwaltung

Azure Automation State Configuration ist ein DSC-Verwaltungstool, das vom Azure Policy-Gastkonfigurationsfeature verwaltet wird, 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 Konfiguration ist ein Dienst, mit dem Sie Ihre Anwendungseinstellungen und Featurekennzeichnungen 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 von Azure Monitoring Agent verfolgt die Betriebssystemkonfigurationsabweichung sowohl in Azure-VMs als auch in arcfähigen VMs. Dies automatisiert die Erkennung von Drift, den ausgeführten Inventardiensten und installierten Paketen auf den virtuellen Computern in Ihrer Workload. Elemente, die von der Änderungsnachverfolgung und dem Bestand nachverfolgt werden, umfassen:

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

Checkliste für operative Exzellenz

Lesen Sie den vollständigen Satz von Empfehlungen.