Gorodenkoff - stock.adobe.com

Code in AWS hosten und Software automatisiert bereitstellen

Unternehmen, die auf DevOps setzen, können Code auch in AWS hosten und auf Basis verschiedener Cloud Tools erstellen, testen und danach bereitstellen.

Amazon bietet innerhalb seiner Cloud-Dienste Amazon Web Services (AWS) auch Funktionen und Tools, mit denen DevOps-Umgebungen ihren Code hosten und die daraus zu erstellenden Anwendungen über die Cloud kompilieren, testen und verteilen können. Der Code kann über CodePipeline in AWS gespeichert werden. Dadurch sind auch Szenarien für Continuous Integration und Continuous Delivery möglich.

In AWS gibt es verschiedene Dienste, die sich parallel einsetzen lassen. Die Dienste arbeiten zusammen und lassen sich auch mit den anderen Diensten in AWS integrieren. Das können zum Beispiel Container (EC2 Container Service), virtuelle Server (Elastic Compute Cloud) oder Storage (Simple Storage Service) sein.

Die Dienste sind auch im Team nutzbar und unterstützen die Identity and Access Management (IAM) -Verwaltung in AWS. Dadurch lassen sich Berechtigungen granular verwalten.

AWS Cloud9 - Entwicklungsumgebung in AWS

Mit AWS Cloud9 können Entwickler Programme im Browser schreiben, ausführen und debuggen. Cloud9 verfügt über ein browsergestütztes Terminal. Der Dienst unterstützt JavaScript, Python und PHP. Alles Notwendige ist im Browser verfügbar, es ist keinerlei Installation auf einem PC notwendig.

AWS Cloud9
Abbildung 1: Cloud9 stellt eine Entwicklungsumgebung im Browser bereit.

Der Vorteil der Lösung besteht darin, dass sich Entwickler überall an der Umgebung anmelden können, ohne auf PCs etwas installieren zu müssen. Mit Cloud9 können auch mehrere Entwickler gleichzeitig an Code arbeiten. Amazon hat die Cloud-Entwicklungsumgebung im Jahr 2016 übernommen.

AWS CodeStar - Continuous Delivery in der Cloud

Mit CodeStar kann in AWS eine Continuous-Delivery-Codekette implementiert werden. Der Cloud-Dienst arbeitet mit Cloud9 zusammen, sodass für Continuous Delivery keine Tools auf den PCs installiert werden müssen, sondern alles im Browser ausgeführt werden kann.

AWS Codestar
Abbildung 2: AWS Codestar bringt DevOps-Technologien ins Unternehmen.

Bestandteil von CodeStar sind auch verschiedene Vorlagen. Beispiele dafür sind Projektvorlagen für Amazon EC2, Lambda oder Beanstalk. Vor allem Entwicklerteams profitieren von der Lösung, da in kurzer Zeit eine Integration im eigenen Netzwerk stattfindet, ohne dass eigene Server oder Anwendungen notwendig sind.

AWS X-Ray - Tracing von Containern in Kubernetes

Mit AWS X-Ray lassen sich Fehler in Microservices-Umgebungen finden. Die Cloud-Lösung ist vor allem für das Tracing von Container-Anwendungen, zum Beispiel mit Kubernetes sinnvoll. Mit X-Ray lassen sich Probleme in Containern schnell eingrenzen, vor allem in Bezug auf Kubernetes.

AWS X-Ray
Abbildung 3: Container debuggen mit AWS X-Ray.

X-Ray hilft in Umgebungen mit vielen Microservices Fehler zu finden, einzugrenzen und anschließend zu beheben. Die Cloud-Lösung kann Anfragen nachverfolgen, während die verschiedenen Microservices in der Containerumgebung ihre Aktionen ausführen. Daher unterstützt X-Ray auch den Betrieb in Amazon ECS, zusammen mit Kubernetes.

AWS CodeCommit - Quellcodekontrolle in AWS

AWS CodeCommit hilft im Unternehmen dabei, private Git-Repositorys zu nutzen.

AWS CodeCommit
Abbildung 4: Eigene Repositories mit AWS CodeCommit.

Durch den Einsatz von CodeCommit müssen Unternehmen kein eigenes System für die Verwaltung von Quellcode implementieren, sondern können direkt Dienste aus der Cloud nutzen. CodeCommit arbeitet mit allen bekannten Git-Tools zusammen.

AWS CodePipeline - Continuous Integration und Continuous Delivery über die Cloud

CodePipeline hat die Aufgabe, Continuous Integration und Continuous Delivery über die Cloud für lokale Anwendungen im Netzwerk zur Verfügung zu stellen.

AWS CodePipelines
Abbildung 5: AWS CodePipelines ermöglicht Continuous Integration und Continuous Delivery.

Mit dem Cloud-Dienst kann Code automatisch nach Änderungen getestet und bereitgestellt werden. Dadurch lassen sich neue Versionen von Programmen schnell bereitstellen. Amazon bietet für CodePipeline auch Plug-ins für GitHub an.

AWS CodeBuild - Codeerstellung als verwalteter Cloud-Dienst

Mit AWS CodeBuild können Entwickler ihren Code kompilieren, testen und Pakete erstellen. Auch hierzu ist keine Installation auf eigenen Rechnern notwendig, sondern alle Funktionen dazu sind über AWS verfügbar.

AWS CodePipelines
Abbildung 5: AWS CodePipelines ermöglicht Continuous Integration und Continuous Delivery.

Eigene Entwicklungsserver lassen sich dadurch einsparen. Der Dienst ist skalierbar und kann auch parallel Builds erstellen. Das beschleunigt die Erstellung und erhöht die Effizienz von Entwicklern.

AWS CodeDeploy - Code in der Cloud und On-Premises bereitstellen

Um Code bereitzustellen, entweder für Rechner im eigenen Rechenzentrum oder auf virtuellen Servern in Amazon EC2, kann man AWS CodeDeploy verwenden. Sobald neue Funktionen in Anwendungen zur Verfügung stehen, lassen sich diese auf den angebundenen Computern verteilen.

Dabei spielt es keine Rolle, ob die Computer lokal betrieben werden, oder sich in der Cloud befinden. CodeDeploy ist daher ideal zur Automatisierung in Rechenzentren einsetzbar. Auch hier gilt, dass der Dienst automatisch skaliert. Dadurch lassen sich auch mehrere tausend Instanzen gleichzeitig bereitstellen.

Fazit

Durch den Einsatz der einzelnen Entwicklerdienste in AWS können sich Entwickler einige Vorteile sichern. Zunächst ist keine Installation auf lokalen Rechnern notwendig, um im Unternehmen DevOps mit Continuous Integration und Continuous Delivery einzusetzen.

Dazu kommt, dass die Dienste schnell skalieren, ohne dass eigene Server eingesetzt werden sollen. Sobald Dienste wie Cloud9 gebucht sind, können Entwickler sofort loslegen, ohne auf Rechnern erst umständliche Konfigurationen und Installationen durchführen zu müssen.

Nächste Schritte

AWS CodeCommit versus GitHub: Wo die Tools jeweils punkten.

AWS Lambda versus Elastic Beanstalk: Was eignet sich wofür?

So optimiert man AWS Lambda-Funktionen.

Erfahren Sie mehr über Softwareentwicklung