Das Ziel dieses Moduls ist es, das Deployment einer Beispielanwendung in der Cloud zu vermitteln. Das Modul hat den Schwerpunkt auf der Entwicklung der verschiedenen Komponenten sowie der CI/CD Pipeline. Die Beispielanwendung wird dabei zur Verfügung gestellt um folgende Zielarchitektur zu implementieren.
Lass uns zusammen Schritt für Schritt die einzelnen Komponenten im Diagramm anschauen. Wir sehen, dass die Nutzer über das Internet auf die ToDo-Applikation zugreifen können. Wenn ein Nutzer die URL für die ToDo-App im Browser aufruft, dann wird eine Anfrage an den Application Load Balancer gesendet. Der Application Load Balancer sendet die Anfrage dann an einen der Back-End-Docker Container weiter. Der Grund, warum mehrere gleiche Back-End-Docker Container in dem Diagramm sind, wird später erklärt. Der Back-End-Docker Container sendet die ToDos zurück zum Browser, sodass der Nutzer damit interagieren kann. Die Webseite wird gehostet und zeigt die Inhalte der ToDos an.
Jetzt fügt der Nutzer ein neues ToDo zu seiner Liste hinzu. Dieses muss gespeichert werden, damit beim nächsten Aufruf der ToDo-Applikation die Liste korrekt ist. Dafür sendet der Browser eine neue Anfrage über das Internet. Die Anfrage beinhaltet die Information, dass eine neues ToDo zu der Liste hinzugefügt werden soll. Der Application Load Balancer sendet die Anfrage an einen der Back-End-Docker Container. Er führt die Logik unserer ToDo-Applikation aus. In diesem Fall sendet er eine SQL Anfrage and die Amazon RDS Datenbank, um das neue ToDo zu speichern.
In der zweiten Architektur ist ein alternativer Aufbau der Applikation dargestellt. Diese Architektur nutzt sogenannte serverlose (serverless) Services. Der serverlose Service AWS Lambda führt den Code der Applikation automatisch aus. Somit müssen wir uns nicht mehr um die Container als Ausführungsumgebung kümmern.
Um Änderungen in unserer Anwendung leichter zu veröffentlichen, werden wir eine CI/CD-Pipeline aufbauen, die aus drei Schritten bestehen wird. Diese ist in der dritten Architektur zu sehen.
Um Anwendungen wiederverwendbar und leichter provisionierbar zu machen, arbeiten wir später auch mit Infrastructure-as-Code. Dafür nutzen wir eine Vorlage, mit der unsere gesamte Anwendung in der Cloud implementiert werden kann.
Folgende Themen werden während der Implementation behandelt: