Ü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, um einen fortlaufenden Mehrwert für die Entwicklung (Dev) und den Betrieb (Ops) bereitzustellen. Der DevOps-Ansatz fördert die Zusammenarbeit im Team, das wiederholbare Prozesse entwickelt, um Organisationen effiziente Vorgänge im großen Stil zu ermöglichen.
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:
- Eigenständiges Organisieren und Definieren von Grenzen zu anderen Teams, um eine Balance zwischen Autonomie und Governance zu erreichen
- Kontinuierliches Weiterentwickeln des Entwurfs der Azure-Zielzonenarchitektur (Gesetz von Conway)
- Planen, Priorisieren und Durchlaufen der Implementierung der entworfenen Architektur
- Implementieren von Versionskontrolle, Continuous Integration und Continuous Deployment für den Code der Azure-Zielzone
- Betreiben Ihrer Systeme und Plattformen und Reagieren auf entsprechende Vorfälle
- Festlegen des Automatisierungsgrads, den Sie auf die Bereitstellung von Azure-Zielzonen anwenden, und selbstständiges Korrigieren
- Zusammenarbeiten mit anderen Teams in Ihrer Organisation auf agile, ergebnisorientierte Weise
- Schaffen einer fruchtbaren Kultur von Sicherheit und Qualität mit den Benutzer*innen im Fokus und kontinuierlichem Lernen als Ziel
Die Entscheidungen, die Sie beim Überprüfen von Cloudbetriebsmodellen treffen, können sich auf die Verwendung Ihres DevOps-Frameworks auswirken.
DevOps-Entwurfsüberlegungen
Definieren Sie Ihr DevOps-Framework, und richten Sie es mit der DevOps- und Cloudeinführungsstrategie Ihrer Organisation aus. Schließen Sie die Definition von DevOps und die Prinzipien und Methoden ein, die Ihr Team befolgen soll. Verknüpfen Sie Ihre DevOps-Strategie unbedingt mit Ihrer Geschäftsstrategie.
Richten Sie Metriken ein, mit denen Ihr Team seine DevOps-Leistung verbessern kann. Professionelle Teams verwenden eine Hypothese, um ihre Ideen zu testen und zu messen und um zu sehen, wie die Hypothese funktioniert. Erst dann nehmen sie nach Bedarf Änderungen vor. Das Ziel von DevOps besteht darin, Aspekte wie die Bereitstellungshäufigkeit zu verbessern und die Zeit zu verkürzen, die erforderlich ist, um eine Änderung anzuwenden oder einen beeinträchtigten Dienst wiederherzustellen. Sie müssen alle diese Metriken entwerfen, die sich später auf die Gesamtleistung des Unternehmens auswirken können.
Legen Sie die DevOps-Methoden fest, die Ihr Team basierend auf seinen aktuellen Fähigkeiten zuerst implementieren sollte, und entwerfen Sie eine Roadmap, um nacheinander neue Methoden anzuwenden, die Ihrem Team helfen, ihre DevOps-Metriken zu verbessern. Investitionen in technische Funktionen und Ressourcen sind von entscheidender Bedeutung.
Bestimmen Sie die DevOps-Toolkette, mit der Ihr Team die DevOps-Methoden umsetzen soll. Stellen Sie sicher, dass die Tools mit Ihrer gesamten DevOps-Strategie in Einklang sind, um Szenarien mit heterogenen DevOps-Ökosystemen zu vermeiden, die die Komplexität von Azure-Zielzonen oder Workloadbereitstellungen erhöhen.
Bewerten Sie die Auswirkungen, die Ihre angewandten DevOps-Methoden und DevOps-Tools auf den Entwurf Ihrer Azure-Zielzonen haben.
Erstellen Sie einen Bereitschaftsplan, um die Fähigkeiten Ihres Teams kontinuierlich zu erweitern. Die reine Anwendung eines DevOps-Modells führt nicht sofort zu leistungsfähigen DevOps-Teams.
Bestimmen Sie die Teamtopologie, die der DevOps-Strategie und dem Cloudbetriebsmodell Ihrer Organisation am besten entspricht, und legen Sie klare Grenzen, Zuständigkeiten und Abhängigkeiten zwischen den Teams fest.
Legen Sie fest, wie das Team, das für Azure-Zielzonen verantwortlich ist, mit anderen Teams in Ihrer Organisation zusammenarbeiten soll, damit neue Anforderungen an Azure-Zielzonen erfasst, der Entwurf und die Implementierung angepasst, Vorfälle behoben und Abhängigkeiten minimiert und an geschäftliche Prioritäten angepasst werden können.
DevOps-Empfehlungen
In den folgenden Abschnitten finden Sie Empfehlungen zum Implementieren des DevOps-Frameworks in Ihrer Organisation.
Definieren Ihres DevOps-Frameworks
Sie sollten für die Einrichtung Ihres DevOps-Frameworks die bereits verfügbaren Frameworks verwenden, um mit vordefinierten bewährten Methoden zu beginnen:
Das Microsoft-DevOps-Ressourcencenter bietet eine Vielzahl an Definitionen, Methoden und Funktionen, die Sie an die Lebenszyklusverwaltung Ihrer Azure-Zielzone anpassen können, z. B.:
Das Microsoft DevOps Dojo bietet eine DevOps-Taxonomie, die auf vier Grundpfeilern und acht Funktionen basiert:
Definieren von DevOps-Methoden für die Verwaltung von Azure-Zielzonen
Berücksichtigen Sie die folgenden DevOps-Methoden für Ihre Azure-Zielzonen:
- Informieren Sie sich, wie Sie den Entwicklungslebenszyklus von Azure-Zielzonen als Code verwalten.
- Sehen Sie sich die Sicherheitsüberlegungen für Azure-Zielzonen im DevOps-Bereich an.
Planen Ihrer DevOps-Implementierungsjourney
Richten Sie die Definition Ihrer DevOps-Implementierungsjourney am Cloudeinführungsplan Ihrer Organisation aus.
- Finden Sie heraus, wo Ihr Team heute in den folgenden Bereichen steht:
- DevOps-Methoden, die Ihr Team für die Verwaltung von Azure Landing Zones bereits eingeführt hat.
- Verwenden Sie Tools wie die DevOps-Funktionsbewertung, um den aktuellen DevOps-Status Ihres Teams zu bewerten.
- Bewerten Sie die aktuelle Teamstruktur, einschließlich Rollen und Verantwortlichkeiten und Besitz von Cloudfunktionen.
- Welche technischen Fähigkeiten hat Ihr Team?
- Welches Cloudbetriebsmodell verfolgt Ihr Team derzeit?
- DevOps-Methoden, die Ihr Team für die Verwaltung von Azure Landing Zones bereits eingeführt hat.
- Verwenden Sie den Cloudeinführungsplan Ihrer Organisation, um das gewünschte 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 an der Transformationszeitachse Ihrer Organisation ausgerichtet ist.
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 in Einklang mit den gewünschten Geschäftsergebnissen stehen. Richten Sie Metriken ein, damit Ihr Team die Auswirkungen auf Aktivitäten messen kann. Machen Sie wichtige Metriken für alle sichtbar, da Transparenz Vertrauen fördert und die Einhaltung von Organisationszielen fördert.
Beispiele für Metriken zur DevOps-Leistungsmessung, um geschäftliche Auswirkungen zu verbessern:
Geschäftsergebnisse:
- Verwenden Sie Ziele und Schlüsselergebnisse als Hilfsmittel, um die Einstellung Ihrer Teams weg von einer reinen Ausgabe hin zu echten Ergebnissen zu verschieben. Sie können beispielsweise die Anzahl der Workloads verwenden, deren Compliancebewertung sich verbessert hat, und mit der Anzahl der in Azure bereitgestellten Richtlinien vergleichen.
- Kunden- oder Endbenutzerzufriedenheit. Beispiele sind Net Promoter Score (NPS), Umfragen oder Interviews.
- Geschäftswachstum. Beispiele sind eine höhere Rentabilität, höhere Umsätze und neue Umsatzquellen.
- Personenmetriken. Beispiele sind der Employee Net Promoter Score (eNPS), Auslastung, Unternehmenstreue und Zufriedenheit.
- Kosten. Sie können z. B. eine Reduzierung der Kosten verwenden.
Leistung bei der Softwarebereitstellung:
- Vorlaufzeit bei Änderungen: Zeit, die eine Fehlerbehebung, eine neue Funktion oder eine andere Änderung benötigt, um von der Idee bis zur Bereitstellung in der Produktion zu gelangen.
- Bereitstellungshäufigkeit: Anzahl der Bereitstellungen pro Tag mit Codeänderungen in der Produktion.
- Mittlere Zeit für Wiederherstellungen: Zeit, die benötigt wird, um den Dienst nach einem Incident in der Produktion wiederherzustellen.
- Fehleranteil bei Änderungen: Prozentsatz der Änderungen in der Produktion (z. B. Konfigurationsänderungen), die zu einem Fehler führen.
Qualität:
- Raten unerkannter Fehler: Anzahl von Fehlern, die von Ihren Endbenutzer*innen gefunden werden.
- Ungeplante Arbeit oder Überarbeitung: Prozentsatz der Zeit, die mit nicht geplanter Arbeit oder mit Überarbeitungen verbracht wurde.
- Aktive Fehler: Anzahl der Fehler, die noch nicht behoben wurden.
- Codeintegrität: Prozentsatz des Codes, für den kein Komponententest ausgeführt wurde.
Definieren Ihres DevOps-Technologieökosystems
Die DevOps-Toolkette, die Sie für die Lebenszyklusverwaltung Ihrer Azure-Zielzonen auswählen, wirkt sich auf Folgendes aus:
- Ihre Strategien für die Implementierung von DevOps-Prinzipien und -Methoden
- Sicherheitsaspekte für den DevOps-Lebenszyklus
- Den allgemeine Architekturentwurf für die Lebenszyklusverwaltung Ihrer Azure-Zielzonen
Verwenden Sie das DevOps-Framework, das Sie zuvor definiert haben, um zu ermitteln, welche Tools für jeden Ihrer 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 eine Balance, mit der Sie Standardisierung in Ihrer Organisation erreichen können, ohne Ihre DevOps-Ökosysteme zu komplex oder heterogen zu machen.
Beispiele für DevOps-Technologien in verschiedenen DevOps-Phasen:
- Planung: Atlassian Jira, Atlassian Trello, Azure Boards, GitHub
- Continuous Integration (CI) und Tests: Atlassian Bitbucket, Azure Repos, GitHub Repos, npm, NuGet, Selenium, SmartBear Cucumber, SonarSource SonarQube, Zed Attack Proxy
- Continuous Delivery (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)
- Betrieb: Azure Automation, Azure Monitor, CISCO Splunk, Grafana, Microsoft Power BI
- Zusammenarbeit und Feedback: Atlassian Confluence, Azure DevOps Wikis, GitHub Discussions, 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:
Das folgende Diagramm zeigt ein Beispiel für ein DevOps-Framework mit der Auswahl der Azure DevOps- und GitHub-Toolkette: