DevOps-Toolkette

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

Die Tools, die eine DevOps-Toolkette umfasst, sind als integrierte Einheit für planung, kontinuierliche Integration, kontinuierliche Lieferung, Vorgänge, Zusammenarbeit und Feedback. Sie können einige Beispiele für DevOps-Technologien in verschiedenen DevOps-Phasen in Define your DevOps technology ecosystem überprüfen.

Überlegungen zur DevOps-Toolkette

  • DevOps-Prozesse können bereits in Ihrer Organisation verwendet werden, wenn Sie eine Toolkette auswählen. Sie sollten das richtige Gleichgewicht zwischen der Einführung von Technologien finden, die für die Anforderungen Ihres Teams geeignet sind, und dem Ziel, heterogene DevOps-Ökosysteme in Ihrer Organisation zu standardisieren und zu vermeiden.

  • Sie können verschiedene Arten von DevOps-Toolketten einführen:

    • All-in-One: Stellt eine vollständige Lösung bereit, die möglicherweise nicht in andere Drittanbietertools integriert wird. All-in-One-Toolketten können für Organisationen nützlich sein, die ihre DevOps-Reise beginnen. Beispiel: Vollständige Azure DevOps-Toolkette.
    • Angepasst: Ermöglicht Es Teams, vorhandene Tools, die sie kennen, und bereits in der breiteren DevOps-Toolkette zu verwenden und zu mischen. Die Integration ist für diese Arten von Toolketten unerlässlich, um unnötige Zeit für den Wechsel zwischen Bildschirmen zu vermeiden, sich an mehreren Stellen anzumelden und die Herausforderung, Informationen zwischen Tools freizugeben. Beispiel: Azure DevOps- und GitHub-Toolkette.
  • Erwägen Sie die Verwendung von Toolchains, die regelmäßig aktualisiert werden und Unterstützung erhalten, wenn Sie sie per E-Mail oder Onlineportal benötigen. Dies ist eine Anforderung für alle Produkte oder Dienstleistungen, die sich auf dem kritischen Weg zum Markt befinden.

Planung

  • Erwägen Sie die Einführung eines Tools, das fortlaufende Planungsmethoden unterstützt:
    • Veröffentlichungsplanung
    • Epische und Featureidentifikation
    • Priorisierung
    • Schätzung
    • Definition des Benutzerabschnitts
    • Verfeinerung des Backlogs
    • Sprintplanung
    • Tägliches Scrum
    • Sprint-Überprüfung
    • Rückblickend

Kontinuierliche Integration und kontinuierliche Lieferung

  • Bei der Implementierung von Continuous Integration (CI)Continuous/ sollten Sie ein Tool einführen, das Folgendes unterstützt:
    • Versionssteuerungssysteme. Alles in Ihrem Projekt muss in ein einzelnes Versionssteuerungsrepository wie Git eingecheckt werden: Code, Tests, Datenbankskripts, Build- und Bereitstellungsskripts sowie alles andere, was zum Erstellen, Installieren, Ausführen und Testen Ihrer Anwendung erforderlich ist.
    • Verzweigungsstrategie.
    • Automatisierte Builds.
  • Ihre Wahl des Repositorys wird auch durch datenhoheits-/Residency-Anforderungen beeinflusst. Wenn Ihre Daten lokal in einem Land/einer anderen Region als den USA gehostet werden müssen, benötigen Sie Azure DevOps-Repositorys, wenn GitHub Repos nicht verwendet werden kann.
  • Um die Menge der manuellen Konfiguration zu minimieren, die für die Bereitstellung von Ressourcen erforderlich ist, sollten Sie die Infrastruktur als Code (IaC) übernehmen. Mit IaC können Sie Software engineering-Praktiken wie Tests und Versionsverwaltung anwenden, wodurch Infrastruktur und Bereitstellungen automatisiert, konsistent und wiederholbar sind. Bewahren Sie Skripts und Vorlagen wie alle anderen von Ihnen verwalteten Code unter der Quellcodeverwaltung auf.
  • Übernehmen Sie Codescantools , um Codefehler so schnell wie möglich zu erkennen. Schließen Sie Vorabbereitstellungsprüfungen ein, um Änderungen vor einer Bereitstellung zu überprüfen und zu bestätigen (Beispiel: "What-if")-Funktion.
  • CI/CD-Tools beschleunigen die Marktzeit für Ihr Produkt. Tools, mit denen Sie Aufgaben parallelisieren und die flexible Skalierbarkeit in der in der Cloud gehosteten Infrastruktur nutzen können, verbessern die Leistung Ihres CI/CD-Prozesses.
  • Erwägen Sie die Verwendung von CI/CD-Toolfeatures, die das Maß der DevOps-Leistung unterstützen. Dashboards und Berichte können Aspekte Ihres Entwicklungsprozesses nachverfolgen, z. B. Leadzeit, Zykluszeit, Arbeitsgeschwindigkeit usw.

Fortlaufende Vorgänge

Continuous Operations ist ein Schwerpunkt, der Organisationen hilft, die Kontinuität der Ausgabe zwischen internen Systemen und Kunden durch die unterbrechungsfreie Bereitstellung kritischer Dienste oder Funktionen aufrechtzuerhalten. Die Ziele des kontinuierlichen Betriebs sind:

  • Um die Notwendigkeit geplanter Ausfallzeiten oder Unterbrechungen wie geplante Wartung, Kapazitätsoptimierung und Bereitstellung zu reduzieren oder zu beseitigen.
  • Um die Gesamtzulässigkeit und Ausfallsicherheit von Systemen in drei Aspekten zu erhöhen: mit Personen, Prozessen und Tools.

Verwenden Sie cloudeigene Tools, um:

  • Überwachen Sie die wichtigsten Metriken für die Dienstleistung und -verfügbarkeit.
  • Gewinnen Sie digitale Erfahrungen und Kundeneinblicke.
  • Generieren Sie intelligencegesteuerte Antworten für Vorfälle, Systemwiederherstellung oder Skalierung.
  • Automatisieren Sie proaktive Wartung und Aufgaben wie Bereitstellung oder Systemupdates.
    • Azure Automation ist ein cloudeigenes Tool, mit dem Sie ereignisbasierte Automatisierung zum Diagnostizieren und Beheben von Problemen erstellen können.

Zusammenarbeit und Feedback

  • Schnelle Feedbackschleifen stehen im Mittelpunkt des CI/CD-Prozesses. Ein CI/CD-Tool verwendet Feedback zum Auflösen von Bedingungen in der CI/CD-Workflowlogik und zeigt Informationen an Benutzer zurück, in der Regel über ein Dashboard.

  • Unterstützung für E-Mail-Benachrichtigungen und Integration in IDEs oder Kommunikationsplattformen stellen sicher, dass Sie über das Geschehen informiert bleiben können, ohne ein Dashboard überprüfen zu müssen. Stellen Sie sicher, dass Sie die Flexibilität haben, die empfangenen Warnungen zu konfigurieren, da zu viele Warnungen diese in Hintergrundgeräusche umwandeln.

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

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

DevOps-Toolkette-Empfehlungen für Azure Landing Zones

DevOps-Toolketten für die Azure Landing Zone-Implementierung sollten alle zuvor erläuterten DevOps-Phasen berücksichtigen:

  • Planung
  • CI/CD (einschließlich Automatisierungsfunktionen wie Infrastruktur als Code)
  • Operationen
  • Zusammenarbeiten und Feedback

Lesen Sie Anleitungen für die Bereitstellung der Zielzone und Überlegungen zur Auswahl einer Implementierungsoption bei der Auswahl der Einführung von Zielzonen.

Unabhängig von der ausgewählten Methodik (start small and expand or enterprise-scale) gibt es einige gängige Topologien, die Unternehmen bei der Entwicklung ihrer DevOps-Workflows und Toolkette tendenziell befolgen.

  • Vollständige Azure DevOps-Toolkette: Für Unternehmen, die bereits stark in das Microsoft-Ökosystem investiert sind, ermöglicht diese Topologie es ihnen, die nativen Integrationen 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 als Teil einer gut integrierten Lösung nutzen.

Vollstapel-Azure DevOps-Toolkette

Diagramm einer vollständigen Stapel-Azure DevOps-Toolkette.

DevOps-Phase Tools
Planung Azure Boards bietet Entwicklern und anderen Personas leistungsstarke und flexible Planungsfunktionen, darunter hierarchische Backlogs, anpassbare Kanban-Boards, umfangreiche Prozessanpassungen, Teamdashboards und benutzerdefinierte Berichte.
CI/ CD Mit Azure Repos können Sie private Git-Repositorys erstellen und verschiedene Git-Clients, Verzweigungsstrategie und Schutz unterstützen. Azure Repos bietet auch lokalisierte Datenaufbewahrung in der Cloud, um die Einhaltung europäischer Vorschriften zu ermöglichen. Azure Pipelines ermöglicht Es Kunden, automatisierte Pipelines für CI/CD einzurichten, einschließlich erweiterter Testberichte und bietet leistungsstarke Unterstützung für mehrstufige Pipelines. Detaillierte Berechtigungen, Gates, benutzerdefinierte Prüfungen und automatisierte Testergebnisberichte in Azure Pipelines helfen Ihnen, bewährte Methoden für die Sicherheit, Compliance und sichere Bereitstellung in Ihrer Organisation zu erzwingen und parallele Schritte zur Ausführung und Skalierbarkeit zu unterstützen. Azure Artifacts bietet einen Feed zum Speichern von Paketen und zum Überprüfen und Überprüfen der einzelnen Pakete für Sicherheitszwecke sowie eine präzise Berechtigungssteuerung und -überwachung. Azure Test Plans in Azure DevOps bietet eine browserbasierte Testverwaltungslösung für explorative, manuelle und Benutzerakzeptanztests. Benutzer von Azure TestPlänen verwenden in der Regel auch Azure Boards für die Planung und das Projektmanagement. Sie können Benutzergeschichten und andere Anforderungen verknüpfen, um Fälle zu testen und Fehler zu dokumentieren, die durch Tests gefunden wurden. Adoptieren Sie Marketplace-Erweiterungen für DevOps, um die statische Code-Analyse mit Werkzeugen wie Berechtigungsscannern, Open-Source-Scannern, Fehler- und Schwachstellenscannern und weiteren zu verbessern.
Operationen Azure Dashboards und Berichte bieten benutzerdefinierte Berichte, die Ihnen helfen, wichtige Leistungsmetriken des Diensts zu überwachen. Azure Diagnostics and Application Insights sind die Standardmethode zum Nachverfolgen der Integrität und des Status von Azure-Ressourcen. Azure Monitor bietet eine zentrale Überwachung und Verwaltung. Azure Automation kann verwendet werden, um ereignisbasierte Automatisierung zum Diagnostizieren und Beheben von Problemen zu erstellen. Defender für Cloud DevOps verwendet eine zentrale Konsole, um Sicherheitsteams mit der Möglichkeit zu unterstützen, Anwendungen und Ressourcen von Code zu Cloud in mehreren Pipelineumgebungen zu schützen, einschließlich Azure DevOps und GitHub.
Zusammenarbeiten und Feedbacks Mit Azure DevOps Wiki können Sie Informationen mit Mitgliedern anderer Teams teilen und die gemeinsame Bearbeitung ihrer Inhalte und Struktur unterstützen. Azure Boards bieten Kanban-Zusammenarbeit und Unterstützung für Kommentare und Diskussionen in Backlog-Elementen.

Azure DevOps- und GitHub-Toolkette

Diagramm einer Azure DevOps- und GitHub-Toolkette.

DevOps-Phase Tools
Planung Azure Boards bietet eine stabile und skalierbare Lösung für planung, Repositoryverwaltung, Datenvisualisierung und hierarchische Arbeitsaufgabenorganisation. Es ist in GitHub integriert, sodass Sie Arbeitsaufgaben und GitHub-Commits verknüpfen können. Außerdem können Sie Ihren idealen Workflow auswählen, unabhängig davon, ob es sich um einen einfachen, sofort einsatzbereiten Workflow oder einen benutzerdefinierten Workflow handelt, den Sie mit dem leistungsstarken und flexiblen Azure Boards-Anpassungsmodul erstellen. Wenn Sie Ihre Daten visualisieren müssen, hilft Azure Boards Ihnen, benutzerdefinierte Dashboards auf einfache Weise zu erstellen und zu konfigurieren und den Fortschritt während Der gesamten Projektlebenszyklus zu überwachen.
CI/ CD Verwenden Sie die GitHub Enterprise (GHE)-Version von GitHub, die GitHub Repo, GitHub Advanced Security (GHAS) und GitHub Advanced Security für Azure DevOps umfasst. GHAS umfasst CodeQL, CodeÜberprüfung, geheime Überprüfung und Abhängigkeitsüberprüfung. GHE bietet auch Codespaces, eine Cloud-IDE, die Sie zum Entwickeln von Code verwenden können, und die Visual Studio Code ersetzen können, die Organisationen in der Regel in Vollstapel-Azure DevOps-Szenarien einschließen können. Sie können GitHub-Aktionen verwenden, um Nicht-Build-Workflows zu automatisieren, wenn sich Ihre Repositorys in GitHub befinden. Wenn Sie komplexere Szenarien haben, in denen Sie von außerhalb von GitHub auf Code zugreifen müssen oder eine zentrale Verwaltung für Workflowvorlagen und Buildpipelines erfordern, übernehmen Sie Azure-Pipelines. Für Azure Boards können Sie Azure-Pipelines in GitHub-Repositorys integrieren. Informationen zur Integration von Azure DevOps und GitHub finden Sie unter "Arbeiten mit Azure DevOps und GitHub". GitHub Packages ist ein Softwarepaketdienst, mit dem Sie Ihre eigenen Pakete privat oder öffentlich hosten können. GitHub bietet Containerregistrierungsunterstützung 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 ihre Paketlebenszyklusverwaltung sicher zu halten. Um Pakete zu automatisieren, können Sie GitHub-Pakete in GitHub-Aktionen, GitHub-APIs und Webhooks integrieren, um DevOps-Workflows zu erstellen, die Code, CI und Bereitstellungen in einer Einzigen Schnittstelle enthalten.
Operationen GitHub Insights bietet Analyseberichte basierend auf Daten aus Ihrer GitHub Enterprise Server-Instanz, um Ihren Softwareübermittlungsprozess zu verstehen und zu verbessern. Verwenden Sie für die Diagnose und Verwaltung der Zielzone die azure-Dienste, die im Szenario "Azure DevOps" im Vollstapel empfohlen werden.
Zusammenarbeit und Feedback Sie können GitHub-Diskussionen verwenden, um Fragen, Ideen, Unterhaltungen, Anfragen für Kommentar (RFC), Ressourcenplanung und Ankündigungen zu teilen. Verwenden Sie Azure Boards , um benutzerdefinierte Dashboards ganz einfach zu erstellen und zu konfigurieren und den Fortschritt während des gesamten Projektlebenszyklus zu überwachen. Einführen von Microsoft Teams für eine vollständige Teamzusammenarbeitserfahrung.