Freigeben über


Überlegungen zu DevOps

Dieser Artikel enthält Überlegungen und Empfehlungen für DevOps in Azure-Zielzonen.

Was ist DevOps?

DevOps ist die Vereinigung von Personen, Prozessen und Technologien, die einen kontinuierlichen Wert für entwicklung (Dev) und Operations (Ops) bieten. Der DevOps-Ansatz fördert die Teamzusammenarbeit, die wiederholbare Prozesse erstellt, um Organisationen dabei zu helfen, effizient und skaliert zu arbeiten.

Im Kontext von Azure-Zielzonen wird DevOps zu einem Framework, das Ihr Team (oder Ihre Teams), das für die gesamten Lebenszyklusverwaltung der Azure-Zielzonen verantwortlich ist, z. B. in den folgenden Bereichen als Leitfaden dient:

  • Wie sie Grenzen mit anderen Teams selbst organisieren und definieren, um das geeignete Gleichgewicht zwischen Autonomie und Governance zu erreichen
  • Wie Sie das Architekturdesign der Azure-Landezone kontinuierlich weiterentwickeln (Conway's Law)
  • Planen, Priorisieren und Durchlaufen der Implementierung der entworfenen Architektur
  • Implementieren von Versionskontrolle, Continuous Integration und Continuous Deployment für den Code der Azure-Zielzone
  • Funktionsweise und Reaktion auf Vorfälle für Systeme und Plattformen, die Sie besitzen
  • Der Automatisierungsgrad, den Sie bei der Bereitstellung von Azure-Zielzonen und dem Self-Healing anwenden
  • So arbeiten Sie mit anderen Teams in Ihrer Organisation auf agile, ergebnisorientierte Weise zusammen
  • Erstellen einer generativen Kultur von Sicherheit, Qualität, Benutzerorientierung und kontinuierlichem Lernen

Die Entscheidungen, die Sie beim Überprüfen von Cloudbetriebsmodellen treffen, können beeinflussen, wie Sie Ihr DevOps-Framework verwenden.

Überlegungen zur Entwicklung von DevOps

  • Definieren Sie Ihr DevOps-Framework, oder richten Sie es an die DevOps- und Cloudakzeptanzstrategie Ihrer Organisation aus. Schließen Sie die Definition von DevOps und die Prinzipien und Praktiken ein, die Ihr Team befolgen muss. Stellen Sie sicher, dass Sie Ihre DevOps-Strategie mit Ihrer Geschäftsstrategie verbinden.

  • Richten Sie Metriken ein, mit denen Ihr Team ihre DevOps-Leistung verbessern kann. Erfolgreiche Teams verwenden eine Hypothese, um ihre Ideen zu testen und zu evaluieren, um zu sehen, wie die Hypothese funktioniert, und nehmen dann nach Bedarf Änderungen vor. Die letzte Absicht von DevOps besteht darin, Aspekte wie die Bereitstellungshäufigkeit, die Zeit für die Anwendung einer Änderung oder die Zeit zum Wiederherstellen eines beeinträchtigten Diensts zu verbessern. Sie müssen alle diese Metriken so entwerfen, dass sie sich letztendlich auf die gesamte Geschäftsleistung auswirken.

  • Ermitteln Sie die DevOps-Praktiken , die Ihr Team zuerst basierend auf ihren aktuellen Kenntnissen implementieren sollte, und entwerfen Sie eine Roadmap, um neue Methoden inkrementell anzuwenden, die Ihrem Team helfen, ihre DevOps-Metriken zu verbessern. Das Investieren in Engineering-Funktionen und -Ressourcen ist von entscheidender Bedeutung.

  • Ermitteln Sie die DevOps-Toolkette , die Ihr Team verwenden sollte, um die DevOps-Methoden zu implementieren. Stellen Sie sicher, dass die Tools mit Ihrer allgemeinen DevOps-Strategie konsistent sind, um Szenarien heterogener DevOps-Ökosysteme zu vermeiden, die die Komplexität von Azure-Zielzonen- oder Workloadbereitstellungen erhöhen.

  • Bewerten Sie den Effekt, den Ihre implementierten DevOps-Methoden und DevOps-Tools auf den Entwurf Ihrer Azure Landing Zones haben.

  • Erstellen Sie einen Bereitschaftsplan, um die Fähigkeiten Ihres Teams kontinuierlich zu erweitern. Die umfassende Anwendung eines DevOps-Modells stellt nicht sofort fähige DevOps-Teams her.

  • Ermitteln Sie die Teamtopologie , die am besten mit der DevOps-Strategie und dem Cloudbetriebsmodell Ihrer Organisation übereinstimmt, und legen Sie klare Grenzen, Zuständigkeiten und Abhängigkeiten zwischen den Teams fest.

  • Bestimmen Sie, wie das für Azure Landing Zones zuständige Team mit anderen Teams in Ihrer Organisation zusammenarbeiten soll, um neue Anforderungen an die Azure Landing Zone zu erfassen, um Design und Implementierung zu aktualisieren, Vorfälle zu beheben, Abhängigkeiten zu minimieren und mit den Geschäftlichen Prioritäten übereinzustimmen.

DevOps-Empfehlungen

Die folgenden Abschnitte enthalten Empfehlungen, die Sie beim Implementieren des DevOps-Frameworks in Ihrer Organisation unterstützen.

Definieren des DevOps-Frameworks

Um Ihr DevOps-Framework einzurichten, sollten Sie die Bereits verfügbaren Frameworks verwenden, um mit einer Reihe vordefinierter bewährter Methoden zu beginnen:

Definieren von DevOps-Methoden für ihre Azure-Landzonenverwaltung

Berücksichtigen Sie die folgenden DevOps-Methoden für Ihre Azure-Landezonen:

Planen Ihrer DevOps-Implementierungsreise

Definieren und ausrichten Sie Ihre DevOps-Implementierungsreise mit dem Cloud-Einführungsplan Ihrer Organisation.

  • Ermitteln Sie, wo sich Ihr Team heute in den folgenden Bereichen befindet:
  • Verwenden Sie den Cloud-Einführungsplan Ihrer Organisation, um ein gewünschtes Modell für Ihr Team zu definieren.
  • Richten Sie eine iterative Roadmap für die Implementierung des gewünschten Modells in einem iterativen und inkrementellen Modus ein, der sich an der Transformationszeitachse Ihrer Organisation richtet.

Implementieren der gewünschten DevOps-Metriken

Ermitteln Sie, welche Metriken Sie verwenden, um die DevOps-Leistung Ihres Teams zu messen. Verwenden Sie Metriken, um die gewünschten Gewohnheiten in Ihrem Team zu fördern, die mit den Geschäftsergebnissen in Verbindung treten. Richten Sie Metriken ein, damit Ihr Team auswirkungen auf Aktivitäten messen kann. Sorgen Sie dafür, dass wichtige Metriken für alle sichtbar sind, da Transparenz vertrauen und die Ausrichtung mit den Organisationszielen fördert.

Beispiele für Metriken, die die DevOps-Leistung messen, um die Geschäftlichen Auswirkungen zu verbessern, sind:

  • Geschäftsergebnisse:

    • Verwenden Sie Ziele und Wichtige Ergebnisse als Tool, um Ihre Teams von einer "Output"-Denkweise und einer "Ergebnis"-Denkweise zu entfernen. Sie können z. B. die Anzahl der Workloads verwenden, die ihre Compliance-Bewertung im Vergleich zur Anzahl der für Azure implementierten Richtlinien verbessert haben.
    • Kunden- oder Endbenutzerzufriedenheit. Beispiele sind Net Promoter Score (NPS), Umfragen, Interviews.
    • Geschäftswachstum. Beispiele hierfür sind erhöhte Rentabilität, erhöhte Einnahmen und neue Einnahmequellen-Akquisitionen.
    • Personenmetriken. Beispiele sind die Employee Net Promoter Score (eNPS), Nutzung, Aufbewahrung und Zufriedenheit.
    • Kosten. So können Sie beispielsweise Kostensenkungen nutzen.
  • Leistung der Softwareübermittlung:

    • Lead Time for Change, die Zeit, die es für eine Fehlerkorrektur, ein neues Feature oder eine andere Änderung benötigt, um von der Idee zur Bereitstellung in die Produktion zu wechseln.
    • Bereitstellungshäufigkeit: Anzahl der Bereitstellungen pro Tag mit Codeänderungen in der Produktion.
    • Durchschnittliche Wiederherstellungszeit, die Zeit, die benötigt wird, um den Betrieb nach einem Vorfall wiederherzustellen.
    • Änderungsfehlerprozentsatz, der Prozentsatz der Änderungen an der Produktion (z. B. Konfigurationsänderungen), die zu einem Fehler führen.
  • Qualität:

    • Fehlerauslaufrate, die Anzahl der Fehler, die von Ihren Endbenutzern identifiziert wurden.
    • Ungeplante Arbeit oder Überarbeitung, der Prozentsatz der Zeit, die für ungeplante Arbeit oder Überarbeitung aufgewendet wurde.
    • Aktive Fehler, die Anzahl der noch nicht behobenen Fehler.
    • Code Health, der Prozentsatz des Codes, der nicht einem Unit-Test unterzogen wurde.

Definieren Ihres DevOps-Technologieökosystems

Die DevOps-Toolkette, die Sie auswählen, um den Lebenszyklus Ihrer Azure Landing Zones zu verwalten, wirkt sich auf Folgendes aus:

  • Ihre Strategien für die Implementierung von DevOps-Prinzipien und -Praktiken
  • Sicherheitsüberlegungen für Ihren DevOps-Lebenszyklus
  • Das allgemeine Architekturdesign Ihrer Azure Landing Zones-Lebenszyklusverwaltung

Verwenden Sie das DevOps-Framework , das Sie zuvor definiert haben, um zu identifizieren, welche Tools für die einzelnen DevOps-Prozesse verwendet werden sollen. Wählen Sie die DevOps-Technologien aus, die für die Anforderungen Ihrer Teams am besten geeignet sind, aber finden Sie ein Gleichgewicht, mit dem Sie eine Standardisierung in Ihrer Organisation erzielen können, aber zu viel Komplexität oder Heterogenität in Ihren DevOps-Ökosystemen vermeiden können.

Beispiele für DevOps-Technologien in verschiedenen DevOps-Phasen sind:

  • Planung: Atlassian Jira, Atlassian Trello, Azure Boards, GitHub
  • Kontinuierliche Integration (CI) und Tests: Atlassian Bitbucket, Azure Repos, GitHub Repos, npm, NuGet, Selenium, SmartBear Cucumber, SonarSource SonarQube, Zed Attack Proxy
  • Kontinuierliche Lieferung (CD): Atlassian Bamboo, Azure Pipelines, GitHub Actions, Jenkins, Octopus Deploy, Perforce Puppet, RedHat Ansible
    • Infrastructure-as-Code: Bicep, Pulumi, Terraform
    • Bootstrapping: ArgoCD GitOps, Flux GitOps, Progress Chef, PowerShell Desired State Configuration (DSC)
  • Transaktionen: Azure Automation, Azure Monitor, CISCO Splunk, Grafana, Microsoft Power BI
  • Zusammenarbeit und Feedback: Atlassian Confluence, Azure DevOps Wikis, GitHub-Diskussionen, GitHub-Wikis, Microsoft Teams, Slack, Stack Overflow

Das folgende Diagramm zeigt ein Beispiel für ein DevOps-Framework mit der Auswahl der Azure DevOps-Toolkette:

Diagramm des DevOps-Frameworks mit der Auswahl der Azure DevOps-Toolkette.

Das folgende Diagramm zeigt ein Beispiel für ein DevOps-Framework mit Azure DevOps und der GitHub-Toolchain:

Diagramm des DevOps-Frameworks mit der Auswahl der Azure DevOps- und GitHub-Toolkette.

Nächster Schritt