Empfehlungen für die Implementierung der Automatisierung

Gilt für diese Empfehlung für gut architektonische Framework Operational Excellence:

OE:09 Automatisieren Sie alle Aufgaben, die nicht von der Einsicht und Anpassungsfähigkeit des menschlichen Eingreifens profitieren, sind sehr verfahrensual und haben eine Haltbarkeit, die eine Rendite für Automatisierungsinvestitionen liefert. Wählen Sie nach Möglichkeit Off-the-Shelf-Software für Automatisierung und benutzerdefinierte Implementierungen aus. Behandeln Sie alle Automatisierungen genauso wie Workloadkomponenten, und wenden Sie die Well-Architected Framework-Säulen auf deren Entwurf und Implementierung an.

In diesem Leitfaden werden die Empfehlungen für die Einführung von Automatisierung in Ihrer Workload beschrieben. Sie können Aufgaben automatisieren, die sich wiederholend und anfällig für menschliche Fehler sind, um Ihren Teams zu helfen, Effizienz zu erzielen und Standards einzuhalten. Automatisieren Sie Aufgaben, damit Ihre Arbeitsauslastung optimiert und konsistent ist. Die Automatisierung ermöglicht es Ihren Betriebs- und Entwicklungsteams, effizienter zu sein, da sie mehr Zeit für die Arbeit an anderen Verbesserungen erhalten. Automatisierung ist ein leistungsstarkes Tool in allen Aspekten der Workloadverwaltung. Implementieren Sie die Automatisierung durchdacht, um Ihre Organisation zu stärken.

Wichtige Entwurfsstrategien

Während Sie Ihre Arbeitsauslastung entwickeln, suchen Sie nach Möglichkeiten, die Automatisierung zu nutzen, um den Verwaltungsaufwand zu reduzieren und den menschlichen Fehler zu minimieren. Bewerten Sie diese Verkaufschancen, und berücksichtigen Sie den Wert, den sie in Ihre Organisation bringen. Um den Wert Ihrer Investition in die Automatisierung zu maximieren, priorisieren Sie Aufgaben, die unkompliziert, prozedural sind und eine lange Haltbarkeit haben. Das Anwenden der Automatisierung ist keine All-or-Nothing-Taktik. Es gibt Arbeitsströme, die Operationen haben können, die menschliche Intervention erfordern, z. B. Entscheidungspunkte. Diese Arbeitsabläufe können weiterhin von der Automatisierung profitieren, um andere Aufgaben auszuführen.

Auswerten von Aufgaben zum Automatisieren

Berücksichtigen Sie die folgenden Empfehlungen, um sicherzustellen, dass Sie Aufgaben priorisieren, die am meisten von der Automatisierung profitieren:

  • Ziel für einfache Siege. Konzentrieren Sie sich auf Aufgaben, die sehr prozedural und anfällig für menschliche Fehler sind. Diese Aufgaben können sehr automatisiert werden. Sie sind klar definiert, sie sind frei von Variablen, die Komplexität hinzufügen, und sie werden als Teil normaler Vorgänge ausgeführt. Priorisieren Sie dagegen nicht das Automatisieren von Aufgaben, die komplexe Skripts schreiben müssen, um variable Phänomene zu berücksichtigen, oder Aufgaben, die selten auftreten.

    Beispiele für hochautomatierbare Aufgaben sind neustartende Server, das Erstellen von Konten und das Übertragen von Protokollen in einen Datenspeicher. Diese Aufgaben können in einem Zeitplan auftreten, als Reaktion auf ein Ereignis oder eine Überwachungswarnung oder je nach Bedarf basierend auf externen Faktoren.

  • Suchen Sie nach Möglichkeiten, um Betreiber zu unterstützen und Ihre KMU freizugeben. Möglicherweise haben Sie Experten in Ihrer Organisation, die sich auf Eskalationen verlassen, die möglicherweise unnötig sind. Beispielsweise können Ihre Datenbankadministratoren routinemäßig Anforderungen zum Erstellen neuer Datenbanken erhalten, wenn Sie neue Kunden in Ihre mehrinstanzenfähige Lösung integrieren. Wenn Sie ein Self-Service-Portal für Ihr Helpdesk-Team erstellen, können Sie es ihnen ermöglichen, eine leere Datenbank selbst sicher zu erstellen. Oder als Zwischenschritt können Sie die Anforderungen und die Schritte für die KMU automatisieren, indem Sie Skripts zum Ausführen erstellen.

  • Konzentrieren Sie sich auf Ihre Rendite. Die hochwertige Automatisierung erfordert einen minimalen Verwaltungsaufwand und fügt ein nachweisliches Maß an Effizienz hinzu. Wenn Sie Ihr Betriebsteam jeden Tag eine Stunde speichern können, indem Sie Datenbankeinträge automatisieren, geben Sie ihnen Zeit, andere Verbesserungsbereiche zu finden.

Bereiche zur Implementierung der Automatisierung

Übernehmen Sie die Automatisierung während ihres gesamten Arbeitsauslastungslebenszyklus– von der Entwicklung bis hin zum täglichen Management. Verwenden Sie die folgende Liste der Beispiele, um die breiten Bereiche Ihres Workloadlebenszyklus zu berücksichtigen, die von der Automatisierung profitieren können. Sie können Folgendes automatisieren:

  • Pipelinedefinition, Ausführung und Verwaltung: Verwenden Sie tools für kontinuierliche Integration und kontinuierliche Übermittlung (CI/CD), z. B. Azure DevOps und andere DevOps-Tools, um eine Pipeline und deren Ausführung automatisch zu definieren. Diese Tools können Ihnen dabei helfen, CI/CD-Aufgaben oder andere Aufgaben wie das Erstellen von Berichten zu automatisieren.

  • Bereitstellungen: Verwenden Sie Tools wie Azure Resource Manager-Vorlagen, Bicep, Terraform und Ansible, um Ihre Workloadentwicklungs- und Freigabeprozesse zu automatisieren. Stellen Sie Ihre Infrastruktur mit den gleichen Automatisierungsplattformen bereit und aktualisieren Sie sie mithilfe einer Infrastruktur wie code (IaC)-Ansatz.

  • Tests: Viele Tools stehen zur Automatisierung Ihrer Testprozesse zur Verfügung. Diese Werkzeuge können einen erheblichen Aufwand von Ihrem Qualitätssicherungsteam entlasten und sicherstellen, dass Tests standardisierte und zuverlässig sind.

  • Skalierung: Verwenden Sie plattformbezogene Funktionen und andere Tools, z. B. Orchestrierungstools, um Ihre Infrastruktur automatisch zu skalieren, wenn die Auslastung zunimmt oder verringert wird.

  • Überwachung und Warnung: Verwenden Sie Tools, die in Ihrer Überwachungslösung verfügbar sind, um neu bereitgestellte Ressourcen automatisch zu registrieren und warnungsgesteuerte Aktionen zu konfigurieren, um die Behebung zu erhöhen, wenn Probleme auftreten.

  • Self-Healing: Verwenden Sie Warnungen, die von Ihrem Überwachungssystem generiert werden, um Aktionen zu automatisieren und fehlerhafte Komponenten oder Aufträge wiederherzustellen. Weitere Informationen finden Sie unter Empfehlungen zur Selbstheilung und Selbsterhaltung.

  • Konfigurationsverwaltung: Verwenden Sie die Orchestrierungs- und Richtlinientools, um sicherzustellen, dass alle Ihre Ressourcen die gleiche Konfiguration ausführen und dass die Complianceanforderungen in Ihrer Workload erzwungen werden.

  • Andere administrative Aufgaben: Verwenden Sie Skripts, um sich wiederholende Aufgaben wie das Aktualisieren von Datenbankeinträgen oder DNS-Einträgen zu automatisieren.

  • Genehmigungen: Ermöglichen Sie Systemen, Genehmigungsentscheidungen basierend auf vordefinierten Regeln automatisch zu treffen, um die Effizienz für Workflows zu verbessern, die Genehmigungsgates besitzen. Diese Methode fördert die Verwendung standardisierter Formulare und Vorlagen, wodurch die Effizienz der Prozesse erhöht wird. Die automatische Genehmigung in hohen Umgebungen kann riskant sein. Konzentrieren Sie sich genau, und testen Sie Ihre automatisierten Genehmigungen, um sicherzustellen, dass bestimmte Kriterien definiert sind, um die Genehmigung zu erteilen.

  • Neuer Benutzer und das Onboarding neuer Mitarbeiter: Sie können viele Aufgaben im Zusammenhang mit dem Onboarding neuer Anwendungsbenutzer oder neuer Mitarbeiter automatisieren, z. B. Datenbankaktualisierungen und Erstellung von Anmeldeinformationen.

  • Überwachung und Warnung: Nutzen Sie die Automatisierungsfunktionalität, die Ihre Observability-Plattform bereitstellt. Registrieren Sie neue Geräte automatisch, um Anomalien zu überwachen und zu benachrichtigen.

Auswählen eines geeigneten Automatisierungstools

Die Entwicklung Eigener Automatisierungs-Inhouse ist zeitintensiv und kann ihrem Entwicklungsteam Verwaltungslasten zuführen. Sie müssen ein internes Automatisierungstool wie jede andere interne Software pflegen. Es wird empfohlen, dass Sie Offlinewerkzeuge verwenden, wenn sie Ihre Anforderungen erfüllen können. Zwischen kommerziellen, Open Source- und Cloudplattform bereitgestellten Tools gibt es viele Optionen. Wahrscheinlich verwenden Sie eine Vielzahl von Tools, um die benötigte Automatisierung zu erstellen. Verlassen Sie sich auf Ihr internes Know-how, um Ihre Entscheidungen bei der Bewertung von Tools zu unterstützen. Möglicherweise ist Ihr Team mit bestimmten Entwicklungssprachen und Frameworks vertrauter. Sie können sich zunächst auf off-the-shelf Tools konzentrieren, die sie ohne eine hohe Lernkurve verwenden können. Berücksichtigen Sie die Aufgaben, die Sie mit der Automatisierung behandeln möchten, und investieren Sie in die Tools, die diese Aufgaben gezielt adressieren können. Beschaffen Sie keine Tools, die Sie im Allgemeinen bevorzugen, und berücksichtigen Sie dann die Aufgaben danach.

Berücksichtigen Sie Faktoren, die Ihre Vorgänge beim Erstellen Ihrer Automatisierung erschweren können, z. B. Versionssperre und Plug-In-Übernutzung. Plug-Ins wie Jenkins oder Azure DevOps-Plug-Ins sind eine hervorragende Möglichkeit, Funktionen hinzuzufügen. Sie sollten Plug-Ins einführen, wenn sie Ihren Automatisierungszielen zugute kommt. Wenn Sie jedoch mehrere Plug-Ins verwenden, um eine einzelne Aufgabe auszuführen, kann dies Automatisierungsupdates und die Problembehandlung erschweren. Seien Sie in Ihrer Verwendung von Plugins sorgfältig. Vermeiden Sie auch Lösungen mit Frameworkversionsabhängigkeiten, da sie eine Belastung für die Beibehaltung im Laufe der Zeit darstellen. Um das Risiko dieser Art von Problemen zu minimieren, standardisieren Sie Ihre Auswahl an Automatisierungstools und Plug-Ins, und verwenden Sie die Quellcodeverwaltung für alle Automatisierungsprojekte.

Integrieren der Automatisierung in Ihre Workload

Für jedes Tool, das Sie zum Erstellen Ihrer Automatisierung verwenden, machen Sie es für Ihre Operatoren leicht zugänglich und verwaltbar. Stellen Sie klare und benutzerfreundliche Schnittstellen für Ihr Workloadteam bereit. Sie können Zugriff auf CI/CD-Pipelines, APIs und Bibliotheken bereitstellen. Wie die von der Automatisierung unterstützte Arbeitsauslastung müssen Sie die Automatisierung ganzheitlich verwalten. Sichern Sie die Automatisierung auf das gleiche Maß wie andere Workloadkomponenten. Überwachen Sie die Automatisierung, und unterliegt sie den gleichen Testprotokollen wie andere Workloadkomponenten.

Überlegungen

  • Manchmal überwiegen die Effizienz, die Sie von der Automatisierung gewinnen, den Verwaltungsaufwand für die Entwicklung Ihrer eigenen Lösung, wenn keine off-the-shelf-Lösungen Ihren Anforderungen entsprechen. Seien Sie in diesen Fällen in Ihren Entwicklungsbemühungen sorgfältig. Konzentrieren Sie sich eng darauf, nur das zu entwickeln, was Sie brauchen, um Lücken zu decken, die Sie nicht mit standardmäßigen Lösungen lösen können, und minimieren Sie Komplexitäten wie Abhängigkeiten.

  • Komplexe Automatisierung, die ein hohes Maß an Wartung erfordert, kann für Betriebsteams schwierig sein, diese zu verwalten und zu beheben. Halten Sie automatisierte Aufgaben eng auf das Ausführen einzelner Aufträge konzentriert. Versuchen Sie, Abhängigkeiten von anderen Tools oder Komponenten zu minimieren.

  • Denken Sie daran, manuelle Prozesse zu verwenden. Wenn Sie sich entscheiden, einen Vorgang nicht zu automatisieren, dokumentieren Sie den manuellen Prozess sorgfältig, indem Sie eine schrittweise Prüfliste für Operatoren erstellen. Diese Praxis reduziert die Wahrscheinlichkeit eines menschlichen Fehlers, z. B. einen Operator, der versehentlich den falschen Prozess ausführt. Diese Dokumentation hilft Ihnen auch bei der Gestaltung der Automatisierung für diesen Prozess in Zukunft.

  • Wenn Sie einen manuellen und automatisierten Hybridansatz verwenden, müssen Sie besonders vorsichtig sein. Wenn ein Skript den größten Teil eines Prozesses ausführt, aber dann einen Menschen für einen bestimmten Teil oder eine bestimmte Entscheidung zurückgibt, ist es wichtig, dass Sie der Person den erforderlichen Kontext und informationen geben, um eine fundierte Entscheidung zu treffen.

Azure-Erleichterung

Azure bietet viele Tools, mit denen Sie Aufgaben für Ihre Workload automatisieren können.

IaC-Tools: Sie können Terraform, Bicep und Azure Resource Manager für IaC-Bereitstellungen verwenden. Je nach Ihren Anforderungen und der Vertrautheit Ihres Teams mit den Tools können Sie ein oder mehrere dieser Tools für Ihre Bereitstellungen und die Verwaltung von Ressourcen verwenden.

Azure Functions: Azure Functions ist ein serverloses Tool, mit dem Sie Aufgaben mithilfe Ihrer bevorzugten Entwicklungssprache automatisieren können. Funktionen bieten einen umfassenden Satz von ereignisgesteuerten Triggern und Bindungen, die Ihre Funktionen mit anderen Diensten verbinden. Sie müssen keinen zusätzlichen Code schreiben.

GitHub-Aktionen für Azure: Sie können GitHub-Aktionen für Azure verwenden, um CI/CD-Prozesse zu automatisieren. GitHub-Aktionen werden in Azure integriert, um Bereitstellungen zu vereinfachen. Sie können Workflows erstellen, die jede Pullanforderung in Ihrem Repository erstellen und testen oder zusammengeführte Pullanforderungen in der Produktion bereitstellen.

GitHub-Aktionen gehen über DevOps hinaus und ermöglichen es Ihnen, Workflows auszuführen, wenn andere Ereignisse in Ihrem Repository auftreten. Sie können beispielsweise einen Workflow ausführen, um automatisch geeignete Bezeichnungen hinzuzufügen, wenn jemand ein neues Problem in Ihrem Repository erstellt.

Azure Automation: PowerShell und Python sind beliebte Programmiersprachen zum Automatisieren von operativen Aufgaben. Verwenden Sie diese Sprachen, um Vorgänge wie das Neustarten von Diensten, das Übertragen von Protokollen zwischen Datenspeichern und die Skalierungsinfrastruktur durchzuführen, um den Bedarf zu erfüllen. Sie können diese Vorgänge im Code ausdrücken und bei Bedarf ausführen. Allein diese Sprachen bieten keine Plattform für zentrale Verwaltung, Versionssteuerung oder Ausführungsverlauf. In den Sprachen fehlt auch ein systemeigener Mechanismus zum Reagieren auf Ereignisse wie überwachungsgesteuerte Warnungen. Um diese Funktionen bereitzustellen, benötigen Sie eine Automatisierungsplattform.

Die Automatisierung bietet eine von Azure gehostete Plattform zum Hosten und Ausführen von PowerShell- und Python-Code in cloud- und lokalen Umgebungen, sowohl Azure als auch nicht-Azure. PowerShell- und Python-Code werden in einem Automatisierungs-Runbook gespeichert. Nutzungsarten von Automation:

  • Trigger runbooks on demand, on a schedule, or through a webhook.

  • Ausführungsverlauf und Protokollierung.

  • Integrieren Sie einen geheimen Speicher.

  • Integrieren der Quellcodeverwaltung.

Azure Update Manager: Update Manager ist ein einheitlicher Dienst, mit dem Updates für virtuelle Computer verwaltet und verwaltet werden können. Sie können die Kompatibilität von Windows- und Linux-Updates über Ihre Arbeitsauslastung hinweg überwachen. Sie können mit Update Manager auch Updates in Echtzeit durchführen oder innerhalb eines definierten Wartungsfensters planen. Verwenden Sie den Update-Manager, um:

  • Überwachen Sie die Einhaltung Ihrer gesamten Maschinenflotte.
  • Planen von wiederkehrenden Updates
  • Bereitstellen wichtiger Updates

Azure-Bereitstellungsumgebungen: Bereitstellungsumgebungen ermöglichen Es Entwicklungsteams, mithilfe von projektbasierten Vorlagen schnell eine konsistente App-Infrastruktur zu erstellen. Diese Vorlagen minimieren die Einrichtungszeit und maximieren die Sicherheit, Compliance und Kosteneffizienz. Eine Bereitstellungsumgebung ist eine Sammlung von Azure-Ressourcen, die in vordefinierten Abonnements bereitgestellt werden. Entwicklungsinfrastrukturadministratoren können Unternehmenssicherheitsrichtlinien erzwingen und einen kuratierten Satz vordefinierter IaC-Vorlagen bereitstellen.

Entwicklungsinfrastrukturadministratoren definieren Bereitstellungsumgebungen als Katalogelemente. Katalogelemente werden in einem GitHub- oder Azure DevOps-Repository gehostet, das als Katalog bezeichnet wird. Ein Katalogelement besteht aus einer IaC-Vorlage und einer Manifest.yaml-Datei.

Sie können die Erstellung von Bereitstellungsumgebungen skripten und die Umgebungen programmgesteuert verwalten.

Azure Logic Apps und Microsoft Power Automate: Wenn Sie eine benutzerdefinierte digitale Prozessautomatisierung (Digital Process Automation, DPA) erstellen, um Workloadaufgaben wie Genehmigungsflüsse oder ChatOps-Integrationen zu verarbeiten, sollten Sie die Verwendung von Logic Apps oder Power Automate in Betracht ziehen. Sie können Workflows aus integrierten Connectors und Vorlagen erstellen. Logik-Apps und Power Automate basieren auf derselben zugrunde liegenden Technologie und eignen sich beide gut für triggerbasierte oder zeitbasierte Aufgaben.

Automatische Skalierung: Viele Azure-Technologien verfügen über integrierte Funktionen für die automatische Skalierung. Sie können auch andere Dienste so programmieren, dass sie automatisch skaliert werden, indem Sie APIs verwenden. Weitere Informationen finden Sie unter Empfehlungen für das Entwerfen einer zuverlässigen Skalierungsstrategie.

Azure Monitor-Aktionsgruppen: Verwenden Sie Azure Monitor-Aktionsgruppen, um automatisch Selbstheilungsvorgänge auszuführen, wenn eine Warnung ausgelöst wird. Sie können diese Vorgänge mithilfe eines Runbook, einer Azure-Funktion oder eines Webhooks definieren.

Beispiel

Ein Beispiel für die Verwendung der Automatisierung zusammen mit anderen Azure-Diensten finden Sie unter Ops-Automatisierung mithilfe von Azure Event Grid. In diesem Beispiel werden Logik-Apps und Ereignisraster verwendet, um operative Aufgaben zu automatisieren.

Checkliste für operative Exzellenz

Lesen Sie den vollständigen Satz von Empfehlungen.