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.
Erstellen Sie mithilfe von DevOps Praktiken und Cloud9 eine lose gekoppelte Architektur mit Microservices AWS
Erstellt von Alexandre Nardi () AWS
Umgebung: PoC oder Pilotprojekt | Technologien: DevOps; Serverlos; Web- und mobile Apps; Datenbanken | AWSDienste: AWS Cloud9;; AWS CloudFormation AWS CodePipeline; Amazon DynamoDB; AWS CodeCommit |
Übersicht
Hinweis: AWS Cloud9 ist für Neukunden nicht mehr verfügbar. Bestandskunden von AWS Cloud9 können den Service weiterhin wie gewohnt nutzen. Weitere Informationen
Hinweis: AWS CodeCommit steht Neukunden nicht mehr zur Verfügung. Bestandskunden von AWS CodeCommit können den Service weiterhin wie gewohnt nutzen. Weitere Informationen
Dieses Muster zeigt, wie eine typische Webanwendung in einer serverlosen Architektur für Entwickler und Entwicklungsleiter entwickelt wird, die damit beginnen, DevOps Praktiken auf Amazon Web Services zu testen (AWS). Es erstellt eine Beispielanwendung, die eine Storefront und ein Backend für das Durchsuchen und Kaufen von Büchern erstellt und einen Microservice bereitstellt, der unabhängig entwickelt werden kann. Das Muster verwendet AWS Cloud9 als Entwicklungsumgebung, eine Amazon DynamoDB DynamoDB-Datenbank als Datenspeicher und AWS Dienste wie AWS CodePipeline und AWS CodeBuild für Continuous Integration and Continuous Deployment (CI/CD) -Funktionalität.
Das Muster führt Sie durch die folgenden Entwicklungsaktivitäten:
Erstellen einer standardmäßigen AWS Cloud9-Entwicklungsumgebung
Verwenden von AWS CloudFormation Vorlagen zur Erstellung einer Webanwendung und eines Microservices für Bücher
AWSCloud9 verwenden, um das Front-End zu modifizieren, Änderungen zu übernehmen und Änderungen zu testen
Erstellen und Testen einer CI/CD-Pipeline zum Microservice
Automatisierung von Komponententests
Der Code für dieses Muster befindet sich im GitHub AWS DevOps End-to-End Workshop-Repository
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS Konto
Dateien aus dem AWS DevOps End-to-End Workshop
wurden auf Ihren Computer heruntergeladen
Wichtig: Wenn Sie diese Demo-Anwendung in Ihrem AWS Konto erstellen, werden AWS Ressourcen erzeugt und verbraucht. Sie sind für die Kosten der AWS Dienste und Ressourcen verantwortlich, die für die Erstellung und Ausführung der Anwendung verwendet werden. Stellen Sie sicher, dass Sie nach Abschluss Ihrer Arbeit alle Ressourcen entfernen, um laufende Kosten zu vermeiden. Anweisungen zur Bereinigung finden Sie im Abschnitt Epics.
Einschränkungen
Diese exemplarische Vorgehensweise dient nur zu Demonstrations- und Entwicklungszwecken. Informationen zur Verwendung in einer Produktionsumgebung finden Sie unter Bewährte Sicherheitsmethoden in der Dokumentation zu AWS Identity and Access Management (IAM) und nehmen Sie die erforderlichen Änderungen an IAM Rollen, Amazon DynamoDB und anderen verwendeten Diensten vor. Die Webanwendung ist von der AWSBookstore-Demo-App
Architektur
Die Architektur der Bookstore-Anwendung wird im Abschnitt Architektur
Aus Sicht der Bereitstellung verwendet die Bookstore-Demo-App eine einzige CloudFormation Vorlage, um alle Dienste und Objekte in einem Stack bereitzustellen. Dieses Muster enthält einige Änderungen, um zu demonstrieren, wie ein bestimmter Entwickler oder ein bestimmtes Team an einem bestimmten Produkt (Bücher) arbeiten und es unabhängig vom Rest der Anwendung aktualisieren könnte. Aus diesem Grund teilt der Code für dieses Muster die AWS Lambda-Funktionen und zugehörigen Objekte für den Microservice Books in eine zweite CloudFormation Vorlage auf, die einen Books-Stack erstellt. Auf diese Weise können Sie sehen, wie der Microservice mithilfe von CI/CD-Praktiken aktualisiert wird. In der folgenden Abbildung kennzeichnet der gestrichelte Rand den Microservice Books.
Tools
Tools
Jest-Framework zum Testen JavaScript
Python 3.9
Code
Der Quellcode und die Vorlagen für dieses Muster sind im AWS DevOps End-to-End Workshop-Repository
Hinweis: Der Abschnitt Epics enthält die allgemeinen Schritte für diese exemplarische Vorgehensweise, um Ihnen allgemeine Informationen über den Prozess zu geben. In der READMEDatei
Das AWS DevOps End-to-End Workshop-Repository
Bewährte Methoden
Die Verwendung der Bookstore-Anwendung ist unkompliziert. Im Folgenden finden Sie einige empfohlene bewährte Methoden:
Bei der Installation der Anwendung können Sie einen Projektnamen Ihrer Wahl oder der Einfachheit halber den Standardnamen (
demobookstore
) verwenden.Nachdem Sie die Anwendung betriebsbereit haben, empfiehlt es sich, die Amazon Neptune Neptune-Datenbank herunterzufahren, wenn Sie den Test für einen weiteren Tag fortsetzen möchten, da die Datenbank-Instance zusätzliche Kosten verursachen kann. Beachten Sie jedoch, dass die Datenbank nach sieben Tagen automatisch gestartet wird.
Einzelheiten zum Code finden Sie in der Dokumentation zum AWSBookstore Demo App-Repository
. Sie beschreibt jeden Microservice und jede Tabelle. Weitere bewährte Methoden finden Sie unter Einige Herausforderungen, wenn Sie Zeit haben... Abschnitt der READMEDatei
im AWS DevOps End-to-End Workshop-Repository. Wir empfehlen Ihnen, die Informationen zu lesen, um sich eingehend mit zusätzlichen Sicherheitsfunktionen vertraut zu machen und Entkopplungsdienste zu üben.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Laden Sie den Quellcode von herunter GitHub. | Der Quellcode und die Vorlagen für dieses Muster sind im GitHub AWS DevOps End-to-End Workshop-Repository Hinweis: Der Abschnitt Epics enthält die allgemeinen Schritte für diese exemplarische Vorgehensweise, um Ihnen allgemeine Informationen über den Vorgang zu geben. In der READMEDatei Das AWS DevOps End-to-End Workshop-Repository | App-Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie die Front-End- und Lambda-Funktionen für die Bookstore-App. |
| Developer |
Erstellen Sie den Microservice Bücher. | Stellen Sie auf der CloudFormation Konsole | Developer |
Testen Sie Ihre Anwendung. | Verwenden Sie die Website URL aus dem DemoBookStoreStack Stack, um auf die Bookstore-Anwendung zuzugreifen. | Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie eine AWS Cloud9IDE. | Stellen Sie die | Entwickler, Leiter des Entwicklers |
Erstellen Sie CodeCommit Repositorys. |
| Developer |
Ändern Sie den Code im Frontend und überprüfen Sie die Pipeline. |
| Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Fügen Sie die YAML Dateien für den Build und das Service-Update hinzu. |
| Developer |
Erstellen Sie einen S3-Bucket für die Build-Pipeline. | Um einen S3-Bucket zu erstellen, folgen Sie den Anweisungen in der Amazon S3 S3-Dokumentation.
| Developer |
Wird verwendetIAM, um eine Rolle für die CloudFormation Bereitstellung zu erstellen. | Erstellen Sie eine | Developer |
Erstellen Sie eine neue Pipeline, um die Erstellung und Bereitstellung des Microservices Books zu automatisieren. | Developer | |
Testen Sie Ihren Microservice in AWS Cloud9. | Nehmen Sie eine Änderung an der ListBooksFunktion vor und sehen Sie, wie die Pipeline funktioniert. | Developer |
Automatisieren Sie den Komponententest für die ListBooks Lambda-Funktion. | Aktivieren Sie in der AWS Cloud9 den BuildIDE, um Komponententests auszuführen, und überprüfen Sie die Testergebnisse. Anweisungen finden Sie in der READMEDatei | Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Machen Sie Ihre Lösung sicher. | Stellen Sie | Developer |
Beseitigen Sie Abhängigkeiten in den CloudFormation Vorlagen. | Die Methode für den Informationsaustausch zwischen der | Developer |
Erstellen Sie einen Cart-Microservice. | Verwenden Sie den Microservice Books als Beispiel, um Funktionen im Zusammenhang mit Einkaufswagen aus der | Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Löschen Sie die S3-Buckets. | Löschen Sie auf der Amazon S3 S3-Konsole
| Developer |
Lösche die Stapel. | Löschen Sie auf der CloudFormation Konsole
Das Entfernen kann mehr als 90 Minuten dauern. Wenn das Entfernen fehlschlägt, löschen Sie sie erneut und löschen Sie auch alle manuellen Ressourcen (z. B. die VPC oder Netzwerkschnittstellen), die auf Benachrichtigungen basieren. | Developer |
Löschen Sie die IAM Rollen. | Löschen Sie auf der IAMKonsole
step-by-stepAnweisungen finden Sie in der IAMDokumentation. | Developer |
Zugehörige Ressourcen
Einen Stack auf der AWS CloudFormation Konsole erstellen (Dokumentation) AWS CloudFormation
Einen Bucket erstellen (Amazon S3 S3-Dokumentation)
Zusätzliche Informationen
Eine ausführliche step-by-step Anleitung finden Sie in der READMEDatei
Über das Update vom Mai 2023: Dieses Muster wurde aktualisiert, um neuere Versionen von Node und Python zu verwenden. Wir haben viele Pakete im Quellcode aktualisiert und Glyphicon entfernt, da es nicht mehr kostenlos ist. Wir haben auch alle Abhängigkeiten vom AWSBookstore Demo App-Repository