NEU: gridscale Virtual Location Dein eigenes Rechenzentrum in der Cloud. Mehr Infos hier….

Vom Container zum Container-Service – der beste Weg für Unternehmen

In diesem Artikel geben wir euch einen Überblick über Container-as-a-Service und zeigen, wie die Nutzung euch und euer Unternehmen unterstützen kann.

Mit Containern und CaaS in die Cloud 2.0

Public Cloud

Die Cloud und ihre Services IaaS und PaaS existieren in ihrer heutigen Ausprägung seit über zehn Jahren und sind in immer mehr Unternehmen etabliert. Sie bieten umfangreiche und innovative Features, die den Betrieb von IT-Infrastrukturen in vielen Bereichen verbessert haben.

Neben passgenauen und nach Bedarf flexibel skalierbaren Servern (Stichwort: Autoscaling) lassen sich Cloud-Infrastrukturen leicht mit weiteren nützlichen Services kombinieren. So bauen beispielsweise Data-Warehouses oder Machine-Learning-Dienste meist auf der Flexibilität von Cloud-Infrastrukturen auf. Dienste, die immer mehr Unternehmen gewinnbringend nutzen. Hier stellt eine moderne Cloud IT-Infrastruktur API-Schnittstellen bereit, mit denen die verschiedenen Services dynamischer als in alten On-Premises-Architekturen interagieren können.

VMs vs Containers - Isolation

Container optimieren Prozesse in der Cloud

Doch die Entwicklung der IT-Infrastruktur hat an diesem Punkt nicht aufgehört. Ein entscheidender Nachteil bisheriger IT-Infrastrukturen ist, dass in der Regel für jeden Service ein neuer Server erstellt wird. Dieser kommt mit all seinen Programmbibliotheken daher. Diese enthalten zahlreiche Programme, die entweder gar nicht benötigt werden oder die von mehreren Services gleichzeitig genutzt werden könnten, aber trotzdem mehrfach vorliegen. Das verursacht eine unnötige Ressourcenverschwendung. Container können hier Abhilfe schaffen.

Container sind gekapselte Anwendungen auf einem Betriebssystem. Diese Anwendungen können auf Betriebssystemebene voneinander getrennt werden, statt sie auf unabhängigen Servern laufen zu lassen. So lassen sich mehrere Services auf einem Server bereitstellen und unnötige Ressourcen werden reduziert. Notwendige Funktionen, die das Betriebssystem zur Verfügung stellt, müssen nicht länger mehrfach vorgehalten werden.

Leichte Container vs. schwere VMs

Container sind kleiner als VM und ermöglichen damit weitere Vorteile

Dadurch verbraucht eine Container-Applikation viel weniger Speicherplatz. Das bedeutet nicht nur Kosteneinsparungen, sondern führt auch zu höheren Ausführungsgeschwindigkeiten der einzelnen Anwendungen. Start- und Stoppzeiten verringern sich und ermöglichen flexiblere Anpassungen. Das ist beispielsweise bei Belastungsspitzen von Webanwendungen sinnvoll. Innerhalb weniger Sekunden kann eine Containerplattform weitere Anwendungen bereitstellen und damit einen Ausfall der Applikation vermeiden.

Ein weiteres Plus: Container folgen gewissen Standards. Daher lassen sich in Container gekapselte Anwendungen einfach portieren und eröffnen damit eine Reihe weiterer Vorteile, wie leichtere Deployments über verschiedene Plattformen hinweg. Damit vermeidet man auch einen Vendor Lock-In.

Wenn du Entwickler bist, lassen sich auch in diesem Bereich Prozesse weiter optimieren. Natürlich profitiert man in der Entwicklung von der Geschwindigkeit und Portierbarkeit. Darüber hinaus eignen sich Container hervorragend für die Entwicklung von Microservices. Mehr dazu erfährst du unter »Anwendungsbereiche – CaaS in der Praxis«.


VM vs. Container
Zusammengefasst bringt die Containertechnologie diese Vorteile mit sich:

Geschwindigkeit: Da Container ohne eigenes Betriebssystem auskommen, lassen sie sich schneller starten und stoppen als virtuelle Maschinen. Damit beschleunigen sich beispielsweise Rollouts von Updates.

Hohe Skalierbarkeit: Aufgrund ihrer geringen Größe sind Container schneller und leichter skalierbar als virtuelle Maschinen. Wie bei IaaS ermöglicht die Skalierbarkeit die flexible Anpassung an Leistungsspitzen, sodass keine unnötigen Ressourcen vorgehalten und bezahlt werden müssen.

Einfache Portierung ohne Vendor Lock-In: Die Anwendungen beinhalten alle erforderlichen Bibliotheken und andere Abhängigkeiten. Unter Entwicklern erfreuen sie sich großer Beliebtheit, da sich solche Pakete leicht teilen und auf andere Container-Plattformen portieren lassen. Die Zusammenarbeit unter Entwicklern wird verbessert und Workloads können problemlos zu einem anderen Anbieter verschoben werden, wodurch ein Vendor Lock-In vermieden wird.

Kostenreduzierung durch Effizienz: Die geringere Größe von Containern reduziert die benötigten Speicherressourcen bei gleichem Funktionsumfang. Weniger benötigter Speicherplatz bedeutet gleichzeitig eine Reduzierung der Kosten, da nur genutzte Infrastruktur in Rechnung gestellt wird.

Sicherheit

Gibt es Bedenken? Container und die Sicherheit

Vor allem ein Aspekt wird bei Containern stets kritisch hinterfragt und lässt Unternehmen zögern, voll auf Container zu setzen. Da Container für bestimmte Funktionen gemeinsam auf das Betriebssystem zugreifen, stellt sich die Frage: Sind die Anwendungen ausreichend voneinander isoliert, um Zugriffe unautorisierter Nutzer auszuschließen? Denn während es bei virtuellen Maschinen so gut wie unmöglich ist, Zugriff auf andere Maschinen auf demselben Host zu erhalten, fehlt bei Containern diese zusätzliche schützende Schicht.

Aus diesem Grund wird bei der Weiterentwicklung von Containern verstärkt auf den Sicherheitsaspekt geachtet. Mit SELinux und Seccomp oder AppArmor stehen mehrere Frameworks bereit, um Container zusätzlich abzusichern. Achtet man außerdem darauf, Container nur mit den notwendigen Rechten auszuführen und in einer virtuellen Maschine laufen zu lassen, wird es ebenso schwierig, in einen Container einzubrechen, wie das bei virtuellen Maschinen der Fall ist.

Wie kann man Container in einem Unternehmen einsetzen?

Damit man Container in der Praxis nutzen kann, ist es sinnvoll, sie mit verschiedenen Features zu ergänzen. So ist es z.B. zweckmäßig, Container mit Load Balancing zu erweitern. Damit werden Container automatisch auf verschiedene Knoten (Server) verteilt. Aber auch bei den Verwaltungsaufgaben, die um Container herum entstehen, kann eine Containerplattform eine erhebliche Hilfe sein.

Container-as-a-Service – die Containerplattform für Unternehmen

Das Aufsetzen einer Plattform für Container mit entsprechenden Features ist in Eigenregie nicht ganz so einfach. Hier helfen Container-as-Service-Lösungen: Plattformen, die eine schlüsselfertige Containerlösung anbieten, mit der direkt gearbeitet werden kann.

Mit schlüsselfertiger Containerlösung hohe Einrichtungskosten vermeiden

Container-as-a-Service-Modelle stellen als Komplettlösung eine Software zur Containerverwaltung zur Verfügung. Sie bieten den Einstieg in moderne Containerinfrastrukturen ohne die Kosten und den Aufwand, die eine eigene Bereitstellung und Konfiguration der benötigten Ressourcen mit sich bringen würden.

Zwar ließen sich Containerlösungen auch in Eigenregie auf einer eigenen Plattform einrichten. Vor allem in der Anfangsphase wäre das aber mit hohen Kosten verbunden. Es handelt sich um eine junge Technologie und Experten auf diesem Gebiet sind noch nicht sehr zahlreich. Will man nicht diese Expertise zusätzlich zur Hardware (Kosten für virtuelle Maschinen etc.) teuer einkaufen und Probleme mit der Einrichtung und Konfiguration von Anfang an vermeiden, ist ein Serviceanbieter die bessere Wahl. Bei einem solchen Anbieter kann eine schlüsselfertige und reibungslos laufende Lösung angemietet werden.

Neben der grundlegenden containerbasierten Virtualisierung stellen Anbieter dem Kunden oft noch weitergehende Funktionen zur Verfügung, welche die Nutzung zusätzlich erleichtern oder verbessern.

Kosten sparen mit Containern
»Container as a Service (kurz: CaaS) ist eine Lösung, mit der es Unternehmen möglich wird, containerbasierte Anwendungen und Services leichter bereitzustellen, zu verwalten und zu skalieren.«

Managed Kubernetes

Anforderungen, Analysen, Ansätze

CaaS – worauf sollte ich bei der Anbieterwahl achten?

FEATURES

Neben der vorinstallierten Container-Engine und der Infrastruktur – Rechenleistung, Speicherplatz und ein performantes Netzwerk – beinhalten CaaS-Angebote in der Regel ein Tool zur Orchestrierung der Container. Ebenso wie Image Kataloge (Registry), Cluster Management Software, Entwickler-Tools, APIs und eine benutzerfreundliche Weboberfläche.

LOKALE ODER PUBLIC CLOUD

Zusätzlich ist bei der Auswahl eines CaaS-Anbieters zu überlegen, ob der Betrieb in der Public Cloud oder lokal stattfinden soll. Hat man veraltete, zu wenig oder gar keine Hardware zur Verfügung, ist die Public Cloud eine gute Idee. Man bekommt eine performante Infrastruktur, die den eigenen Anforderungen entsprechend konfiguriert werden kann. Der Anbieter übernimmt darüber hinaus die Wartung und Updates der Infrastruktur und garantiert über SLA eine hohe Verfügbarkeit.

SICHERHEIT

Oft werden in Anwendungen sensible Daten verarbeitet, weswegen die Sicherheit und der Datenschutz in keinem Fall vernachlässigt werden dürfen. Anbieter sollten hier die gängigen Zertifizierungen ISO 27001 und ISO 27018 aufweisen. Um Kunden eine hohe Sicherheit zu gewährleisten, sollte man im Zuge der DSGVO auf Anbieter setzen, die alle strengen Anforderungen dieser Leitlinie umsetzen können. Zwar lassen sich auch internationale CaaS-Anbieter nutzen, doch mit einem Anbieter aus Deutschland ist man für die Zukunft bestmöglich aufgestellt, wenn es darum geht, einen hohen Datenschutz zu garantieren.

Neben Betrieb und Sicherheitskriterien gibt es weitere Fragestellungen bei der Auswahl eines Anbieters:

  • Wird eine Unterstützung von Multi-Container-Applikationen geboten?
  • Wie gut ist die Integration in andere Clouddienste?
  • Bietet das Unternehmen schnellen Support und eine umfassende Dokumentation?
  • Wie hoch ist die Benutzerfreundlichkeit der Anwendung?
  • Welche Abrechnungsmodelle werden geboten?

Die Vorteile von CaaS aus der Public Cloud
  • keine eigene IT-Infrastruktur notwendig
  • keine Wartungsarbeiten: Updates und Upgrades liegen in der Verantwortung des Anbieters
  • Pay as you Go: nur tatsächlich genutzte Ressourcen werden abgerechnet
  • zukunftssicher durch passgenaue und skalierende Infrastruktur
  • bei Problemen umfassender und kompetenter Support

Wie funktioniert CaaS unter der Haube?

Wie bei den Features genannt, bieten Container-as-a-Service-Angebote nicht nur die reine Container-Engine an. Damit Applikation verteilt und im laufenden Betrieb skaliert werden, integrieren Caas-Lösungen einen Container-Orchestrator.

Herzstück der meisten CaaS-Lösungen ist Kubernetes, eine ursprünglich von Google entwickelte Open-Source-Software, die mittlerweile Marktführer unter den Orchestrierern ist. CaaS-Anbieter erleichtern den Umgang mit diesen komplexen Orchestrierern, indem sie dem Nutzer oft eine simple Benutzeroberfläche zur Verfügung stellen, mit der sich die Dienste leichter konfigurieren und verwalten lassen. Hier kann der Nutzer außerdem auf Voreinstellungen zurückgreifen, die ihm beim Umgang mit der neuen Technologie helfen. Module wie Load Balancer, persistenter Storage oder Scheduler lassen sich oftmals ohne große Anpassungen nutzen.

Kubernetes Control Plane

Anwendungsbereiche: CaaS in der Praxis

Microservices und CaaS – ein Dreamteam!

Container sind für viele Szenarien eine gute Lösung, in denen ein Unternehmen bisher eigene Server oder virtuelle Maschinen eingesetzt hat, sei es lokal oder aus der Public Cloud. Doch vor allem für den Betrieb von Microservices stellen CaaS-Lösungen eine passende Wahl dar. Microservices sind ein Programmierparadigma, bei dem große und schwer skalierbare Anwendungen in kleine, miteinander kommunizierende Services umgebaut werden. Kleinere Services können weitgehend unabhängig voneinander weiterentwickelt und bereitgestellt werden, was die Entwicklung von Anwendungen beschleunigt und vereinfacht. Doch die Nutzung einer hohen Zahl von Services führt zu komplexen Szenarien in der Orchestrierung.

Die vielen voneinander getrennt laufenden Anwendungen lassen sich performant und ausfallsicher nur schwer selbst verwalten. Die Orchestrierungssoftware greift hier helfend unter die Arme, indem sie Deployments autonom verwaltet. Kubernetes erkennt selbstständig, welche Knoten Ressourcen zur Verfügung haben und verteilt die Applikationen so, dass sie die bestmögliche Umgebung zugewiesen bekommen.

Updates lassen sich mit Kubernetes auf verschiedenen Wegen automatisiert ausrollen und durch die redundante Vorhaltung der Services auf verschiedenen Knoten erreicht man eine extrem hohe Ausfallsicherheit seiner Anwendungen.

Container Portabilität

Mit CaaS und Containern Legacy-Anwendungen in die Cloud bringen

Außerdem eignen sich Container gut als Einstieg in die Cloud.
Wenn Anwendungen in die Cloud portiert werden sollen, können Container die Lösung sein. Es kommt vor, dass sich Workloads, die bisher On-Premises liefen, nicht einfach an bestimmte Anforderungen der Cloud-Anbieter anpassen lassen. Mitunter müssen Teile der Anwendung neu geschrieben werden und auch die Konfiguration der virtuellen Server kann sich komplex gestalten.

Setzt man bei der Transformation aber auf Container statt auf virtuelle Maschinen, ist die Migration leichter zu bewerkstelligen: Anwendungen lassen sich mitsamt ihren Abhängigkeiten in ein Image bündeln. Sie sind dann auf jeder Container-Plattform lauffähig. Zudem verhindern die Standards der Services den gefürchteten Vendor Lock-In.

Weitere Einsatzszenarien, in denen Container-as-a-Service sinnvoll sind:

  • Aufsetzen von Clustern für Machine Learning
  • Entwicklung und Betrieb von Cloud Native-Applikationen

Allumfassend: CaaS im Zusammenspiel mit anderen Konzepten

Container und CaaS eignen sich nicht nur zur Transformation einzelner Geschäftsprozesse. Ihre Modularität ermöglicht es, sie mit neuen, ganzheitlichen Geschäftskonzepten zu nutzen, die den gesamten Entwicklungs- und Arbeitsprozess umfassen.

Zum einen greifen Container mit den sogenannten Dockerfiles das Konzept von Infrastructure as Code auf: die Definition von Infrastruktur mithilfe idempotenter Beschreibungen. Diese ermöglichen die schnelle Replikation eines Sets von Containern, die miteinander in Verbindung stehen. Aufgrund ihres Formats verbessern sie die Zusammenarbeit zwischen Teams. Änderungen werden mit einem Versionskontrollsystem sichtbar gemacht und erhöhen die Ausfallsicherheit von Systemen, da bei Fehlern auf die vorherige Version zurückgegriffen werden kann.

Zum anderen eignen sich Container hervorragend für die Etablierung von Cloud Native. Dieses neue Programmierparadigma ist ein ganzheitliches Konzept, mit dem man von den Synergien profitiert, die vernetzte Webservices bieten. Mit Containern lässt sich Cloud Native sehr leicht umsetzen. Mehr dazu erfährst du in unserem Glossar-Beitrag.

Container und CaaS heben die Cloud auf ein neues Level

Container überzeugen vor allem durch ihre geringe Größe, das standardisierte Format, ihre einfache Handhabung und die Vorteile in der Entwicklung. Mit Containern lassen sich Microservice-Architekturen leichter umsetzen als mit virtuellen Maschinen. Die damit einhergehenden Nachteile, wie komplexe Deployments aufgrund einer Vielzahl einzelner Services, lassen sich mit Container-as-a-Service umgehen. Diese Services bieten neben einem schlüsselfertig eingerichteten Setup weitere Features, wie eine benutzerfreundliche Verwaltung und einen umfassenden Support. So kann man ohne langwierige Setups direkt in die Containerwelt einsteigen und sowohl kleine als auch komplexe Workloads schnell in die Cloud bringen.

Mehr Lesestoff

Container-Orchestrierung schnell und unkompliziert

Container-Orchestrierung schnell und unkompliziert

Konzentrier dich auf das, was dich erfolgreich macht und wirklich weiterbringt. Und überlass einfach alles andere gerne uns.
Das Management und den Betrieb deiner Kubernetes-Infrastruktur beispielsweise. Zuverlässig, ausfallsicher und beliebig skalierbar.

gridscale Kubernetes Cluster in 5 Minuten einrichten

gridscale Kubernetes Cluster in 5 Minuten einrichten

Du möchtest deine Applikation auf Kubernetes betreiben? Dir und deinen Teammitgliedern fehlt allerdings die Erfahrung damit? Kein Problem!

Managed Kubernetes – 4 Wege zu deiner Container-Orchestrierung

Managed Kubernetes – 4 Wege zu deiner Container-Orchestrierung

In diesem Beitrag möchten wir dir gerne einen kurzen Einblick in die Welt der Container-Orchestrierung geben und im speziellen auf Kubernetes eingehen. Ergänzend zu diesem Artikel bieten wir dir weitere Materialien an, wie beispielsweise unser Whitepaper zu “Managed Kubernetes” .