Freigeben über


Automatisierung

In einer softwaredefinierten Cloudinfrastruktur verwenden Teams verschiedene Tools und Techniken, um die Infrastruktur bereitzustellen, zu konfigurieren und zu verwalten. Wenn Ihre Teams sich weiterentwickeln und größer werden, werden sie Portale und manuelle Aufgaben mehr und mehr durch Code und Automatisierungen zur Bereitstellung, Konfiguration und Verwaltung von Infrastruktur und Diensten ersetzen.

Überlegungen zur Plattformautomatisierung

  • Durch die Umsetzung der Methode „Alles als Code“ (Everything-as-Code, EaC) können Ihre Teams wichtige Vorteile nutzen, eine starke Entwicklungskultur einführen und jedem Team ermöglichen zu prüfen, welche Ressourcen wie bereitgestellt werden. EaC hilft Ihren Plattformteams auch bei der Einführung wichtiger Entwicklungspraktiken, die ihre Flexibilität und Effizienz steigern. Ihre Teams können Änderungen nachverfolgen und steuern, welche in die Produktion übernommen werden, indem sie Code in Repositorys speichern und Versionskontrollsysteme verwenden, um sie zu verwalten.
  • Teams können das 4-Augen-Prinzip befolgen und Peerprogrammierung oder Peer Review verwenden, um sicherzustellen, dass Codeänderungen nie allein vorgenommen werden. Peerprogrammierung und Peer Reviews verbessern die Codequalität, überlassen Ihren Teams die Verantwortung für Änderungen und verbessern das Teamwissen über Vereinbarungen und Bereitstellungen. Code Reviews stellen eine fantastische Möglichkeit für Teammitglieder dar, neue Techniken und Methoden zur Programmierung und Automatisierung zu erlernen.
  • Teams sollten Systeme zur Versionskontrolle wie Git zusammen mit Git-Repositorys verwenden, um Peer Reviews zu erzwingen. Git-Repositorys ermöglichen Ihren Teams, wichtige Branches zu definieren und sie mit Branchrichtlinien zu schützen. Sie können Richtlinien verwenden, um Codeänderungen in diesen Branches erforderlich zu machen, die bestimmte Kriterien erfüllen (z. B. eine Mindestanzahl von Genehmigungen durch Teammitglieder), bevor sie in einen geschützten Branch zusammengeführt werden können.
  • Teams sollten die EaC-Methodik und den Änderungsprüfungsprozess zusammen mit einem Prozess für Continuous Integration und Continuous Delivery (CI/CD) kombinieren. Jede Codeänderung sollte automatisch einen CI-Prozess auslösen, der statische Codeanalysen, Validierungen und Testbereitstellungen ausführt. Mit CI stellen Sie sicher, dass Entwickler*innen ihren Code frühzeitig auf Fehler überprüfen (häufig als Fail-Fast oder Linksverschiebungstests bezeichnet), die in der Zukunft Probleme verursachen können. Je nachdem, welche Branchstrategie Ihr Team anwendet, sollten Änderungen an allen wichtigen Branches die Bereitstellung in unterschiedlichen Umgebungen auslösen. Nachdem Änderungen genehmigt und im main-Branch zusammengeführt wurden, stellt der CD-Prozess diese Änderungen in der Produktion bereit. Dieses Codeverwaltungssystem bietet Ihrem Team eine einzige Wahrheitsquelle für die Ausführung in jeder Umgebung.
  • Um sicherzustellen, dass Ihre Plattform eine vollständige Selbstreparatur sowie Self-Service für Ihre Workloadteams bereitstellt, muss Ihr Plattformteam daran arbeiten, alles (häufig als extreme Automatisierung bezeichnet) von der Bereitstellung, Konfiguration und Plattformverwaltung bis zur Bereitstellung für die Workloadteams zu automatisieren. Die extreme Automatisierung ermöglicht Ihrem Plattformteam, sich auf die Bereitstellung, Konfiguration und Verwaltung Ihrer Plattform zu konzentrieren. Außerdem sorgt extreme Automatisierung auch für einen Zyklus zur eigenständigen Verbesserung, der Ihrem Team mehr Zeit zum Erstellen von Automatisierungen bietet.
  • Da Ihre Plattformteams betriebsbezogene Aktivitäten automatisieren und menschliche Interventionen reduzieren, sollten sie ihren Fokus auf wichtige Aufgaben richten, die Innovationen durch die Workloadteams in Azure ermöglichen und beschleunigen. Um dies zu erreichen, muss Ihr Plattformteam mehrere Zyklen der Erstellung und Entwicklung durchlaufen, während sie die Tools, Skripts und Funktionsverbesserungen Ihrer Plattform einrichten.
  • Ihrem Team stehen mehrere Optionen zur Verfügung, um mit ihrer Bereitstellung einer Azure-Zielzone zu beginnen. Diese Optionen hängen von den derzeitigen Teamfunktionen ab und können zunehmen, wenn sich Ihr Team weiterentwickelt. Genauer gesagt können Sie bei der Plattformbereitstellung zwischen Portal-, Bicep- oder Terraform-basierten Lösungen wählen, je nach IaC-Kenntnissen und Tooling-Präferenz des jeweiligen Teams.
    • Neue und junge Plattformteams, die sich noch mit Infrastructure as Code (IaC) vertraut machen und eher mit der Verwendung eines Portals zur Bereitstellung und Verwaltung von Ressourcen vertraut sind, können zunächst den Azure Zielzonenbeschleuniger verwenden, der Teams unterstützt, die noch einen ClickOps-Ansatz verwenden. ClickOps ist der Prozess der Bereitstellung, Konfiguration und Verwaltung von Ressourcen über Portale, Verwaltungskonsolen und Assistenten. Dieser Beschleuniger ermöglicht es Ihrem Team, das Portal als anfängliches Bereitstellungstool zu nutzen und mit zunehmender Reife der Plattformentwicklung nach und nach Azure CLI, PowerShell oder IaC zu verwenden.
    • Mit der AzOps-Lösung können Teams ihre Verfahren zur Plattformautomatisierung und -verwaltung von ClickOps auf DevOps umstellen. Ihr Team kann von der Verwendung ihres persönlichen Kontozugriffs zu DevOps-Prinzipien und -Methoden wechseln, die ausschließlich auf CI/CD mit AzOps und IaC basieren. Mit AzOps kann Ihr Team seine eigene Architektur einbringen, die vom Azure Zielzonen-Portalbeschleuniger bereitgestellte Architektur verwenden (nach der anfänglichen portalbasierten Bereitstellung, da die AzOps-Integration nicht Teil der ALZ-Portaloberfläche ist), in eine Brownfield-Bereitstellung integrieren oder benutzerdefinierte Vorlagen (Bicep oder ARM) verwenden, um Ihre Plattform aufzubauen und zu betreiben.
    • Plattformteams mit etablierten Fertigkeiten und Funktionen können einen codebasierten Ansatz übernehmen, der den DevOps-Prinzipien und -Methoden folgt. Ihr Team sollte sich verstärkt auf IaC und moderne Entwicklungspraktiken konzentrieren und von der Verwendung des Azure-Zugriffs auf ihre persönlichen Konten zur Ausführung aller Vorgänge über Ihre CI/CD-Pipeline wechseln. Ihr Team sollte IaC-basierte Beschleuniger wie ALZ-Bicep oder das Azure-Zielzonen Terraform-Modul verwenden, um diesen Übergang zu beschleunigen.
  • IaC-basierte Beschleuniger bieten nur einen eingeschränkten Verwaltungsbereich. Neue Versionen bieten mehr Funktionen und verbesserte Funktionen zur Ressourcenverwaltung. Wenn Sie einen Beschleuniger verwenden, sollte Ihr Team einen einfachen Ansatz verfolgen, der mit einem Beschleuniger beginnt und dann eine Automatisierungsebene hinzufügt. Die Automatisierungsebene bietet Funktionen, die Ihr Team benötigt, um Ihre Workloadteams vollständig mit Plattformfeatures wie Domänencontrollerbereitstellungen für Legacyanwendungen zu unterstützen.
  • Während Ihr Plattformteam zu einem DevOps-Ansatz wechselt, muss es einen Prozess für die Behandlung von Notfallkorrekturen einrichten. Es kann Berechtigungen über das Privileged Identity Management (PIM) verwenden, um Zugriff zu erhalten und die Ausführung von Fixes anzufordern. Später kann es die Änderungen wieder in Code zurückführen, um eine Konfigurationsabweichung zu vermeiden. Es kann aber auch Code verwenden, um eine schnelle Problembehebung zu implementieren. Ihr Team sollte schnelle Problembehebungen immer in seinem Backlog registrieren, damit es jeden Fix zu einem späteren Zeitpunkt neu bearbeiten und seine technischen Schulden begrenzen kann. Zu viel technische Schulden führen später zu Verzögerung, da ein Teil des Plattformcodes nicht vollständig überprüft wurde und die Programmierrichtlinien und -prinzipien des Teams erfüllt.
  • Sie können Azure-Richtlinien verwenden, um Ihrer Plattform weitere Automatisierungen hinzuzufügen. Erwägen Sie die Verwendung von IaC zum Bereitstellen und Verwalten von Azure-Richtlinien, die häufig als Policy-as-Code (PaC) bezeichnet werden. Mit diesen Richtlinien können Sie Aktivitäten wie die Protokollsammlung automatisieren. Viele PaC-Frameworks umfassen auch einen Ausschlussprozess, sodass Sie Ihren Workloadteams die Möglichkeit geben können, einen Ausschluss von Richtlinien anzufordern.
  • Nutzen Sie eine „richtliniengesteuerte Governance“, um Workloadteams zu benachrichtigen, wenn sie versuchen, Ressourcen bereitzustellen, die bestimmte Sicherheitskontrollen nicht erfüllen. Erwägen Sie auch die Bereitstellung deny-Richtlinien in solchen Situationen, mit denen Ihre Workloadteams den EaC-Ansatz verfolgen und Konfigurationsabweichungen vermeiden können, bei denen eine Deklaration im Code durch eine Richtlinie zur Bereitstellungszeit geändert wird. Vermeiden Sie die Verwendung von modify-Richtlinien, z. B. wenn ein Workloadteam ein Speicherkonto mit einer Definition von supportOnlyHttpsTraffic = false im Code bereitstellt, die von einer modify-Richtlinie zur Bereitstellungszeit in true geändert wird, um sie kompatibel zu halten. Dies verursacht eine Codeabweichung in der Bereitstellung.

Entwurfsempfehlung für die Plattformautomatisierung

  • Folgen Sie dem Everything-as-Code-Ansatz (EaC), um vollständige Transparenz und eine umfassende Konfigurationssteuerung für die Azure-Plattform, Dokumentation und Bereitstellung sowie für den Testprozess zu erzielen.
  • Verwenden Sie eine Versionskontrolle, um sämtliche Coderepositorys zu verwalten, einschließlich:
    • Infrastructure-as-Code
    • Policy-as-Code
    • Konfiguration als Code
    • Deployment-as-Code
    • Documentation-as-Code
  • Erzwingen Sie das 4-Augen-Prinzip und einen Prozess zur Peerprogrammierung oder für Peer-Reviews, um sicherzustellen, dass alle Codeänderungen von Ihrem Team überprüft werden, bevor sie in der Produktion bereitgestellt werden.
  • Übernehmen Sie eine Branchstrategie für Ihr Team und legen Sie Branchrichtlinien für Branches fest, die Sie schützen möchten. Mit Branchrichtlinien müssen Ihre Teams Pull Requests verwenden, um Zusammenführungsänderungen vorzunehmen.
  • Verwenden Sie Continuous Integration und Continuous Delivery (CI/CD), um Codetests und -bereitstellungen in unterschiedlichen Umgebungen zu automatisieren.
  • Arbeiten Sie daran, alles zu automatisieren. Dies schließt z. B. die Bereitstellung, Konfiguration und Verwaltung Ihrer Plattform und die Bereitstellung von Zielzonenabonnements für Ihre Workloadteams ein.
  • Verwenden Sie einen der verfügbaren Beschleuniger, der den erforderlichen Funktionen Ihres Teams am besten entspricht, um mit der Bereitstellung von Azure-Zielzonen zu beginnen.
  • Planen Sie die Verwendung eines Bereitstellungsansatzes mit mehreren Ebenen, um Funktionen hinzuzufügen, die nicht von einem Beschleuniger abgedeckt werden, aber benötigt werden, um Ihre Workloadteams vollständig zu unterstützen.
  • Richten Sie einen Prozess für die Verwendung von Code zum Implementieren von schnellen Problembehebungen ein. Registrieren Sie schnelle Problembehebungen immer im Backlog Ihres Teams, damit jeder Fix zu einem späteren Zeitpunkt neu bearbeitet werden kann, um technische Schulden zu minimieren.
  • Verwenden Sie Infrastructure-as-Code zum Bereitstellen und Verwalten von Azure-Richtlinien (häufig als Policy-as-Code bezeichnet).
  • Implementieren Sie einen Ausschlussprozess für Richtlinien. Planen Sie dabei ein, dass Ihre Workloadteams den Ausschluss von Richtlinien anfordern können, und bereiten Sie sich darauf vor, die Teams bei Bedarf freizuschalten.
  • Nutzen Sie eine „richtliniengesteuerte Governance“, um Workloadteams aufzuhalten, wenn sie versuchen, Ressourcen bereitzustellen, die bestimmte Sicherheitskontrollen nicht erfüllen. Dadurch werden Konfigurationsabweichungen reduziert, bei denen Code einen anderen Zustand deklariert als den, der letztendlich bereitgestellt wird.

Weitere Informationen