Share via


Empfehlungen für die Implementierung von Automatisierung

Gilt für diese Well-Architected Framework Operational Excellence Checklist-Empfehlung:

OE:09 Automatisieren Sie alle Aufgaben, die nicht von der Einsicht und Anpassungsfähigkeit des menschlichen Eingreifens profitieren, sehr prozedural sind und eine Haltbarkeit haben, die einen Return on Automation Investment ergibt. Wählen Sie nach Möglichkeit Standardsoftware für Automatisierung und benutzerdefinierte Implementierungen aus. Behandeln Sie die gesamte Automatisierung 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 wiederholen und anfällig für menschliche Fehler sind, um Ihren Teams dabei zu helfen, Effizienz zu erzielen und Standards einzuhalten. Automatisieren Sie Aufgaben, um Ihre Workload zu optimieren und konsistent zu machen. Die Automatisierung ermöglicht es Ihren Betriebs- und Entwicklungsteams, effizienter zu sein, da sie mehr Zeit haben, an anderen Verbesserungen zu arbeiten. Automatisierung ist ein leistungsstarkes Tool in allen Aspekten der Workloadverwaltung. Implementieren Sie die Automatisierung durchdacht, um Ihre organization zu stärken.

Wichtige Entwurfsstrategien

Suchen Sie während der Entwicklung Ihrer Workload nach Möglichkeiten, die Automatisierung zu nutzen, um den Verwaltungsaufwand zu verringern und menschliche Fehler zu minimieren. Bewerten Sie diese Möglichkeiten, und berücksichtigen Sie den Wert, den sie für Ihre organization. Um den Wert Ihrer Investitionen in die Automatisierung zu maximieren, priorisieren Sie Aufgaben, die einfach und prozedural sind und eine lange Lebensdauer haben. Das Anwenden von Automatisierung ist keine Alles-oder-Nichts-Taktik. Es gibt Arbeitsströme, die Möglicherweise Vorgänge aufweisen, die menschliches Eingreifen erfordern, z. B. Entscheidungsfindungspunkte. Diese Arbeitsströme können weiterhin von der Automatisierung profitieren, um andere Aufgaben auszuführen.

Zu automatisierende Zielaufgaben

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

  • Streben Sie einfache Gewinne an. Konzentrieren Sie sich auf Aufgaben, die sehr prozedural und anfällig für menschliche Fehler sind. Diese Aufgaben sind hochgradig automatisierbar. Sie sind klar definiert, sind frei von Variablen, die Komplexität erhöhen, und sie werden im Rahmen normaler Vorgänge ausgeführt. Priorisieren Sie dagegen nicht die Automatisierung von Aufgaben, die das Schreiben komplexer Skripts erfordern, um Variablenphänomene oder selten auftretende Aufgaben zu berücksichtigen.

    Beispiele für hochgradig automatisierbare Aufgaben sind das Neustarten von Servern, das Erstellen von Konten und das Übertragen von Protokollen in einen Datenspeicher. Diese Aufgaben können nach einem Zeitplan, als Reaktion auf ein Ereignis oder eine Überwachungswarnung oder bei Bedarf basierend auf externen Faktoren ausgeführt werden.

  • Suchen Sie nach Möglichkeiten, die Betreiber zu stärken und Ihre KMU frei zu machen. Möglicherweise verfügen Sie über Experten in Ihrem organization, auf die sie sich bei möglicherweise unnötigen Eskalationen verlassen. Beispielsweise können Ihre Datenbankadministratoren regelmäß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, selbst sicher eine leere Datenbank zu erstellen. Alternativ können Sie als Zwischenschritt die Anforderungen und schritte für das KMU automatisieren, indem Sie skripts erstellen, die ausgeführt werden sollen.

  • Konzentrieren Sie sich auf Ihre Rendite. Die hochwertige Automatisierung erfordert einen minimalen Verwaltungsaufwand und sorgt für ein nachweisbares Maß an Effizienz. Wenn Sie Ihrem Betriebsteam jeden Tag eine Stunde sparen können, indem Sie beispielsweise Datenbankeinträge automatisieren, geben Sie ihm Zeit, andere Bereiche zur Verbesserung zu finden.

Bereiche, in denen Automatisierung implementiert werden soll

Übernehmen Sie Automatisierung während Ihres gesamten Workloadlebenszyklus, von der Entwicklung bis zur täglichen Verwaltung. Verwenden Sie die folgende Liste von Beispielen, um die großen Bereiche Ihres Workloadlebenszyklus zu berücksichtigen, die von der Automatisierung profitieren können. Sie können Folgendes automatisieren:

  • Definition, Ausführung und Verwaltung von Pipelines: Verwenden Sie CI/CD-Tools (Continuous Integration und Continuous Delivery), z. B. Azure DevOps und andere DevOps-Tools, um eine Pipeline und ihre Ausführung automatisch zu definieren. Mit diesen Tools können Sie CI/CD-Aufgaben oder andere Aufgaben automatisieren, z. B. das Erstellen von Berichten.

  • Bereitstellungen: Verwenden Sie Tools wie Azure Resource Manager-Vorlagen, Bicep, Terraform und Ansible, um Ihre Workloadentwicklungs- und Releaseprozesse zu automatisieren. Stellen Sie Ihre Infrastruktur mit denselben Automatisierungsplattformen bereit und aktualisieren Sie sie mithilfe eines IaC-Ansatzes (Infrastructure-as-Code).

  • Testen: Zum Automatisieren Ihrer Testprozesse stehen viele Tools zur Verfügung. Diese Tools können Ihr Qualitätssicherungsteam erheblich entlasten und sicherstellen, dass Tests standardisiert und zuverlässig sind.

  • Skalierung: Verwenden Sie plattformseitig bereitgestellte Funktionen und andere Tools, z. B. Orchestrierungstools, um Ihre Infrastruktur automatisch zu skalieren, wenn die Auslastung steigt oder sinkt.

  • Überwachung und Warnungen: Verwenden Sie Tools, die in Ihrer Überwachungslösung verfügbar sind, um neu bereitgestellte Ressourcen automatisch zu registrieren und Warnungen ausgelöste Aktionen zu konfigurieren, um die Behebung bei auftretenden Problemen zu erleichtern.

  • Selbstreparatur: 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 Orchestrierungs- und Richtlinientools, um sicherzustellen, dass alle Ihre Ressourcen die gleiche Konfiguration ausführen und die Complianceanforderungen für Ihre Workload erzwungen werden.

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

  • Genehmigungen: Ermöglichen Sie Systemen das automatische Treffen von Genehmigungsentscheidungen basierend auf vordefinierten Regeln, um die Effizienz von Workflows mit Genehmigungsgates zu verbessern. Diese Methode fördert die Verwendung standardisierter Formulare und Vorlagen, was die Effizienz der Prozesse erhöht. Die automatische Genehmigung in umgebungen mit hohem Risiko kann riskant sein. Konzentrieren Sie sich auf Ihre automatisierten Genehmigungen und testen Sie sie, um sicherzustellen, dass bestimmte Kriterien für die Genehmigungserteilung definiert sind.

  • Onboarding neuer Benutzer und neuer Mitarbeiter: Sie können viele Aufgaben automatisieren, die mit dem Onboarding neuer Anwendungsbenutzer oder neuer Mitarbeiter verbunden sind, z. B. Datenbankupdates und Erstellung von Anmeldeinformationen.

  • Überwachung und Warnung: Nutzen Sie die Automatisierungsfunktionen, die Ihre Beobachtungsplattform bietet. Registrieren Sie neue Geräte automatisch, um Anomalien zu überwachen und zu warnen.

Auswählen eines geeigneten Automatisierungstools

Die eigene Automatisierungsentwicklung im eigenen Haus ist zeitintensiv und kann Ihr Entwicklungsteam mit Verwaltungsaufwand belasten. Sie müssen ein internes Automatisierungstool wie jede andere interne Software verwalten. Es wird empfohlen, dass Sie sofort einsatzbereite Tools verwenden, wenn sie Ihre Anforderungen erfüllen können. Zwischen kommerziellen, Open Source und Cloudplattformen bereitgestellten Tools stehen viele Optionen zur Verfügung. Es ist wahrscheinlich, dass Sie eine Vielzahl von Tools verwenden, um die automatisierung zu erstellen, die Sie benötigen. Verlassen Sie sich auf Ihre interne Expertise, um Ihre Entscheidungen bei der Bewertung von Tools zu unterstützen. Ihr Team ist möglicherweise mit bestimmten Entwicklungssprachen und Frameworks vertrauter. Sie können sich zunächst auf standardfähige Tools konzentrieren, die sie ohne hohe Lernkurve verwenden können. Denken Sie über die Aufgaben nach, die Sie mit der Automatisierung erledigen möchten, und investieren Sie in die Tools, die diese Aufgaben speziell behandeln können. Beschaffen Sie keine Tools, die Sie im Allgemeinen bevorzugen, und berücksichtigen Sie anschließend die Aufgaben.

Achten Sie auf Faktoren, die Ihre Vorgänge beim Erstellen Ihrer Automatisierung erschweren können, z. B. Die Versionssperre und die Übernutzung von Plug-Ins. Plug-Ins, wie Jenkins- oder Azure DevOps-Plug-Ins, sind eine hervorragende Möglichkeit, Funktionen hinzuzufügen. Sie sollten Plug-Ins einführen, wenn dies 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 bei der Verwendung von Plugins umsichtig. Vermeiden Sie außerdem Lösungen mit Frameworkversionsabhängigkeiten, da sie im Laufe der Zeit zu verwalten sind. 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 von Automatisierung in Ihre Workload

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

Überlegungen

  • Manchmal überwiegen die Effizienzsteigerungen, die Sie aus der Automatisierung erzielen, den Verwaltungsaufwand bei der Entwicklung Ihrer eigenen Lösung, wenn keine Standardlösungen Ihren Anforderungen entsprechen. Seien Sie in diesen Fällen bei Ihren Entwicklungsbemühungen umsichtig. Konzentrieren Sie sich darauf, nur das zu entwickeln, was Sie benötigen, um Lücken zu schließen, die Sie mit Standardlösungen nicht 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 zu verwalten und Problembehandlungen zu bewältigen sein. Lassen Sie automatisierte Aufgaben nur auf die Ausführung diskreter Aufträge konzentrieren. Versuchen Sie, Abhängigkeiten von anderen Tools oder Komponenten zu minimieren.

  • Achten Sie darauf, manuelle Prozesse zu verwenden. Wenn Sie sich entscheiden, einen Vorgang nicht zu automatisieren, dokumentieren Sie den manuellen Prozess gründlich, indem Sie eine schrittweise Prüfliste für Operatoren erstellen. Diese Praxis verringert die Wahrscheinlichkeit eines menschlichen Fehlers, wie ein Operator, der versehentlich den falschen Prozess ausführt. Diese Dokumentation hilft Ihnen auch beim Entwerfen der Automatisierung für diesen Prozess in der 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, dann aber für einen bestimmten Teil oder eine bestimmte Entscheidung an einen Menschen zurückschiebt, ist es wichtig, dass Sie der Person den erforderlichen Kontext und die erforderlichen 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. Abhängig von Ihren Anforderungen und der Vertrautheit Ihres Teams mit den Tools können Sie eines 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. Functions bietet einen umfassenden Satz ereignisgesteuerter Trigger und Bindungen, die Ihre Funktionen mit anderen Diensten verbinden. Sie müssen keinen zusätzlichen Code schreiben.

GitHub Actions für Azure: Sie können GitHub Actions für Azure verwenden, um CI/CD-Prozesse zu automatisieren. GitHub Actions ist in Azure integriert, um Bereitstellungen zu vereinfachen. Sie können Workflows erstellen, die alle Pull Requests in Ihrem Repository erstellen und testen, oder zusammengeführte Pull Requests in der Produktion bereitstellen.

GitHub Actions geht über DevOps hinaus und ermöglicht 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 operativer Aufgaben. Verwenden Sie diese Sprachen, um Vorgänge wie das Neustarten von Diensten, das Übertragen von Protokollen zwischen Datenspeichern und die Skalierung der Infrastruktur nach Bedarf auszuführen. Sie können diese Vorgänge im Code ausdrücken und bei Bedarf ausführen. Allein bieten diese Sprachen keine Plattform für zentrale Verwaltung, Versionskontrolle oder Ausführungsverlauf. Den Sprachen fehlt auch ein nativer Mechanismus zum Reagieren auf Ereignisse wie überwachungsgesteuerte Warnungen. Um diese Funktionen bereitzustellen, benötigen Sie eine Automatisierungsplattform.

Automation bietet eine von Azure gehostete Plattform zum Hosten und Ausführen von PowerShell- und Python-Code in Cloud- und lokalen Umgebungen, sowohl in Azure als auch außerhalb von Azure. PowerShell- und Python-Code wird in einem Automation-Runbook gespeichert. Verwenden Sie Automation für Folgendes:

  • Lösen Sie Runbooks bei Bedarf, nach einem Zeitplan oder über einen Webhook aus.

  • Ausführungsverlauf und Protokollierung.

  • Integrieren eines Geheimnissespeichers

  • Integrieren der Quellcodeverwaltung.

Azure Update Manager: Update Manager ist ein einheitlicher Dienst zum Verwalten und Steuern von Updates für virtuelle Computer. Sie können die Updatekonformität von Windows und Linux über Ihre Workload hinweg überwachen. Sie können den Update-Manager auch verwenden, um Updates in Echtzeit zu erstellen oder sie innerhalb eines definierten Wartungsfensters zu planen. Verwenden Sie den Update-Manager für Folgendes:

  • Überwachen Sie die Compliance für Ihren gesamten Maschinenpark.
  • Planen von wiederkehrenden Updates
  • Bereitstellen kritischer Updates

Azure-Bereitstellungsumgebungen: Bereitstellungsumgebungen ermöglichen es Entwicklungsteams, mithilfe projektbasierter Vorlagen schnell eine konsistente App-Infrastruktur zu erstellen. Diese Vorlagen minimieren die Einrichtungszeit und maximieren Sicherheit, Compliance und Kosteneffizienz. Eine Bereitstellungsumgebung ist eine Sammlung von Azure-Ressourcen, die in vordefinierten Abonnements bereitgestellt werden. Entwicklungsinfrastrukturadministratoren können Unternehmenssicherheitsrichtlinien erzwingen und eine zusammengestellte Gruppe 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 mit Skripts erstellen und die Umgebungen programmgesteuert verwalten.

Azure Logic Apps und Microsoft Power Automate: Wenn Sie benutzerdefinierte digitale Prozessautomatisierung (DPA) erstellen, um Workloadaufgaben wie Genehmigungsflüsse oder das Erstellen von ChatOps-Integrationen zu verarbeiten, sollten Sie Logic Apps oder Power Automate verwenden. Sie können Workflows aus integrierten Connectors und Vorlagen erstellen. Logic Apps und Power Automate basieren auf derselben zugrunde liegenden Technologie und eignen sich gut für triggerbasierte oder zeitbasierte Aufgaben.

Automatische Skalierung: Viele Azure-Technologien verfügen über integrierte automatische Skalierungsfunktionen. Sie können auch andere Dienste für die automatische Skalierung mithilfe von APIs programmieren. Weitere Informationen finden Sie unter Empfehlungen zum 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 Runbooks, einer Azure-Funktion oder eines Webhooks definieren.

Beispiel

Ein Beispiel für die Verwendung von Automation zusammen mit anderen Azure-Diensten finden Sie unter Automatisierung von Vorgängen mithilfe von Azure Event Grid. In diesem Beispiel werden Logic Apps und Event Grid verwendet, um operative Aufgaben zu automatisieren.

Checkliste für operationale Exzellenz

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