Was ist Containers as a Service (CaaS)?

Von IBM Services

Containers as a Service (CaaS) ist ein Cloud-Service-Modell, mit dem Benutzer Container, Anwendungen und Cluster hochladen, organisieren, starten, beenden, skalieren und auf andere Weise managen können. Dabei können entweder eine containerbasierte Virtualisierung, eine Anwendungsprogrammierschnittstelle (API) oder eine Webportalschnittstelle verwendet werden. CaaS unterstützt Benutzer bei der Erstellung von sicheren, skalierbaren containerisierten Anwendungen in On-Premises-Rechenzentren oder in der Cloud. Container und Cluster werden bei diesem Modell als Service genutzt und in der Cloud oder in Rechenzentren vor Ort bereitgestellt.  

Warum ist CaaS wichtig?

CaaS ist ein Modell mit vielfältigen Einsatzmöglichkeiten. Mithilfe von CaaS können Entwickler die Erstellung einer vollständig skalierten Container- und Anwendungsimplementierung optimieren. Das Modell ist von großem Vorteil für IT-Abteilungen, da es einen aktivierten Service für die Container-Bereitstellung mit Governance-Kontrolle in einer sicheren Umgebung bietet. Das CaaS-Modell hilft Unternehmen, das Container-Management innerhalb ihrer softwaredefinierten Infrastruktur zu vereinfachen.

Ähnlich wie bei anderen Cloud-Computing-Services haben Nutzer die Möglichkeit, nur die gewünschten CaaS-Ressourcen auszuwählen und dafür zu bezahlen. Einige Beispiele für CaaS-Ressourcen sind Recheninstanzen, Planungsfunktionen und Load-Balancing.

Unter den Cloud-Computing-Services gilt CaaS als Untergruppe von Infrastructure as a Service (IaaS) und wird zwischen IaaS und PaaS (Platform as a Service) eingeordnet. CaaS enthält Container als Basisressource, im Gegensatz zu den virtuellen Maschinen (VMs) und Bare-Metal-Hostsystemen, die im Allgemeinen in IaaS-Umgebungen eingesetzt werden.

Eine wesentliche Eigenschaft der CaaS-Technologie ist die Orchestrierung, die wichtige IT-Funktionen automatisiert. Google Kubernetes und Docker Swarm sind zwei Beispiele für CaaS-Orchestrierungsplattformen. IBM, Amazon Web Services (AWS) und Google sind Beispiele für Public-Cloud-CaaS-Provider.

Warum sind Container wichtig?

Unternehmenskunden aus allen Branchen sehen die Vorteile der CaaS- und Container-Technologie. Die Nutzung von Containern sorgt für mehr Effizienz und ermöglicht diesen Kunden die schnelle Bereitstellung innovativer Lösungen für die Modernisierung von Anwendungen und die Cloud-native Entwicklung mit Microservices. Mithilfe der Containerisierung können diese Kunden Software schneller freigeben und die Portierbarkeit zwischen Hybrid- und Multi-Cloud-Umgebungen fördern sowie die Infrastruktur-, Softwarelizenz- und Betriebskosten senken.  

Hier einige der Vorteile, von denen Kunden durch die Nutzung von Containern profitieren:

  • Portierbarkeit: Wenn eine Anwendung in einem Container erstellt wird, verfügt sie nach ihrer Fertigstellung über alles, was sie zur Ausführung benötigt, einschließlich Abhängigkeiten und Konfigurationsdateien. Die Portierbarkeit ermöglicht es Endbenutzern, Anwendungen zuverlässig in verschiedenen Umgebungen und in Public oder Private Clouds zu starten. Diese Portierbarkeit bietet Unternehmen außerdem große Flexibilität, beschleunigt den Entwicklungsprozess und vereinfacht den Wechsel zu einem anderen Anbieter oder einer anderen Cloud-Umgebung.
  • Hohe Effizienz und Kostensenkungen: Da Container kein separates Betriebssystem erfordern, benötigen sie weniger Ressourcen als eine VM. Für die Ausführung eines Containers sind häufig nur wenige Dutzend Megabyte erforderlich. So können Sie mehrere Container auf einem einzigen Server ausführen, die anderenfalls für die Ausführung einer VM verwendet würden. Dank dieser Effizienz können Sie die Rechenzentrumskosten senken. Container können auch die Bare-Metal-Kosten reduzieren, da sie eine höhere Auslastung in Bezug auf die zugrunde liegende Hardware aufweisen und weniger Hardware benötigen.

Container interagieren nicht und sind von anderen Containern auf denselben Servern in gewissem Maße isoliert, obwohl sie dieselben Ressourcen gemeinsam nutzen. Wenn eine Anwendung in einem Container abstürzt, können andere Container sie weiterhin ohne technische Probleme verwenden.

  • Sicherheit: Da die Container voneinander isoliert sind, lassen sich Sicherheitsrisiken minimieren. Wenn eine Anwendung kompromittiert wird, hat dies keine negativen Auswirkungen auf die anderen Container.

Da Container Anwendungsprozesse isoliert vom Betriebssystem ausführen und keine spezielle Software für die Ausführung von Anwendungen benötigen, ist das Management Ihres Hostsystems einfacher. Durch diesen Vorteil können Sie Updates und Sicherheitspatches schneller einspielen.     

  • Schnelligkeit: Es dauert nur Sekunden, einen Container zu starten, zu erstellen, zu replizieren oder zu entfernen, da Container kein eigenes Betriebssystem erfordern. Dieser Vorteil ermöglicht außerdem einen schnellen Entwicklungsprozess, beschleunigt die Markteinführung und Betriebsgeschwindigkeit und sorgt für eine schnelle Freigabe neuer Versionen oder Software, die einfacher als je zuvor ist. Diese Schnelligkeit verbessert auch das Kundenerlebnis. Denn sie ermöglicht es Unternehmen und Entwicklern, schnell auf Fehler zu reagieren und neue Funktionen zu integrieren, sobald Kunden sie ansprechen.
  • Skalierung: Container bieten die Möglichkeit einer horizontalen Skalierung. Endbenutzer können mehrere identische Container im selben Cluster integrieren, um horizontale Skalierbarkeit zu erreichen. Indem Sie die intelligente Skalierung nutzen und nur die Container ausführen, die Sie benötigen, wenn Sie sie benötigen, können Sie die Kosten drastisch senken und Ihren Investitionsertrag steigern.  
  • Optimierte Entwicklung: Eine effektive und effiziente Entwicklungspipeline ist ein Vorteil der containerbasierten Infrastruktur. Da Anwendungen in Containern genauso funktionieren und ausgeführt werden, als ob sie lokal erstellt worden wären, können Inkonsistenzen zwischen Umgebungen beseitigt werden. Dadurch sind Tests und Debugging weniger kompliziert und zeitaufwendig. Dies vereinfacht auch Updates von Anwendungen. Denn der Entwickler muss nur die Konfigurationsdatei ändern, dann neue Container erstellen und die vorherigen Container löschen – dies dauert nur wenige Augenblicke.  

Managed Container Services und Cloud-Container-Stacks

Kunden, die ihr Unternehmen durch die Nutzung von Containern stärken möchten, müssen sich zwischen zwei Optionen entscheiden:

  1. Einer CaaS-Plattform, die entweder in einer Public Cloud oder einer Vor-Ort-Infrastruktur implementiert wird

  2. Einem Managed Container Service, der von Google, Amazon oder Microsoft Azure, den drei wichtigsten Public-Cloud-Providern, bereitgestellt wird

Bei keiner dieser beiden Optionen ist ein Unternehmen abhängig von einem bestimmten Anbieter. Seit die Cloud Native Computing Foundation (CNCF) aus einer Partnerschaft mit Google und der Linux Foundation hervorging und das Kubernetes-Zertifizierungsprogramm einführte, stellt sie sicher, dass alle Anbieter den Standard für die Container-Portierbarkeit und -Konformität auf allen Plattformen erfüllen.   

Bevor sich Unternehmenskunden zwischen einer Managed-Container-Plattform oder einer Implementierung vor Ort entscheiden, sollten sie die folgenden Fragen beantworten:

  • Erfordert Ihr Container eine Vor-Ort-Implementierung oder kann er in der Public Cloud implementiert werden?
  • Verfügt Ihre IT-Abteilung über das erforderliche Know-how für Entwurf, Implementierung und Verwaltung einer Kubernetes-Umgebung? Was ist erforderlich, um die IT-Mitarbeiter zu schulen oder zu halten?
  • Auf welcher Public-Cloud-Plattform müssen Sie Container implementieren? Beispiele sind Google, AWS oder Azure.
  • Hat die Verwendung einer Multi-Tenant-basierten und gemeinsam genutzten Kubernetes-Steuerebene irgendwelche Auswirkungen?

Wenn Ihr Unternehmen derzeit noch mit Containern experimentiert, sind Managed Container Services möglicherweise die beste Wahl. Managed Container Services sind ein guter Ausgangspunkt, da sie keinen Cluster-Manager, keine Ressourcenbereitstellung und keine implementierte Mindestplattform erfordern. Ein großer Vorteil von Managed Container Services besteht darin, dass sie hervorragend für erste Tests der Container-Implementierung und dann für die Anpassung von Entwicklungs- und Betriebsprozessen geeignet sind.

Wenn Ihr Unternehmen bereits eine Container-Implementierung in Kubernetes oder AWS oder einer Vor-Ort-Plattform eingerichtet hat, können Sie sich für Ihre eigene CaaS-Lösung entscheiden. Wenn Sie Ihre eigene CaaS-Lösung nutzen, profitiert Ihr Unternehmen von einer Plattform mit größerem Funktionsumfang, die über die notwendigen Frameworks und Services für ein Produktionssystem verfügt.

Der Aufstieg von Kubernetes

Der Kampf um die Vorherrschaft bei der Container-Orchestrierung, der dem zwischen Betamax und VHS ähnelte, wurde im 4. Quartal 2017 vorhergesagt und im 2. Quartal 2018 entschieden. Google Kubernetes Engine (GKE), heute einfach Kubernetes genannt, ging als Sieger hervor. Angesichts dieses klaren Siegers verstärkten Provider und Nutzer ihre Anstrengungen und konzentrierten sich darauf, ihre Implementierungen für Kubernetes zu erstellen und weiterzuentwickeln.

Die Freigabe eines Managed Service für Kubernetes und von Hybrid-Container-Stacks erleichterte die Einführung von Kubernetes. Da GKE dem Konzept der Managed Container Services den Weg ebnete, war Kubernetes stets gefragter als die Container-Services seiner Konkurrenten, AWS und Azure. Die Einführung von Amazon Elastic Container Service for Kubernetes (Amazon EKS) und Azure Kubernetes Service (AKS) Mitte 2018 festigte die marktbeherrschende Position von GKE.

Video ansehen

Kubernetes und Container-Orchestrierung

Kubernetes (K8s) ist ein System für die Container-Orchestrierung, das die Bereitstellung, das Management und die Skalierung von Anwendungen automatisiert. Kubernetes, das ursprünglich von Google entwickelt wurde und seit 2014 eine Open-Source-Komponente ist, wird von der CNCF gepflegt. Die Kubernetes-Website beschreibt Kubernetes als „portierbare, erweiterbare Open-Source-Plattform für das Management von containerisierten Workloads und Services, die sowohl die deklarative Konfiguration als auch die Automatisierung ermöglicht“.

Die drei wichtigsten Plattformen, als die Kubernetes fungiert, sind:

  • Container
  • Microservices
  • Portierbare Cloud

Als containerbasierte Managementumgebung koordiniert Kubernetes die Rechen-, Netzwerk- und Speicherinfrastruktur für Benutzer-Workloads. Kubernetes bietet dieselbe Benutzerfreundlichkeit wie PaaS sowie die Flexibilität von IaaS und Portierbarkeit zwischen Infrastrukturanbietern.  

Kubernetes, IBM und Red Hat

IBM und Red Hat arbeiten schon seit 20 Jahren zusammen. IBM setzte sich schon früh für Linux ein und trug in der Zusammenarbeit mit Red Hat zur Entwicklung und Unterstützung von Linux für Unternehmen bei. In jüngerer Zeit hat diese Zusammenarbeit dazu beigetragen, Kubernetes- und Hybrid-Cloud-Lösungen für ein breites Spektrum von Kunden bereitzustellen. Kubernetes ist außerdem eine der Grundlagen der gemeinsamen Hybrid-Cloud-Strategie von IBM und Red Hat.

Diese Innovationen wurden zu den Kerntechnologien des IBM Hybrid-Cloud-Geschäfts, das auf USD 19 Mrd. beziffert wird. Nach Abschluss der Übernahme Ende 2019 ist Red Hat das neueste Mitglied und eine eigene Einheit im IBM Hybrid-Cloud-Team.  

Kubernetes, IBM und Hertz

Die Hertz Corporation, kurz Hertz genannt, feierte 2018 ihr hundertjähriges Bestehen. Das Unternehmen, das Probleme mit älterer Technologie hatte, benötigte Unterstützung bei der Optimierung seiner Architektur und Technologie. In Zusammenarbeit mit der IBM Cloud Garage™ erstellte Hertz eine Kubernetes-Architektur, mit der das Unternehmen Anwendungen auf der Basis von Microservices entwickelte und in IBM Cloud™ Private und dem IBM Cloud Container Service nutzte.

In Zusammenarbeit mit IBM modernisierte Hertz seine Kernsysteme für digitale Kanäle, Reservierungen, Preise und mehr mit flexiblen Container- und Microservice-Architekturen. Mit seiner globalen Reichweite stellt Hertz sicher, dass seine Anwendungen hochverfügbar und auf Unternehmen abgestimmt sind. Hertz rechnet mit 1,5 Milliarden Zugriffen und 30 Millionen Updates täglich, sobald die Anwendungen im Produktionsbetrieb sind.

Kubernetes und Open-Source-Software

Open-Source-Software gewinnt weiter an Einfluss und Bedeutung in der Welt der Informationstechnologie. Im Whitepaper von IBM Services™ zur Unterstützung von Lösungen für die Open-Source-Softwareumgebung wird erwähnt, dass „96 Prozent der kommerziellen Anwendungen über eine Art Open-Source-Komponente verfügen“ (PDF, 3,9 MB).1

In der Welt der Open-Source-Software hat Arturo Suarez großen Einfluss. Suarez entwickelte die erste kommerzielle Distribution der kostenlosen Open-Source-basierten Software-Plattform für Cloud-Computing: OpenStack. In einem 2019 geführten Interview von IT Biz Advisor mit Suarez beschrieb er seine Erfahrung mit Kubernetes und sagte: „Kubernetes gewinnt das Rennen um die Container-Orchestrierung“ und „Kubernetes entwickelt sich noch schneller als OpenStack weiter – mit Releases alle drei Monate – und weist ein besseres Governance-Modell und eine bessere Adoptionskurve auf“.2  

IBM Cloud Kubernetes Service

Mitte Mai 2018 und nach der strategischen Investition von IBM in Kubernetes wurde der seit Mai 2017 verfügbare IBM Cloud Container Service in IBM Cloud Kubernetes Service umbenannt.

Der IBM Cloud Kubernetes Service ist ein Managed Container Service für die schnelle Anwendungsbereitstellung, der mit IBM Watson®, Blockchain und weiteren innovativen Services kombiniert werden kann. Zu den Funktionen des IBM Cloud Kubernetes Service gehören:

  • Intelligente Terminierung
  • Automatische Fehlerbehebung
  • Horizontale Skalierung
  • Serviceerkennung
  • Load-Balancing
  • Automatisierte Rollouts und Rollbacks
  • Management geheimer Schlüssel und Konfigurationsmanagement

Mit erweiterten Funktionen für ein benutzerfreundliches Cluster-Management und der Möglichkeit, einen eigenen Cluster zu entwerfen, bietet der IBM Cloud Kubernetes Service außerdem Richtlinien für die Container-Sicherheit und -Isolation sowie integrierte Betriebstools für Konsistenz bei der Bereitstellung.

Der IBM Cloud Kubernetes Service verfügt derzeit über mehr als 10.000 verwaltete bezahlte Produktionscluster und wird von Kunden wie Think Research, Eurobits Technologies und The Weather Company, einem IBM Unternehmen, genutzt. Unternehmen verwenden den IBM Cloud Kubernetes Service zur Durchführung der folgenden Aufgaben:

  • Erstellung von Clustern
  • Bereitstellung einer skalierbaren Webanwendung in Kubernetes
  • Analyse von Protokollen und Überwachung des Status von Kubernetes-Anwendungen
  • Bereitstellung einer kontinuierlichen Implementierung für Kubernetes

Wenn Sie mehr darüber erfahren möchten, wie Container-Services, Cloud-Services und Kubernetes Ihrem Unternehmen helfen können, vereinbaren Sie einen Termin für ein kostenfreies Gespräch mit einem IBM Experten. Sie können sich auch für den IBM Cloud Kubernetes Service registrieren, um kostenfrei in der IBM Cloud-Umgebung zu entwickeln. IBM unterstützt Sie dabei, Ihr Unternehmen voranzubringen.

Mehr Details zu Containern und Kubernetes

Quellen

  1. IBM Services. „Support solutions for your open source software environment“, IBM, 2019. https://www.ibm.com/downloads/cas/BWJWOJRD (PDF, 3,9 MB)
  2. Camilla Sharpe. „Q&A: How open source technology is shaking up the IT landscape“, IBM, 16. Mai 2019. https://itbizadvisor.com/2019/05/qa-how-open-source-technology-is-shaking-up-the-it-landscape