Africa Studio - stock.adobe.com

AWS-Entwicklungsservices: Vom Code in die Produktion

AWS-Entwicklungsservices wie CodeCommit, CodeBuild, CodeDeploy und CodePipeline bringen Apps effizient von der Entwicklung in den produktiven Einsatz.

Automatisierung ist eine der Kernkomponenten von DevOps. Sie ermöglicht Entwicklungsteams einen standardisierten und fehlerresistenten Ansatz bei der Softwarebereitstellung. Amazon Web Services (AWS) hat für diesen Softwareentwicklungsprozess eine ganze Reihe von Tools bereitgestellt. Obwohl es bereits viele Automatisierungs-Tools auf dem Markt gibt, können die nativen AWS-Entwicklungsdienste Entwicklungsteams bei der Zusammenarbeit helfen. Sie können damit qualitativ hochwertige Software schneller bereitstellen.

Bevor IT-Teams AWS-Dienste wie CodeCommit, CodeBuild und CodeDeploy übernehmen, sollten sie allerdings verstehen, wie diese Services in einer AWS Deployment Pipeline zusammenarbeiten. In einem traditionellen Build-and-Release-Prozess wird Code in ein Source Control Repository eingecheckt. In diesem führen Entwickler Aktionen mit dem Code aus, zum Beispiel das Kompilieren in ein Installationsprogramm oder das Erstellen eines Pakets, bevor er bereitgestellt wird. Anschließend testen sie die Ausgabe und stellen das Ergebnis des Builds in der Regel in einer Testumgebung bereit. Dort kann der Build erneut getestet werden. Dieser End-to-End-Prozess wird allgemein als Build Pipeline bezeichnet.

Wie aber passen die AWS-Tools hier rein? CodeCommit, CodeBuild und CodeDeploy arbeiten zusammen, um diese Prozesse zu automatisieren, und CodePipeline „klebt“ sie quasi zusammen. Die folgende Beispiel-Build-Pipeline zeigt, wie die AWS-Entwicklungsdienste funktionieren.

Start mit CodeCommit

In Schritt eins dieses Beispiels arbeitet ein Entwickler an Programmcode. Wenn er denkt, dass der Code stabil genug ist, um ihn weiterzugeben, wird er ihn in ein Source Control Repository wie AWS CodeCommit einchecken. Ähnlich wie GitHub arbeitet CodeCommit von Git-Repositories aus und bringt sie in die Cloud.

Wie andere Source Control Repositories ist CodeCommit so etwas wie der stille Held in einer AWS Deployment Pipeline. Während es im Prinzip nur ein Ort ist, um versionskontrollierte Textdateien und verschiedene andere Artefakte zu speichern, müssen sich Entwickler darauf verlassen, dass diese Änderungen rückgängig gemacht werden können. Dann etwa, wenn sie ein Problem mit der aktuellen Codebasis finden und zu einer früheren Version zurückkehren müssen.

Code kompilieren und konvertieren

Nachdem Sie den Code gespeichert haben, nimmt ein anderer Entwicklungsdienst von AWS, CodeBuild, den geprüften Code entgegen und konvertiert ihn in etwas um, das Endbenutzer konsumieren können. In dieser Phase führen die Entwicklungsteams auch Unit- und Integrationstests durch und erstellen Build-Artefakte wie Software-Installer, Pakete und Dateikopien.

Mit CodeBuild wählen Sie eine Umgebung für Ihren Code. Wenn ein Unternehmen zum Beispiel Software für Go oder PHP erstellt, muss man diese Laufzeitumgebungen auf den Build-Servern einrichten. CodeBuild stellt diese Umgebungsoptionen bereit.

Sobald CodeBuild den Code konvertiert hat, erzeugt das Tool Software, die ein Endbenutzer sofort verwenden kann, anstatt einen Haufen Textdateien voller Code.

Push-Code zur Bereitstellung

Nun ist es an der Zeit, dieses Build-Artefakt mit CodeDeploy zu implementieren. Dieses Tool simuliert, was passieren würde, wenn ein Endbenutzer mit der Software interagiert. CodeDeploy übernimmt die von CodeBuild gelieferten Artefakte und installiert sie in Umgebungen mit unterschiedlichen Zuständen.

CodeDeploy ermöglicht es Entwicklern oder Qualitätssicherungsteams, zu testen, was passiert, wenn sie ihre Endprodukte in verschiedenen Situationen einsetzen. Unternehmen können verschiedene Deployment-Gruppen erstellen, um Umgebungen aufzuteilen, zum Beispiel als Ausgangspunkt für Akzeptanztests und produktive Deployments.

Dies ist der letzte Schritt der Build Pipeline, da Entwickler dann die Anwendung an eine Produktivumgebung weitergeben oder die Anwendung erneut testen können.

Komponenten verbinden

CodeCommit, CodeBuild und CodeDeploy sind getrennte AWS-Entwicklungsdienste – obwohl jeder die Möglichkeit hat, einen mit dem anderen zu verbinden. Zum Beispiel kann CodeBuild ein CodeCommit-Repository als Build-Quelle festlegen. Aber um eine ganzheitliche, vollständige Build Pipeline aufzubauen, braucht man etwas, das sie alle miteinander verbindet.

Hier kommt CodePipeline ins Spiel. Der Service ermöglicht es, den Ablauf des Bereitstellungsprozesses mit einem einzigen Dashboard zu verwalten. Das Dashboard bietet eine durchgängige End-to-End-Sicht – vom Code über AWS-Entwicklungsservices bis hin zur Produktleistung beim Endbenutzer.

CodePipeline lässt sich einsetzen, um verschiedene Umgebungen zu definieren, in denen die Anwendung eingesetzt wird. Man kann auch Aktionen für die automatische Ausführung von Code-Triggern festlegen. Dadurch wird eine vollständig automatisierte, Continuous Delivery Pipeline erstellt.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Mit C# Multi-Plattform-Anwendungen auf AWS Lambda entwickeln.

Neue AWS-Entwickler-Tools bieten bessere Einblicke und Kontrolloptionen.

App-Entwicklung für Mobilgeräte: Amazon Web Services (AWS) versus Google.

Erfahren Sie mehr über Cloud Computing