Freigeben über


DevOps-Toolkette

Eine DevOps-Toolkette ist eine Sammlung von Tools, mit denen DevOps-Teams über den gesamten Produktlebenszyklus zusammenarbeiten und wichtige DevOps-Grundlagen behandeln können.

Die Tools einer DevOps-Toolkette umfassen den Betrieb als integrierte Einheit für Planung, Continuous Integration, Continuous Delivery, Betrieb, Zusammenarbeit und Feedback. Einige Beispiele für DevOps-Technologien in verschiedenen DevOps-Phasen finden Sie unter Definieren Ihres DevOps-Technologieökosystems.

Überlegungen zur DevOps-Toolkette

  • DevOps-Prozesse können bereits in Ihrer Organisation angewandt werden, wenn Sie eine Toolkette auswählen. Sie sollten eine angemessene Balance zwischen der Einführung von Technologien, die für die Bedürfnisse Ihres Teams geeignet sind, dem Ziel der Standardisierung und der Vermeidung heterogener DevOps-Ökosysteme in Ihrer Organisation finden.

  • Sie können verschiedene Arten von DevOps-Toolketten verwenden:

    • Komplettlösung: Dies ist eine vollständige Lösung, die möglicherweise nicht mit anderen Drittanbietertools integriert werden kann. Toolketten als Komplettlösungen können für Organisationen geeignet sein, die ihre DevOps-Journey gerade erst beginnen. Beispiel: Azure DevOps-Toolkette (vollständiger Stapel).
    • Angepasst: Dies gibt Teams die Möglichkeit, vorhandene und bekannte Tools weiter zu verwenden und mit einer umfangreicheren DevOps-Toolkette zu kombinieren. Die Integration ist für diese Typen von Toolketten wichtig, um unnötige Zeit beim Wechseln zwischen Bildschirmen zu sparen, Mehrfachanmeldungen zu vermeiden oder den Austausch von Informationen zwischen Tools zu ermöglichen. Beispiel: Azure DevOps- und GitHub-Toolkette.
  • Sie sollten die Verwendung von Toolketten in Erwägung ziehen, die regelmäßig aktualisiert werden und bei Bedarf Support per E-Mail oder über ein Onlineportal bieten. Diese Anforderung gilt für alle Produkte oder Dienste auf dem kritischen Weg zum Markt.

Planung

  • Erwägen Sie die Einführung eines Tools, das Methoden zur kontinuierlichen Planung unterstützt:
    • Releaseplanung
    • Epic- und Featureidentifikation
    • Priorisierung
    • Schätzung
    • User Story-Definition
    • Backlogoptimierung
    • Sprintplanung
    • Tägliches Scrum
    • Sprintreview
    • Retrospektive

Continuous Integration und Continuous Delivery

  • Bei der Implementierung von Continuous Integration (CI)/Continuous Delivery (CD) sollten Sie ein Tool verwenden, das Folgendes unterstützt:
    • Versionskontrollsysteme: Alles in Ihrem Projekt muss in ein einzelnes Repository mit Versionskontrolle wie Git eingecheckt werden: Code, Tests, Datenbankskripts, Build- und Bereitstellungsskripts und alles andere, das zum Erstellen, Installieren, Ausführen und Testen Ihrer Anwendung benötigt wird.
    • Branchingstrategie:
    • Automatisierte Builds
  • Beachten Sie, dass Ihre Auswahl des Repositorys auch von Anforderungen an die Datenhoheit oder den Datenstandort beeinflusst wird. Wenn Ihre Daten lokal in anderen Ländern/Regionen als den USA gehostet werden müssen, benötigen Sie Azure DevOps-Repositorys, falls GitHub-Repositorys nicht verwendet werden können.
  • Um den Umfang der manuellen Konfiguration zu minimieren, die für die Bereitstellung von Ressourcen erforderlich ist, können Sie Infrastructure-as-Code (IaC) übernehmen. Mit IaC können Sie Methoden zur Softwareentwicklung wie Tests und Versionsverwaltung anwenden, um die Infrastruktur und Bereitstellungen zu automatisieren und konsistent und wiederholbar zu machen. Verwalten Sie Skripts und Vorlagen wie jeden anderen von Ihnen verwalteten Code in einer Quellcodeverwaltung.
  • Verwenden Sie Tools zur Codeüberprüfung, um Codefehler so früh wie möglich zu erkennen. Schließen Sie Vorabüberprüfungen für Bereitstellungen ein, um Änderungen vor allen Bereitstellungen zu prüfen und zu bestätigen (Beispiel: Was-wäre-wenn-Funktion).
  • CI/CD-Tools beschleunigen die Zeit bis zur Markteinführung für Ihr Produkt. Tools, mit denen Sie Aufgaben parallelisieren und die flexible Skalierbarkeit von in der Cloud gehosteter Infrastruktur nutzen können, verbessern die Leistung Ihres CI/CD-Prozesses.
  • Erwägen Sie die Verwendung von CI/CD-Toolfeatures, die eine Messung der DevOps-Leistung unterstützen. Mit Dashboards und Berichten können Sie wichtige Aspekte Ihres Entwicklungsprozesses nachverfolgen, z. B. Vorlaufzeit, Zykluszeit, Arbeitsgeschwindigkeit usw.

Kontinuierlicher Betrieb

Der Fokus auf kontinuierlichen Betrieb hilft Organisationen, die Kontinuität der Ausgabe zwischen internen Systemen und der Kundschaft durch die unterbrechungsfreie Bereitstellung kritischer Dienste oder Funktionen zu erhalten. Ziele des kontinuierlichen Betriebs:

  • Reduzieren oder Beseitigen der Notwendigkeit geplanter Ausfallzeiten oder Unterbrechungen, z. B. durch die geplante Wartung, Kapazitätsoptimierung und Bereitstellung
  • Verbessern der Zuverlässigkeit und Resilienz von drei Aspekten von Systemen: Personen, Prozesse und Tools

Verwenden Sie für Folgendes cloudnative Tools:

  • Überwachen wichtiger Metriken zur Leistung und Verfügbarkeit von Diensten
  • Gewinnen digitaler Erfahrungen und Erkenntnisse zur Kundschaft
  • Generieren datengesteuerter Reaktionen auf Vorfälle, Systemwiederherstellungen oder Skalierungsvorgänge
    • Azure-Diagnose und Application Insights sind die Standardmethoden zum Nachverfolgen der Integrität und des Status von Azure-Ressourcen. Azure Monitor ermöglicht auch die zentralisierte Überwachung und Verwaltung für Cloud- oder Hybridlösungen.
  • Automatisieren proaktiver Wartungen und Aufgaben wie Bereitstellungen oder Systemupdates
    • Azure Automation ist ein cloudnatives Tool, mit dem Sie eine ereignisbasierte Automatisierung umsetzen können, um Probleme zu diagnostizieren und zu beheben.

Zusammenarbeit und Feedback

  • Kurze Feedbackschleifen stellen das Herzstück des CI/CD-Prozesses dar. Ein CI/CD-Tool nutzt Feedback, um Vorfälle in der CI/CD-Workflowlogik zu lösen und Informationen an die Benutzer*innen zurückzugeben (in der Regel über ein Dashboard).

  • Die Unterstützung für E-Mail-Benachrichtigungen und die Integration mit IDEs oder Kommunikationsplattformen stellen sicher, dass Sie über alle Ereignisse informiert werden, ohne ein Dashboard zu verwenden. Vergewissern Sie sich, dass Sie die erforderliche Flexibilität erhalten festzulegen, welche Warnungen Sie erhalten, da zu viele Warnungen irgendwann nicht mehr wahrgenommen werden.

  • Jedes Tool, das Sie für die Zusammenarbeit auswählen, sollte die folgenden Verfahren unterstützen:

    • Kanban-Zusammenarbeit
    • Zusammenarbeit an Wiki-Inhalten
    • ChatOps-Zusammenarbeit
    • Teamraum

Empfehlungen für DevOps-Toolketten für Azure-Zielzonen

DevOps-Toolketten für Implementierungen von Azure-Zielzonen sollten alle zuvor beschriebenen DevOps-Phasen berücksichtigen:

  • Planung
  • CI/CD (einschließlich Automatisierungsfunktionen wie Infrastructure-as-Code)
  • Operationen (Operations)
  • Zusammenarbeit und Feedback

Sehen Sie sich den Leitfaden für die Bereitstellung von Zielzonen und die Überlegungen zur Auswahl einer Implementierungsoption in den Überlegungen zur Auswahl Zielzoneneinführung an.

Unabhängig von der ausgewählten Methodik (klein beginnen und erweitern oder gleich auf Unternehmensniveau) gibt es einige gemeinsame Topologien, die Unternehmen in der Regel befolgen, während sie ihre DevOps-Workflows und -Toolketten entwerfen.

  • Umfassende Azure DevOps-Toolkette: Unternehmen, die bereits umfangreiche Investitionen in das Microsoft-Ökosystem getätigt haben, ermöglicht diese Topologie, die native Integration zwischen Microsoft-Produkten und -Diensten vollständig zu nutzen und wichtige Prozesse zu optimieren.
  • Azure DevOps- und GitHub-Toolkette: Mit dieser Topologie können Sie die Stärken von Azure und GitHub im Rahmen einer gut integrierten Lösung verwenden.

Umfassende Azure DevOps-Toolkette

Diagramm einer umfassenden Azure DevOps-Toolkette

DevOps-Phase Extras
Planung Azure Boards bietet leistungsstarke und flexible Planungsfunktionen für Entwickler*innen und andere Personen, einschließlich hierarchischer Backlogs, anpassbarer Kanban-Boards, umfangreicher Prozessanpassungen, Teamdashboards und benutzerdefinierter Berichte.
CI/CD Azure Repos ermöglicht Ihnen, private Git-Repositorys zu erstellen, und es unterstützt verschiedene Git-Clients, Branchstrategien und Schutzmaßnahmen. Azure Repos bietet auch lokalisierte Datenresidenz in der Cloud, um die Einhaltung europäischer Vorschriften zu ermöglichen. Azure Pipelines ermöglicht Kund*innen, automatisierte CI/CD-Pipelines einzurichten, einschließlich erweiterter Testberichte, und es bietet leistungsstarke Unterstützung für mehrstufige Pipelines. Präzise Berechtigungen, Gates, benutzerdefinierte Überprüfungen und automatisierte Berichte zu Testergebnissen in Azure Pipelines helfen Ihnen, Best Practices zu Sicherheit, Compliance und Bereitstellung in Ihrer Organisation zu erzwingen und parallele Schritte zur Ausführung und Skalierbarkeit zu unterstützen. Azure Artifacts bieten einen Feed zum Speichern von Paketen und zum Überprüfen jedes Pakets zu Sicherheitszwecken, und es ermöglicht eine präzise Steuerung und Überwachung von Berechtigungen. Azure Test Plans in Azure DevOps bietet eine browserbasierte Testverwaltungslösung für explorative, manuelle und Benutzerakzeptanztests. Benutzer*innen von Azure Test Plans verwenden in der Regel auch Azure Boards für die Planung und Projektverwaltung. Sie können User Storys und andere Anforderungen mit Testfällen verknüpfen und Fehler dokumentieren, die bei Tests gefunden wurden. Nutzen Sie Marketplace-Erweiterungen für DevOps, um die statische Codeanalyse mit Tools wie Scannern für Anmeldeinformationen, Open-Source-Scannern, Scannern für Fehler und Sicherheitsrisiken u. v. m. zu verbessern.
Operationen (Operations) Azure-Dashboards und -Berichte bieten benutzerdefinierte Berichte, mit denen Sie wichtige Leistungsmetriken überwachen können. Azure-Diagnose und Application Insights sind die Standardmethoden zum Nachverfolgen der Integrität und des Status von Azure-Ressourcen. Azure Monitor ermöglicht eine zentrale Überwachung und Verwaltung. Azure Automation können Sie verwenden, um eine ereignisbasierte Automatisierung zum Diagnostizieren und Beheben von Problemen zu erstellen.
Zusammenarbeit und Feedback Im Azure DevOps-Wiki können Sie Informationen mit Mitgliedern anderer Teams teilen und die gemeinsame Bearbeitung von Inhalten und Struktur unterstützen. Azure Boards ermöglicht die Kanban-Zusammenarbeit und bietet Unterstützung für Kommentare und Diskussionen in Backlogelementen. Sie können Microsoft Teams mit Azure DevOps integrieren, um eine vollständige Umgebung für die Teamzusammenarbeit zu schaffen.

Azure DevOps- und GitHub-Toolkette

Diagramm einer Azure DevOps- und GitHub-Toolkette

DevOps-Phase Extras
Planung Azure Boards bietet eine stabile und skalierbare Lösung für Planung, Repositoryverwaltung, Datenvisualisierung und die hierarchische Organisation von Arbeitsaufgaben. Durch die Integration mit GitHub können Sie Arbeitselemente und GitHub-Commits verlinken. Außerdem können Sie Ihren idealen Workflow auswählen, unabhängig davon, ob es sich um einen einfachen, vordefinierten oder einen benutzerdefinierten Workflow handelt, den Sie mit der leistungsstarken und flexiblen Azure Boards-Anpassungs-Engine erstellt haben. Wenn Sie Ihre Daten visualisieren möchten, hilft ihnen Azure Boards, benutzerdefinierte Dashboards ganz einfach zu erstellen und zu konfigurieren und den Fortschritt Ihrer Projektlebenszyklen zu überwachen.
CI/CD Verwenden Sie die GitHub Enterprise-Version (GHE) von GitHub, die GitHub-Repositorys und GitHub Advanced Security (GHAS) enthält. GHAS umfasst CodeQL, Codeüberprüfungen, Geheimnisüberprüfungen und Abhängigkeitsüberprüfungen. GHE umfasst auch Codespaces, eine Cloud-IDE, die Sie zum Entwickeln von Code verwenden können und die Visual Studio Code ersetzen kann, das Organisationen in der Regel in umfassenden Azure DevOps-Szenarien verwenden. Mit GitHub Actions können Sie Workflows automatisieren, die nicht zur Erstellung dienen, sofern sich Ihre Repositorys auf GitHub befinden. Wenn Sie in komplexeren Szenarien Zugriff auf Code außerhalb von GitHub oder eine zentrale Verwaltung für Workflowvorlagen und Buildpipelines benötigen, verwenden Sie Azure-Pipelines. Für Azure Boards können Sie Azure Pipelines mit GitHub-Repositorys integrieren. Informationen zur Integration von Azure DevOps und GitHub finden Sie unter Arbeiten mit Azure DevOps und GitHub. GitHub Packages ist ein Dienst für Softwarepakete, mit dem Sie Ihre Pakete privat oder öffentlich hosten können. GitHub unterstützt Containerregistrierungen für das Hosten von Docker- oder OCI-Images. Sie benötigen Zugriffstoken, um Pakete zu veröffentlichen, zu installieren oder zu löschen und um die Lebenszyklusverwaltung Ihrer Pakete zu schützen. Um Pakete zu automatisieren, können Sie GitHub Packages mit GitHub Actions, GitHub-APIs und Webhooks integrieren, um DevOps-Workflows zu erstellen, die Code, CI und Bereitstellungen auf einer Benutzeroberfläche enthalten.
Operationen (Operations) GitHub Insights bietet Analyseberichte, die auf Daten aus Ihrer GitHub Enterprise Server-Instanz basieren, damit Sie Ihren Softwarebereitstellungsprozess besser verstehen und optimieren können. Verwenden Sie für die Diagnose und Verwaltung von Zielzonen die im Szenario Umfassende Azure DevOps-Toolkette empfohlenen Azure-Dienste.
Zusammenarbeit und Feedback Mithilfe von GitHub Discussions können Sie Fragen, Ideen, Unterhaltungen, RFCs (Requests for Comments), Ressourcenplanungen und Ankündigungen freigeben. Verwenden Sie Azure Boards, um benutzerdefinierte Dashboards ganz einfach zu erstellen und zu konfigurieren und den Fortschritt während des gesamten Projektlebenszyklus zu überwachen. Sie können auch Microsoft Teams einführen, um eine umfassende Teamzusammenarbeit zu ermöglichen.