Container-as-a-Service – CaaS-Anbieter im Vergleich
Ein Container-as-a-Service stellt Ihnen Container-Plattformen als gehostete Komplettlösungen über die Cloud zur Verfügung. Wir verraten Ihnen, was es mit dem Dienst auf sich hat, und stellen vier der beliebtesten CaaS-Plattformen vor. Darüber hinaus erklären wir, wie Sie cloudbasierte Containerdienste im Unternehmenskontext nutzen können.
Was ist CaaS?
CaaS – kurz für Container-as-a-Service – ist ein Geschäftsmodell, bei dem Cloud-Computing-Anbieter Plattformen rund um die containerbasierte Virtualisierung als skalierbaren Online-Service zur Verfügung stellen. Dies ermöglicht es, Containerdienste in Anspruch zu nehmen, ohne die dafür benötigte Infrastruktur bereitstellen zu müssen. Die Bezeichnung ist ein Marketing-Begriff, der sich an andere Cloud-Service-Modelle wie Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) und Software-as-a-Service (SaaS) anlehnt.
Was sind Containerdienste?
Als Containerdienst bezeichnet man den Service eines Cloud-Computing-Anbieters, der es Anwendenden ermöglicht, Software in sogenannten Anwendungs-Containern zu entwickeln, zu testen, auszuführen oder über IT-Infrastrukturen hinweg zu verteilen. Dabei handelt es sich um ein Konzept aus dem Linux-Bereich. Die Technologie ermöglicht die Virtualisierung auf Betriebssystemebene. Einzelne Anwendungen werden inklusive aller Abhängigkeiten wie Bibliotheken und Konfigurationsdateien als gekapselte Instanzen ausgeführt. Dies ermöglicht den parallelen Betrieb mehrerer Anwendungen mit unterschiedlichen Anforderungen auf ein und demselben Betriebssystem sowie ein Deployment über unterschiedlichste Systeme hinweg.
CaaS beinhaltet in der Regel eine komplette Container-Umgebung inklusive Orchestrierungs-Tools, einem Image-Katalog (die sogenannte Registry), eine Cluster-Management-Software sowie ein Set von Entwickler-Tools und APIs.
- Kostengünstige vCPUs und leistungsstarke dedizierte Cores
- Höchste Flexibilität ohne Mindestvertragslaufzeit
- Inklusive 24/7 Experten-Support
CaaS: Abgrenzung zu anderen Cloud-Services
Seit Mitte der 2000er-Jahre steht Unternehmen und Privatanwendenden mit Cloud-Computing eine Alternative zur Bereitstellung von IT-Ressourcen in den eigenen Räumlichkeiten (On-Premises) zur Verfügung. Dabei sind abseits von CaaS insbesondere folgende drei Service-Modelle beliebt:
- IaaS: Infrastructure-as-a-Service umfasst die Bereitstellung virtueller Hardware-Ressourcen wie Rechenleistung, Speicherplatz und Netzwerkkapazitäten. IaaS-Anbieter stellen diese grundlegenden IT-Infrastruktur-Bausteine in Form virtueller Maschinen (VM) oder Virtual Local Area Networks (VLANs) zur Verfügung.
- PaaS: Die mittlere Ebene des Cloud-Computing-Modells wird als Platform-as-a-Service bezeichnet. Im Rahmen von PaaS stellen Cloud-Anbieter Programmierplattformen und Entwicklungsumgebungen über das Internet zur Verfügung. PaaS baut auf IaaS auf.
- SaaS: Die oberste Ebene des Cloud-Computing-Modells ist eine reine Anwendungsebene. Unter Software-as-a-Service versteht man die Bereitstellung von Anwendungssoftware über das Internet. Die zur Verfügung gestellten Programme laufen bei diesem Service-Modell nicht auf der Kundenhardware, sondern auf dem Server des Anbieters.
In dieser klassischen Aufteilung der drei etablierten Modelle des Cloud-Computings ließe sich CaaS zwischen IaaS und PaaS verorten. Von diesen Service-Modellen hebt sich Container-as-a-Service jedoch durch einen grundsätzlich anderen Virtualisierungsansatz ab: die Container-Technologie.
Containers-as-a-Service ist eine Form containerbasierter Virtualisierung, bei der die Laufzeitumgebung, Orchestrierungstools und die zugrundeliegenden Infrastruktur-Ressourcen über einen Cloud-Computing-Provider zur Verfügung gestellt werden.
Wie funktioniert CaaS?
Die Grundlage von Container-as-a-Service ist ein Cluster von Computern, der über die Cloud zur Verfügung steht und von Nutzern und Nutzerinnen anteilig angemietet wird, um containerbasierte Anwendungen hochzuladen, zu erstellen, zentral zu verwalten und auf der Cloud-Plattform auszuführen. Die Interaktion mit der cloudbasierten Container-Umgebung erfolgt entweder über eine grafische Benutzeroberfläche (GUI) oder in Form von API-Aufrufen. Welche Container-Technologien den Nutzern zur Verfügung stehen, unterscheidet sich je nach Anbieter. Kern einer jeden CaaS-Plattform ist jedoch ein Orchestrierungstool (auch Orchestrator genannt), das eine Verwaltung komplexer Container-Architekturen ermöglicht. Dabei sind folgende Funktionen von Bedeutung:
- Verteilung von Containern über mehrere Hosts hinweg
- Gruppierung von Containern in logische Einheiten
- Skalierung von Containern
- Load-Balancing
- Zuweisung von Speicherkapazitäten
- Kommunikationsschnittstelle zwischen Containern
- Service-Discovery
Welcher Orchestrator im Rahmen von CaaS zum Einsatz kommt, hat einen unmittelbaren Einfluss darauf, welche Funktionen Nutzern des Cloud-Dienstes zur Verfügung stehen. Derzeit wird der Markt für containerbasierte Virtualisierung vor allem von folgenden Orchestrierungstools dominiert: Docker Swarm, Kubernetes, OpenShift und Amazon Elastic Container Service (ECS).
Detaillierte Beschreibung der beliebtesten Orchestrierungswerkzeuge und Tools für Docker sowie einen ausführlichen Vergleich zwischen OpenShift und Kubernetes finden Sie in separaten Artikeln im Digital Guide.
Was macht einen guten Container-as-a-Service-Anbieter aus?
Bei der Wahl eines CaaS-Dienstes für den Unternehmenseinsatz sollten sich Anwendende von folgenden Fragen leiten lassen:
- Welche Orchestrierungswerkzeuge stehen zur Verfügung?
- Welche Datei-Formate für Container-Anwendungen werden unterstützt?
- Ist ein Betrieb von Multi-Container-Anwendungen möglich?
- Wie werden die Cluster für den Container-Betrieb verwaltet?
- Welche Netzwerk- und Speicherfunktionen werden unterstützt?
- Bietet der Anbieter eine private Registry für Container-Images?
- Wie gut ist die Container-Laufzeitumgebung mit anderen Cloud-Diensten des Anbieters integriert?
- Welche Abrechnungsmodelle stehen zur Verfügung?
CaaS-Anbieter im Überblick
Die Container-Technologie boomt. Entsprechend groß ist das Angebot an CaaS-Services. Dienstleistungen zur Virtualisierung auf Betriebssystemebene findet man im Portfolio nahezu aller Public-Cloud-Anbieter. Auch Amazon, Microsoft, Google und auch IONOS – die aktuell zu den einflussreichsten Akteuren auf dem CaaS-Markt gehören – haben ihre Cloud-Plattformen um eine dockerbasierte Container-Lösung erweitert.
Docker ist die bekannteste und wichtigste Container-Plattform auf dem Markt. Das von Docker entwickelte Container-Format – eine Weiterentwicklung des Linux-Containers (LXC) – ist weit verbreitet und wird von allen CaaS-Anbietern unterstützt.
IONOS Cloud Managed Cubernetes
Das Managed Cubernetes ist die ideale Plattform für performante und hochskalierbare Container-Anwendungen. Der Service steht direkt über das IONOS Cloud Panel zur Verfügung und kombiniert die IONOS IaaS-Plattform mit den marktführenden Container-Technologien Docker und Kubernetes.
Die CaaS-Lösung von IONOS richtet sich an Entwicklerinnen, Entwickler und IT-Betriebe und ermöglicht die Bereitstellung, Verwaltung und Skalierung von containerbasierten Anwendungen in Kubernetes-Clustern. Das Funktionsspektrum umfasst:
- Managed Cloud-Nodes mit dedizierten Server-Ressourcen
- individuelle Verwaltung von Clustern
- voller Zugang zu Anwendungs-Containern
- benutzerdefinierte Orchestrierung
- fachliche Unterstützung bei der Nutzung und Erstellung von Container Clustern im Cloud Panel durch den IONOS First Level Support
- IONOS Cloud Community
Der IONOS Support erstreckt sich auf die Bereitstellung und Verwaltung des Container-Clusters. Ein direkter Support für kubectl oder das Kubernetes-Dashboard wird nicht angeboten. Über das IONOS Cloud Panel stehen Nutzerinnen und Nutzern diverse Drittanbieter-Anwendungen wie Febrac8, Helm, GitLab oder Autoscaler als One-Click-Solutions zur Verfügung. Als Registry für Docker-Images lässt sich der Online-Dienst DockerHub integrieren.
IONOS Cloud Managed Kubernetes ermöglicht die vollautomatische Einrichtung von Kubernetes-Clustern. Der Service ist dabei gänzlich kostenfrei – man zahlt nur für die zugrunde liegende IONOS Cloud Infrastruktur, die tatsächlich bereitgestellt wird.
Vorteile | Nachteile |
---|---|
Vollständige Kubernetes-Kompatibilität | Kein Software-Support für kubectl und Kubernetes |
Große Auswahl an vorinstallierten Drittanbieter-Lösungen | |
Hohe Portabilität |
Die ideale Plattform für performante und hochskalierbare Container-Anwendungen. Umfassend ins IONOS Cloud Ökosystem integriert und rund um die Uhr professionell betreut.
Amazon Elastic Container Service (ECS)
Seit April 2015 stellt der Online-Versandhändler Amazon Lösungen zur containerbasierten Virtualisierung unter dem Namen Amazon Elastic Container Service (ECS) im Rahmen der Cloud-Computing-Plattform AWS (Amazon Web Service) zur Verfügung. Wie der Service von IONOS unterstützt ECS ausschließlich Container im Docker-Format.
Amazon ECS bietet Nutzenden diverse Schnittstellen, die es ermöglichen, in Docker-Containern isolierte Anwendungen in der Amazon Elastic Compute Cloud (EC2) zu betreiben. Technisch basiert der CaaS-Dienst auf folgenden Cloud-Ressourcen:
- Amazon-EC2-Instanzen (Instanzen der Amazon Elastic Compute Cloud): Bei Amazon EC2 handelt es sich um skalierbare Rechenkapazität des Amazon Cloud-Computing-Service, die in Form sogenannter Instanzen angemietet wird.
- Amazon S3 (Amazon Simple Storage): Amazon S3 ist eine cloudbasierte Objektspeicherplattform.
- Amazon EBS (Amazon Elastic Block Store): Amazon EBS stellt hochverfügbare Blockspeichervolumina für EC2-Instanzen zur Verfügung.
- Amazon RDS (Amazon Relational Database Service): Amazon RDS ist ein Datenbankservice zur Verwaltung der relationalen Datenbank-Engines Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle und Microsoft SQL Server.
Die Verwaltung von Containern erfolgt bei ECS in der Standardeinstellung über einen proprietären Orchestrator, der als Master fungiert und mit einem Agenten auf jedem Knoten des zu verwaltenden Clusters kommuniziert. Alternativ wird mit Blox ein Open-Source-Modul angeboten, das es ermöglicht, selbst entwickelte Scheduler sowie Drittanbieter-Tools wie Mesos in ECS einzubinden.
Eine Stärke des Amazon EC2 Container Service ist seine Integration mit anderen Amazon-Diensten wie dem Rechtemanagement-Tool „AWS Identity- und Access-Management (IAM)“, dem Cloud-Load-Balancer „Elastic Load Balancing“ oder dem Monitoring-Service „Amazon CloudWatch“.
Ein Nachteil des Amazon EC2 Container Service ist die Beschränkung auf EC2-Instanzen. Amazons CaaS-Dienst bietet keine Unterstützung für IT-Infrastrukturen außerhalb von AWS – weder physisch noch virtuell. Hybrid-Cloud-Szenarios sind somit ebenso wenig möglich wie eine Kombination der IT-Ressourcen verschiedener Public-Cloud-Anbieter (Multi-Cloud). Dies dürfte mit dem Geschäftsmodell zusammenhängen, in dem Amazon seinen CaaS-Dienst anbietet: Der Amazon EC2 Container Service steht via AWS prinzipiell kostenlos zur Verfügung. Man zahlt lediglich für die Bereitstellung der Cloud-Infrastruktur – beispielsweise für ein Cluster von EC2-Instanzen, das als Grundlage für den Betrieb von Container-Anwendungen fungiert.
Vorteile | Nachteile |
---|---|
Integration mit anderen AWS-Produkten | Container-Deployment ist auf Amazon EC2-Instanzen beschränkt |
Kostenlos nutzbar (Infrastruktur kostet) | Proprietärer Orchestrator |
Google Kubernetes Engine (GKE)
Auch Google hat mit der Google Kubernetes Engine (GKE) einen gehosteten Container-Service in die Public Cloud integriert. Kernkomponente des CaaS-Dienstes ist das Orchestrierungstool Kubernetes.
GKE greift auf Ressourcen der Google Compute-Engine (GCE) zurück und ermöglicht es Nutzerinnen und Nutzern, containerbasierte Anwendungen auf Clustern in der Google Cloud zu betreiben. Auf die Google-Infrastruktur ist man mit der GKE aber nicht begrenzt: Das Cluster-Federation-System des Orchestrators Kubernetes ermöglicht es, Ressourcen verschiedener Computer-Cluster zu einer logischen Rechenföderation zusammenzufassen und bei Bedarf Hybrid- und Multi-Cloud-Szenarien zu realisieren.
Jedes Cluster, das mit GKE erstellt wird, besteht aus einem Kubernetes-Master-Endpunkt, auf dem der Kubernetes-API-Server ausgeführt wird, und einer beliebigen Anzahl von Worker-Knoten, die REST-Anfragen des API-Severs bedienen und die für den Support von Docker-Containern benötigten Dienste ausführen. Auch GKE unterstützt das weit verbreite Docker-Container-Format. Für die Bereitstellung von Docker-Images steht Anwendern eine private Container-Registry zur Verfügung. Eine JSON-basierte Syntax bietet die Möglichkeit, Container-Dienste als Templates zu definieren.
Die Integration von Kubernetes in GKE bietet folgende Funktionen für die Orchestrierung von Container-Anwendungen:
- Automatic Binpacking: Kubernetes platziert Container auf Basis von Einschränkungen und Ressourcenanforderungen automatisch so, dass das Cluster optimal ausgelastet ist.
- Health-Checks mit Auto-Repair-Funktion: Durch Automatische Health-Checks stellt Kubernetes sicher, dass alle Konten und Container einwandfrei funktionieren.
- Horizontale Skalierung: Mit Kubernetes lassen sich Anwendungen beliebig nach oben oder unten skalieren.
- Service-Discovery und Load-Balancing: Kubernetes bietet zwei Modi für Service-Discovery: Dienste lassen sich über Umgebungsvariablen und DNS-Records aufspüren. Ein Load-Balancing zwischen verschiedenen Containern wird über IP-Adressen und DNS-Namen realisiert.
- Speicher-Orchestrierung: Kubernetes ermöglicht ein automatisches Mounten diverser Speichersysteme.
Bei der Preisgestaltung für den CaaS-Dienst geht Google einen anderen Weg als Amazon. In der kostenfreien Basis-Edition kann man ein monatliches Guthaben von 74,40 Dollar pro Rechnungskonto verbrauchen, das auf zonale und Autopilot-Cluster angewendet wird. In den „Kubernetes“-Editionen zahlt man pro Stunde und pro vCPU bzw. Cluster. Die Kosten für die „Compute“-Edition orientieren sich an den Preisen der Compute Engine.
Vorteile | Nachteile |
---|---|
Integration mit anderen Google-Produkten | Steile Lernkurve |
Interoperabilität | Kann schnell kostenintensiv werden |
Microsoft Azure Kubernetes Service (AKS)
Azure Kubernetes Service (AKS) ist eine für Microsofts Cloud-Computing-Plattform Azure optimierte Hosting-Umgebung, die es Usern ermöglicht, containerbasierte Anwendungen zu entwickeln und in skalierbaren Computer-Clustern bereitzustellen. ACS stützt sich auf eine für Azure optimierte Version quelloffener Container-Tools und erlaubt den Betrieb von Linux- und Windows-Containern im Docker-Format.
Welche Funktionen AKS-Nutzenden beim Betrieb von containisierten Anwendungen in der Azure-Cloud zur Verfügung stehen, hängt in erster Linie von der Wahl des Orchestrators ab. Beliebte Containerorchestratoren, die unterstützt werden, sind Kubernetes, DC/OS und Docker Swarm. In der Docker-Swarm-Version stützt sich AKS auf den Docker-Stack, es kommen dieselben Open-Source-Technologien wie bei Dockers Universal Control Plane (einer Grundkomponente des Docker Datacenter) zum Einsatz. Implementiert in den Azure Container Service bietet Docker Swarm folgendes Funktionsspektrum zur Orchestrierung und Skalierung von Container-Anwendungen:
- Docker Compose: Dockers Lösung für Multi-Container-Anwendungen erlaubt es, mehrere Container miteinander zu verknüpfen und mit einem einzigen Befehl zentral auszuführen.
- Steuerung über die Kommandozeile: Das Docker CLI (Command Line Interface) und das Multi-Container-Tool Docker Compose ermöglichen die direkte Verwaltung von Container-Clustern über die Kommandozeile.
- REST API: Die Docker Remote API bietet Zugang zu diversen Drittanbieter-Tools des Docker-Ökosystems.
- Regelbasiertes Deployment: Die Verteilung von Docker-Containern im Cluster lässt sich über Labels und Einschränkungen verwalten.
- Service-Discovery: Docker Swarm bietet Anwendern diverse Service-Discovery-Funktionen.
Darüber hinaus hat Microsoft den ACS um CI/CD-Funktionen (continuous integration und deployment) für Multi-Container-Anwendungen erweitert, die mit Visual Studio, Visual Studio Team Services oder dem Open-Source-Tool Visual Studio Code entwickelt wurden. Identity- und Access-Management wird bei Azure über Active Directory geregelt, deren Grundfunktionen Anwendern bis zu einem Limit von 500.000 Verzeichnisobjekten kostenlos zur Verfügung stehen. Wie bei Amazon ECS fallen auch beim Azure Container Service keine Kosten für die Nutzung der Container-Tools an. Gebühren werden lediglich für die Nutzung der darunterliegenden Infrastruktur erhoben.
Vorteile | Nachteile |
---|---|
Vollständig in Cloud-Plattform Azure integriert | Auswahl an Betriebssystemen eingeschränkt |
Unterstützt alle Standard-Orchestrierungstools |