Sascha Möllering Amazon Web Services Germany GmbH

Ein wichtiger Aspekt ist das automatische Wiederherstellen von Containern, die defekt sind. Diese Funktionalität gewährleistet, dass immer die notwendige Anzahl von Containern läuft.

In den letzten Jahren hat kaum eine andere Technologie so viel Zuspruch in der IT-Welt erhalten wie Container: Docker hat bei Entwicklern einen Nerv getroffen und IT-Projekte im Sturm erobert. Noch im ersten Jahr wurde diese Technologie produktiv eingesetzt – und das, obwohl sie noch nicht einmal die Version 1.0 erreicht hatte.

Mithilfe von Containern lassen sich oft ohne großen Aufwand die Komponenten des Produktionssystems auf der lokalen Workstation der Entwickler nachbilden, was die Genauigkeit von Tests erhöht. Docker hat, unabhängig von Plattform und Programmiersprache, ein einheitliches Format für Packaging und Deployment, was die Anzahl der Deployment-Pipelines reduziert. Alle Abhängigkeiten werden zusammen mit der Anwendung im Docker Image selbst paketiert. Container erlauben potentiell eine bessere Nutzung vorhandener Compute-Ressourcen, da mehrere unterschiedliche Workloads auf derselben virtuellen Maschine laufen können.

AWS und Container

Auf der Hausmesse re:Invent im Jahr 2014 hat AWS den Container-Management-Service Amazon Elastic Container Service (ECS) vorgestellt. Vorher war es notwendig, eigene Mechanismen zur Orchestrierung und Verwaltung von Containern zu implementieren. Amazon ECS unterstützt Docker-Container und erlaubt es, Anwendungen auf einem verwalteten Cluster von Amazon EC2-Instanzen zu betreiben. Mit Amazon ECS entfällt es, eine eigene Clustermanagementinfrastruktur zu installieren, zu betreiben oder zu skalieren. Mit einfachen API-Befehlen lassen sich auf Docker basierende Anwendungen starten und beenden sowie der gesamte Zustand des Clusters abfragen werden. Amazon ECS ist tief in die bestehende AWS-Infrastruktur integriert und es lassen sich beispielsweise Security Groups, Elastic Load Balancing, EBS Volumes und IAM-Rollen nutzen. Ein Amazon EBS Volume ist ein robustes Speichergerät auf Blockebene, das an einzelne EC2 Instances angefügt werden kann. Eine Security Group agiert als virtuelle Firewall, die den Datenverkehr für eine oder mehrere Instances steuert.

Abb. 1: Architektur von Amazon ECS

Abb. 1: Architektur von Amazon ECS

Abbildung 1 zeigt die grobe Architektur von Amazon ECS. Das Backplane basiert auf einem Key Value Store, auf dem ein Clustermanagementservice aufsetzt. Auf diesen Service greifen sowohl ein API als auch ein Agent-Communication-Service zu. ECS ist ein agentenbasiertes System, was bedeutet, dass auf jeder EC2 Container Instance der ECS Agent läuft und ECS-Kommandos in Docker-Aufrufe umsetzt. Der Agent ist in Golang implementiert und quelloffen auf GitHub verfügbar. Ein weiteres interessantes Open-Source-Projekt ist Blox. Blox ermöglicht mehr Kontrolle darüber, wie Anwendungen in Docker-Containern in Amazon ECS laufen. Dieses Framework ermöglicht es, eigene Scheduler zu bauen und Scheduler von Dritten in Amazon ECS laufen zu lassen.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Java Magazin 6.18 - "Scala"

Alle Infos zum Heft
579837775Container-Workloads in AWS
X
- Gib Deinen Standort ein -
- or -