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.
Richten Sie eine CI/CD-Pipeline mithilfe von AWS CodePipeline und AWS CDK ein
Erstellt von Konstantin Zarudaev (AWS), Cizer Pereira (AWS), Lars Kinder (AWS) und Yasha Dabas (AWS)
Code-Repository: AWS CodePipeline mit CI/CD | Umgebung: PoC oder Pilotprojekt | Technologien: DevOps |
Arbeitsaufwand: Open Source | AWS-Dienste: AWS CodePipeline |
Startseite
Die Automatisierung Ihres Software-Build- und Release-Prozesses mit Continuous Integration and Continuous Delivery (CI/CD) unterstützt wiederholbare Builds und die schnelle Bereitstellung neuer Funktionen für Ihre Benutzer. Sie können jede Codeänderung schnell und einfach testen und Fehler catch und beheben, bevor Sie Ihre Software veröffentlichen. Indem Sie jede Änderung Ihrem Staging- und Release-Prozess unterziehen, können Sie die Qualität Ihres Anwendungs- oder Infrastrukturcodes überprüfen. CI/CD verkörpert eine Kultur, eine Reihe von Betriebsprinzipien und eine Sammlung von Praktiken
Dieses Muster definiert eine wiederverwendbare Pipeline für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) auf Amazon Web Services (AWS). Die CodePipeline AWS-Pipeline wurde mit dem AWS Cloud Development Kit (AWS CDK) v2
Mithilfe CodePipeline können Sie die verschiedenen Phasen Ihres Softwareveröffentlichungsprozesses über die AWS-Managementkonsole, die AWS-Befehlszeilenschnittstelle (AWS CLI) CloudFormation, AWS oder die AWS-SDKs modellieren. Dieses Muster demonstriert die Implementierung von CodePipeline und seine Komponenten mithilfe von AWS CDK. Zusätzlich zu den Construct-Bibliotheken enthält AWS CDK ein Toolkit (den CLI-Befehlcdk
), das wichtigste Tool für die Interaktion mit Ihrer AWS-CDK-App. Das Toolkit bietet unter anderem die Möglichkeit, einen oder mehrere Stacks in CloudFormation Vorlagen zu konvertieren und sie auf einem AWS-Konto bereitzustellen.
Die Pipeline umfasst Tests zur Überprüfung der Sicherheit Ihrer Drittanbieter-Bibliotheken und trägt dazu bei, eine beschleunigte, automatisierte Veröffentlichung in den angegebenen Umgebungen sicherzustellen. Sie können die Gesamtsicherheit Ihrer Anwendungen erhöhen, indem Sie sie einem Validierungsprozess unterziehen.
Ziel dieses Musters ist es, die Verwendung von CI/CD-Pipelines zur Bereitstellung Ihres Codes zu beschleunigen und gleichzeitig sicherzustellen, dass die von Ihnen bereitgestellten Ressourcen den Best Practices entsprechen DevOps . Nachdem Sie den Beispielcode
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto
Ein grundlegendes Verständnis im Folgenden:
AWS-CDK
AWS CloudFormation
AWS CodePipeline
TypeScript
Einschränkungen
Dieses Muster verwendet AWS CDK TypeScript nur für. Andere Sprachen, die von AWS CDK unterstützt werden, werden nicht abgedeckt.
Produktversionen
Verwenden Sie die neuesten Versionen der folgenden Tools:
AWS-Befehlszeilenschnittstelle (AWS Command Line Interface, AWS CLI)
cfn_nag
git-remote-codecommit
Node.js
Architektur
Zieltechnologie-Stack
AWS-CDK
AWS CloudFormation
AWS CodeCommit
AWS CodePipeline
Zielarchitektur
Die Pipeline wird durch eine Änderung im CodeCommit AWS-Repository (SampleRepository
) ausgelöst. Zu Beginn CodePipeline erstellt es Artefakte, aktualisiert sich selbst und startet den Bereitstellungsprozess. Die daraus resultierende Pipeline stellt eine Lösung für drei unabhängige Umgebungen bereit:
Dev — Dreistufiger Codecheck in der aktiven Entwicklungsumgebung
Test — Integrations- und Regressionstestumgebung
Prod — Produktionsumgebung
Die Entwicklungsphase umfasst drei Schritte: Linting, Sicherheit und Komponententests. Diese Schritte laufen parallel ab, um den Prozess zu beschleunigen. Um sicherzustellen, dass die Pipeline nur funktionierende Artefakte bereitstellt, wird sie beendet, sobald ein Schritt im Prozess fehlschlägt. Nach einer Bereitstellung in der Entwicklungsphase führt die Pipeline Validierungstests durch, um die Ergebnisse zu überprüfen. Im Erfolgsfall stellt die Pipeline die Artefakte dann in der Testumgebung bereit, die die Validierung nach der Bereitstellung beinhaltet. Der letzte Schritt besteht darin, die Artefakte in der Prod-Umgebung bereitzustellen.
Das folgende Diagramm zeigt den Arbeitsablauf vom CodeCommit Repository bis zu den Build- und Aktualisierungsprozessen CodePipeline, die drei Schritte der Entwicklungsumgebung und die anschließende Bereitstellung und Validierung in jeder der drei Umgebungen.
Tools
AWS-Services
Das AWS Cloud Development Kit (AWS CDK) ist ein Softwareentwicklungs-Framework, das Sie bei der Definition und Bereitstellung der AWS-Cloud-Infrastruktur im Code unterstützt.
AWS CloudFormation hilft Ihnen dabei, AWS-Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und Regionen hinweg zu verwalten. In diesem Muster können CloudFormation Vorlagen verwendet werden, um ein CodeCommit Repository und eine CodePipeline CI/CD-Pipeline zu erstellen.
AWS CodeCommit ist ein Versionskontrollservice, mit dem Sie Git-Repositorys privat speichern und verwalten können, ohne Ihr eigenes Quellcodeverwaltungssystem verwalten zu müssen.
AWS CodePipeline ist ein CI/CD-Service, der Ihnen hilft, die verschiedenen Phasen einer Softwareversion schnell zu modellieren und zu konfigurieren und die Schritte zu automatisieren, die für die kontinuierliche Veröffentlichung von Softwareänderungen erforderlich sind.
AWS Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
Andere Tools
cfn_nag
ist ein Open-Source-Tool, das in CloudFormation Vorlagen nach Mustern sucht, um potenzielle Sicherheitsprobleme zu identifizieren. git-remote-codecommitist ein Hilfsprogramm zum Pushen und Abrufen von Code aus CodeCommit Repositorys, indem es Git erweitert.
Node.js
ist eine ereignisgesteuerte JavaScript Laufzeitumgebung, die für die Erstellung skalierbarer Netzwerkanwendungen konzipiert wurde.
Code
Der Code für dieses Muster ist im GitHub AWS CodePipeline with CI/CD Practices
Bewährte Methoden
Überprüfen Sie Ressourcen wie die Richtlinien von AWS Identity and Access Management (IAM), um sicherzustellen, dass sie mit den bewährten Methoden Ihres Unternehmens übereinstimmen.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Installieren Sie Tools auf macOS oder Linux. | Wenn Sie macOS oder Linux verwenden, können Sie die Tools installieren, indem Sie den folgenden Befehl in Ihrem bevorzugten Terminal ausführen oder Homebrew für
| DevOps Ingenieur |
Installieren Sie Tools mithilfe von AWS Cloud9. | Wenn Sie AWS Cloud9
Hinweis: In AWS Cloud9 sollten Node.js und npm installiert sein. Führen Sie den folgenden Befehl aus, um die Installation oder Version zu überprüfen.
| DevOps Ingenieur |
Richten Sie die AWS-CLI ein. | Verwenden Sie die Anweisungen für Ihr Betriebssystem, um AWS CLI einzurichten: | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Laden Sie den Code herunter oder klonen Sie ihn. | Gehen Sie wie folgt vor, um den Code abzurufen, der von diesem Muster verwendet wird:
Entfernen Sie das
Später werden Sie ein neu erstelltes CodeCommit AWS-Repository als Remote-Ursprung verwenden. | DevOps Ingenieur |
Connect zum AWS-Konto her. | Sie können eine Verbindung herstellen, indem Sie ein temporäres Sicherheitstoken oder eine Landingzone-Authentifizierung verwenden. Führen Sie die folgenden Befehle aus, um zu bestätigen, dass Sie das richtige Konto und die richtige AWS-Region verwenden.
| DevOps Ingenieur |
Bootstrapping für die Umwelt. | Führen Sie die folgenden Befehle aus, um eine AWS-CDK-Umgebung zu booten.
Nachdem Sie die Umgebung erfolgreich gebootet haben, sollte die folgende Ausgabe angezeigt werden.
Weitere Informationen zu AWS CDK-Bootstrapping finden Sie in der AWS CDK-Dokumentation. | DevOps Ingenieur |
Synthetisieren Sie eine Vorlage. | Verwenden Sie den Befehl, um eine AWS CDK-App zu synthetisieren.
Die Ausgabe sollte folgendermaßen aussehen.
| DevOps Ingenieur |
Stellen Sie den CodePipeline Stack bereit. | Nachdem Sie die CloudFormation Vorlage nun gebootet und synthetisiert haben, können Sie sie bereitstellen. Bei der Bereitstellung werden die CodePipeline Pipeline und ein CodeCommit Repository erstellt, das als Quelle und Auslöser der Pipeline dient.
Nachdem Sie den Befehl ausgeführt haben, sollten Sie sehen, dass der CodePipeline Stack erfolgreich bereitgestellt und die Informationen ausgegeben wurden. Das
| DevOps Ingenieur |
Richten Sie das CodeCommit Remote-Repository und den Branch ein. | Nach einer erfolgreichen Bereitstellung CodePipeline wird der erste Lauf der Pipeline initiiert, den Sie in der CodePipeline AWS-Konsole
Um diesen Fehler zu beheben, richten Sie einen Remote-Ursprung als
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Bestätigen Sie eine Änderung, um die Pipeline zu aktivieren. | Nach einer erfolgreichen ersten Bereitstellung sollten Sie über eine vollständige CI/CD-Pipeline mit einem
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Führen Sie den Entwicklungsprozess mithilfe eines Makefiles aus. | Sie können die gesamte Pipeline lokal ausführen, indem Sie den Führen Sie die folgenden Aktionen aus
| App-Entwickler, DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Löschen Sie die AWS-CDK-App-Ressourcen. | Führen Sie den folgenden Befehl aus, um Ihre AWS CDK-App zu bereinigen.
Beachten Sie, dass die Amazon Simple Storage Service (Amazon S3) -Buckets, die beim Bootstrapping erstellt werden, nicht automatisch gelöscht werden. Sie benötigen eine Aufbewahrungsrichtlinie, die das Löschen ermöglicht, oder Sie müssen sie manuell in Ihrem AWS-Konto löschen. | DevOps Ingenieur |
Fehlerbehebung
Problem | Lösung |
---|---|
Die Vorlage funktioniert nicht wie erwartet. | Wenn etwas schief geht und die Vorlage nicht funktioniert, stellen Sie sicher, dass Sie über Folgendes verfügen:
|