Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Kontinuierliche Integration und kontinuierliche Bereitstellung
Entwickeln und verbessern Sie Anwendungen und Dienste schneller als Unternehmen, die traditionelle Softwareentwicklungs- und Infrastrukturmanagementprozesse verwenden.
Die Einführung von DevOps
Starten
Einführung der Verwaltung von Softwarekomponenten
Bei der Verwaltung von Softwarekomponenten werden alle einzelnen Komponenten verwaltet, die zum Erstellen von Software verwendet werden, einschließlich Bibliotheken, Frameworks, Quellcode-Repositorys, Modulen, Artefakten und Abhängigkeiten von Drittanbietern. Wir empfehlen Ihnen, ein Versionskontrollsystem wie Git oder Apache Subversion zu verwenden, um den Quellcode zu verwalten, die Zusammenarbeit zu ermöglichen und die Historie der Codeänderungen zu verwalten. Sie können Änderungen und Ereignisse im Repository überwachen, um den Prozess zu automatisieren, Pipelines zu erstellen, Ihren Code zu verwalten und Ihre Workflows nach Bedarf mit zusätzlichen Diensten zu integrieren.
Pipelines erstellen CI/CD
CI/CD pipelines are sets of automated instructions that are initiated by changes committed to the version control system. They typically include instructions for building the application, running automated tests, and deploying code to a specific environment. You can set up an automated CI/CDPipeline mithilfe von Tools wie AWS CodePipelineJenkins oder GitLab CircleCI. Sie können sie auch direkt in Versionskontrollsystemen einrichten, die die Pipeline-Generierung unterstützen.
Beginnen Sie mit einer Pipeline, die für eine kontinuierliche Integration geeignet ist, und wechseln Sie dann zu einer Pipeline für die kontinuierliche Bereitstellung
Denken Sie an die Bereitstellungsfenster — an welchen Tagen und zu welchen Zeiten Sie Ihren Code bereitstellen möchten. Berücksichtigen Sie die wenig beanspruchten Zeiten Ihres Systems. Wenn Sie also ein Rollback durchführen müssen, hat das die geringsten Auswirkungen auf Ihre Kunden. Zu den weiteren bewährten Methoden gehören die Vermeidung von Bereitstellungen an Freitagen und die Implementierung eines Code-Freeze an Spitzenzeiten oder vor Feiertagen. Erwägen Sie die Definition von Regeln für die Bereitstellung von Code, wenn der Autor des Commits nicht verfügbar ist (z. B. im Urlaub). Denken Sie daran, dass Bereitstellungen fehlschlagen und Sie sich möglicherweise auf externe Hilfe verlassen müssen. Evaluieren Sie verschiedene Bereitstellungsmethoden wie direkte, fortlaufende, unveränderliche Bereitstellungen und Bereitstellungen. blue/green Erwägen Sie den Einsatz vollständig verwalteter Services für Continuous Delivery-Workflows, um die Verfügbarkeit und Sicherheit zu erhöhen und gleichzeitig Komplexität und Verwaltung zu minimieren.
Setzen Sie automatisierte Tests ein
Moderne Verfahren empfehlen eine Verlagerung nach links (d. h. das Testen näher am Entwickler und an der IDE
Automatisierte Tests erkennen Fehler früh im Entwicklungsprozess und umfassen Komponententests, Integrationstests und Funktionstests. Wir empfehlen Entwicklern, so früh wie möglich Tools zur Erstellung von Komponententests zu verwenden
Dokumentation erstellen
Zusätzlich zur Implementierung einer CI/CD Pipeline zur Optimierung der Entwicklungsabläufe sollten Sie eine klare und umfassende Dokumentation führen, um die kontinuierliche Effektivität, Wartbarkeit und Skalierbarkeit der Pipeline sicherzustellen. Die Dokumentation ist ein wichtiger Aspekt von CI/CD-Pipelines, da sie den Entwicklungsteams ein klares Verständnis des Designs, der Komponenten und der Prozesse der Pipeline vermittelt. Beginnen Sie bei der Erstellung der Dokumentation mit einem Überblick über die Pipeline, erläutern Sie die Kompromisse zwischen Architektur und Design, beschreiben Sie die verwendeten Tools und Technologien, geben Sie die Erstkonfiguration und die Einstellungen an, skizzieren Sie die Sicherheitsmaßnahmen und die Zugriffskontrolle und fügen Sie Informationen zur Fehlerbehebung und Wartung hinzu.
Verwenden Sie Infrastruktur als Code
Verwenden Sie Tools wie Terraform, Ansible oder AWS CloudFormationzur Verwaltung der Infrastruktur und zur Sicherstellung konsistenter und reproduzierbarer Umgebungen. Behandeln Sie Ihre Infrastruktur wie Code, stellen Sie sicher, dass Sie Änderungen an der Infrastruktur verfolgen, und vermeiden Sie es, Änderungen direkt in der Konsole vorzunehmen. Definieren Sie die gesamte Infrastruktur — einschließlich der Datenbankbereitstellung — als Code und implementieren Sie diese Änderungen mithilfe von Pipelines. Erwägen Sie, die Datenbankintegration als Code in Pipelines mit einer kleinen Teilmenge bereinigter Produktionsdaten auszuführen. Nehmen Sie nach Möglichkeit die Änderungen vor und verfolgen Sie diese Änderungen im Code.
Wie beim Softwarecode sollten Sie auch bei Ihrem Infrastrukturcode die folgenden bewährten Methoden beachten:
-
Verwenden Sie die Versionskontrolle.
-
Nutzen Sie Bug-Tracking- und Ticketing-Systeme.
-
Lassen Sie die Änderungen von Kollegen überprüfen, bevor Sie sie anwenden.
-
Legen Sie Muster und Designs für den Infrastrukturcode fest.
-
Testen Sie Änderungen an der Infrastruktur.
Behalten und verfolgen Sie Standardkennzahlen
Um ein hohes Leistungsniveau aufrechtzuerhalten, sollten Sie wichtige Kennzahlen entwickeln und anhand dieser Kennzahlen nachverfolgen, um den Zustand und die geschäftlichen Auswirkungen Ihrer Pipelines zu verstehen, darunter:
-
Frequenz aufbauen. Die Anzahl der Builds bietet Einblicke in die Produktivität Ihres Teams und die Komplexität der Änderungen.
-
Häufigkeit der Bereitstellung. Regelmäßige Bereitstellungen deuten auf einen gesunden, agilen Entwicklungsprozess hin.
-
Vorlaufzeit für Änderungen. Wenn Sie die durchschnittliche Zeit messen, bis Änderungen in der Produktion ankommen, können Sie Engpässe in Ihrem Implementierungsprozess identifizieren.
-
Mittlere Zeit bis zur Pipeline. Die durchschnittliche Zeit von der ersten Pipeline-Phase bis zu jeder nachfolgenden Phase kann zur Optimierung Ihres Workflows beitragen.
-
Das Volumen der Produktion ändert sich. Wenn Sie den Überblick über die Anzahl der Änderungen behalten, die die Produktion erreichen, können Sie Einblicke in die Stabilität Ihrer Produktionsumgebung gewinnen.
-
Bauzeit. Die durchschnittliche Erstellungszeit kann auf potenzielle Probleme in der Codebasis oder Infrastruktur hinweisen.
Vorwärts
Verwenden Sie das Konfigurationsmanagement
Tools für das Konfigurationsmanagement spielen eine entscheidende Rolle bei der Automatisierung der Bereitstellung, Konfiguration und Verwaltung von Software und Infrastruktur. Sie bieten einen systematischen Ansatz für den Umgang mit Änderungen und die Aufrechterhaltung des gewünschten Zustands von Infrastruktur, Software und Konfigurationen in verschiedenen Umgebungen. Diese Tools ermöglichen es Entwicklern, den gewünschten Status eines Systems mithilfe deklarativer oder imperativer Sprachen zu definieren. Das Konfigurationsmanagement-Tool automatisiert dann den Prozess der Anwendung dieser Konfigurationen auf die Zielsysteme und gewährleistet so Konsistenz und Wiederholbarkeit.
Verwenden Sie Tools für das Konfigurationsmanagement, um die Bereitstellung, Konfiguration und Verwaltung von Software und Infrastruktur zu automatisieren. AWS Systems Manager State Manager ist ein sicherer und skalierbarer Konfigurationsverwaltungsdienst, der den Prozess automatisiert, Ihre verwalteten Knoten und andere AWS Ressourcen in einem von Ihnen definierten Zustand zu halten.
Integrieren Sie Überwachung und Protokollierung
Die Integration von Überwachungs- und Protokollierungslösungen in CD-Pipelines bietet zahlreiche Vorteile für Entwicklungsteams und für den gesamten Softwareentwicklungsprozess. Diese Lösungen bieten Einblicke in Echtzeit in die Anwendungsleistung, ermöglichen eine schnellere Identifizierung und Lösung von Problemen und fördern die kontinuierliche Verbesserung, um sicherzustellen, dass Anwendungen während ihres gesamten Lebenszyklus zuverlässig, leistungsfähig und skalierbar bleiben. Investitionen in Überwachungs- und Protokollierungslösungen sind ein wichtiger Aspekt für die Aufrechterhaltung einer robusten und effizienten CD-Pipeline und tragen letztlich zur erfolgreichen Bereitstellung hochwertiger Software bei.
Schaffen Sie einen Rhythmus für das Zusammenführen
Führen Sie Codeänderungen mindestens einmal täglich oder idealerweise mehrmals täglich oder idealerweise mehrmals täglich nach jeder Aufgabe in die Hauptleitung (Stamm- oder Hauptzweig) ein oder führen Sie sie zusammen. Dieser Rhythmus führt zu mehreren täglichen Pipeline-Aufrufen. Ein Pull-basiertes Branching-Workflow-Modell passt zu diesem Ansatz. Verwenden Sie Feature-Flags
Erfassen Sie das Verhalten nach der Bereitstellung
Erfassen Sie nach einer Bereitstellung das Produktionsverhalten mithilfe automatisierter synthetischer Tests und synchronisieren Sie die Ergebnisse mit der Continuous-Delivery-Pipeline, um sicherzustellen, dass umgehend Korrekturmaßnahmen ergriffen werden. Die oberste Priorität für Entwickler sollte darin bestehen, in Pipelines entdeckte Fehler so schnell wie möglich zu beheben, Codeänderungen in das Quellcode-Repository zu übertragen und die Fehlerbehebung in der Pipeline zu überprüfen.
Zu den besten Methoden nach der Bereitstellung gehören die Beobachtung der wichtigsten Leistungsindikatoren (KPIs) und die Überprüfung, dass keine Fehler in der Produktionsumgebung vorliegen. Automatisieren Sie die Fehlerbehandlung und Evaluierung nach der Bereitstellung KPIs , um die Auswirkungen Ihrer Version zu quantifizieren. Generieren Sie automatisch Geschwindigkeits-, Sicherheits- und Stabilitätskennzahlen, anhand derer Entwickler Verbesserungen vornehmen können. Weitere Informationen finden Sie im DevOps Lösungsüberwachungs-Dashboard
Excel
Setzen Sie modernste Verfahren und Technologien ein, um eine optimale Leistung zu erzielen. Durch die kontinuierliche Weiterentwicklung Ihrer CI/CD Prozesse können Sie die Softwarequalität verbessern, die Markteinführungszeit verkürzen und die Agilität erhöhen. Es entstehen ständig neue Techniken und Tools. Daher ist es für Ihr Unternehmen unerlässlich, auf dem Laufenden zu bleiben und sich anzupassen, um sich einen Wettbewerbsvorteil zu sichern.
Um anpassungsfähig zu bleiben, sollten Sie Folgendes beachten:
-
Definieren Sie alles als Code, einschließlich Ihrer Anwendung, Konfiguration, Infrastruktur, Daten, AWS Konten und Organisationen, Bereitstellungspipelines, Netzwerke sowie Sicherheits- und Compliance-Kontrollen.
-
Erstellen Sie entsprechende Bereitstellungspipelines
für Compute-Images, gemeinsam genutzte Dienste und Anwendungen. -
Stellen Sie sich ein GitOps Modell vor, bei dem pullbasierte Anfragen einen Workflow zur Implementierung von Änderungen initiieren, indem der aktuelle Zustand der Infrastruktur mit dem gewünschten Zustand verglichen wird, wie im Code beschrieben.
-
Erwägen Sie die Verwendung von CD-Pipelines, um maschinelles Lernen (ML), Daten, Internet der Dinge (IoT) und andere Workloads bereitzustellen.
-
Signieren Sie alle Build-Artefakte digital und speichern Sie sie in einem sicheren Repository.
-
Verfolgen Sie die Herkunft der Software, indem Sie automatisch eine Softwareliste erstellen, die eine Aufzeichnung aller versionierten und digital signierten Artefakte erstellt, die für Kunden bereitgestellt werden.
-
Nachdem Sie alle manuellen Aktivitäten in einem Softwarebereitstellungsprozess eliminiert haben, entfernen Sie die manuellen Prüfungsausschüsse.
Bei Anwendungen und Services, die ihren gesamten Softwarebereitstellungsprozess automatisiert haben, sollten Sie eine kontinuierliche Bereitstellung in Betracht ziehen, bei der die Teams Änderungen vornehmen, die alle Prüfungen in einer Pipeline an die Kunden in der Produktion übergeben. Eine Visualisierung finden Sie im ersten Diagramm unter Was ist Continuous Delivery?
Integrieren Sie AI/ML Technologien
Die Integration von Technologien für künstliche Intelligenz (KI) und maschinelles Lernen (ML) in CI/CD Pipelines bietet mehrere Vorteile, darunter die folgenden:
-
Automatisierte Testgenerierung
-
Intelligente Testpriorisierung
-
Prädiktive Analysen zur Problemerkennung
-
Erkennung von Anomalien und Ursachenanalyse
-
Überprüfung des Codes und Qualitätssicherung
-
Optimierung der Bereitstellung
Weitere Informationen finden Sie auf der AWS Website unter Hinzufügen von Informationen zu Ihren Entwicklerabläufen
Wenden Sie Methoden der Chaos-Technik an
Chaos Engineering beinhaltet das gezielte Einschleusen von Fehlern in Systeme, um ihre Fähigkeit zu testen, unerwarteten Ereignissen standzuhalten und sich danach zu erholen. Durch die Identifizierung von Schwachstellen und deren proaktive Behebung können Unternehmen ihre allgemeine Systemzuverlässigkeit verbessern und die Auswirkungen potenzieller Probleme minimieren.
Nutzen Sie Chaos-Engineering-Praktiken, um die Widerstandsfähigkeit Ihrer Systeme mithilfe von Tools wie Gremlin, Chaos Monkey oder Litmus zu testen. Führen Sie regelmäßig kontrollierte Experimente durch, um Schwachstellen zu identifizieren, die Fehlertoleranz zu überprüfen und sicherzustellen, dass Ihre Anwendung unerwartete Ausfälle ordnungsgemäß behandelt. Dieser proaktive Ansatz trägt zur Verbesserung der Systemzuverlässigkeit bei und trägt zu einer CI/CD robusteren Pipeline bei.
Optimieren der Leistung
Optimieren Sie die Leistung Ihrer Anwendung kontinuierlich mithilfe von Profilierungstools, Echtzeitüberwachung und Feedback-Schleifen. Wenden Sie Techniken wie die folgenden an, um sicherzustellen, dass Ihre Anwendungen den erhöhten Datenverkehr und die steigende Nachfrage bewältigen können:
-
Code-Optimierung
-
Profilerstellung
-
Überwachung in Echtzeit
-
Feedback-Schleifen
-
Caching
-
Load Balancing
-
Skalierbarkeit und Leistungstests
Implementieren Sie erweiterte Beobachtbarkeit
Die Verbesserung der Beobachtbarkeit Ihrer Cloud-Infrastruktur geht über die Grundlagen der Erfassung, Aggregation und Analyse von Metriken, Protokollen und Traces hinaus. Wenn die Beobachtbarkeit mit Tools wie Amazon CloudWatch und verbessert wird AWS X-Ray, entwickelt sie sich zu einer strategischen Praxis, die kontinuierliche Bereitstellung und Innovation fördert.
In einer soliden CI/CD Pipeline ermöglicht Ihnen die erweiterte Observability, Erkenntnisse nicht nur über Ihre Anwendungen und Infrastruktur zu gewinnen, sondern auch über die Leistung und den Zustand Ihres gesamten Systems, einschließlich der Pipeline selbst. Diese Erkenntnisse helfen Ihnen:
-
Identifizieren, verstehen und beheben Sie potenzielle Probleme schnell, um die Anwendungsstabilität zu verbessern und Ausfallzeiten zu reduzieren
-
Optimieren Sie Ihre CI/CD Prozesse, um schnellere und zuverlässigere Lieferungen zu ermöglichen
-
Gewinnen Sie tiefere Einblicke in die Auswirkungen von Codeänderungen und Implementierungen, um fundierte Entscheidungen treffen zu können
-
Optimieren Sie die Ressourcennutzung, um die betriebliche Effizienz und Kosteneffektivität zu verbessern
Um die Beobachtbarkeit zu erhöhen:
-
Integrieren Sie Observability in jede Ebene Ihrer Anwendungen und Infrastruktur, um einen umfassenden Überblick über die Leistung, das Verhalten und den Zustand Ihrer Systeme zu erhalten.
-
Zentralisieren Sie die Datenerfassung, Speicherung und Analyse mit Tools wie Amazon, CloudWatch um Ihre Observability-Daten für einen einfachen Zugriff und eine einfache Interpretation zu vereinheitlichen.
-
Verwenden Sie es AWS X-Ray für verteiltes Tracing, um zu verstehen, wie Ihre Anwendungen und die ihnen zugrunde liegenden Dienste funktionieren.
-
Richten Sie Feedback-Schleifen für kontinuierliche Verbesserungen ein und nutzen Sie Ihre Beobachtungsdaten, um iterative Verbesserungen an Ihren Systemen voranzutreiben.
Bei der Einführung von erweiterter Observability geht es nicht nur um die Wartung Ihrer Systeme — es ist auch ein strategischer Schritt, um operative Exzellenz zu erreichen und kontinuierliche Innovationen in Ihrem Unternehmen voranzutreiben.
GitOps Implementieren Sie Praktiken
Implementieren Sie GitOps Methoden zur Verwaltung von Infrastruktur- und Anwendungskonfigurationen, indem Sie ein Git-Repository als zentrale Informationsquelle verwenden. Dieser Ansatz vereinfacht das Änderungsmanagement, verbessert die Rückverfolgbarkeit und sorgt für Konsistenz in allen Umgebungen.