Multi & Hybrid Cloud mit Kubernetes – Skalierbare Container-Infrastrukturen als Allheilmittel?

  • Container-Management- und Orchestrierungs-Software ist ein Mixed-Use-Markt. Kubernetes ist momentan die führende Technologie mit einem stark wachsendem Ökosystem. Aber es ist kein De-facto-Standard, noch ist es der Gewinner in einem frühen Markt.
  • Container sind eine wichtige Komponente, um die Effizienz zu erhöhen und eine Portabilität für Anwendungen zu ermöglichen.
  • Kubernetes und andere Container-Management- und Orchestrierungs-Software können neben der Ermöglichung von Portabilität auch Private Clouds und ebenso PaaS ersetzen.
  • Kubernetes ist eine offene Technologieplattform, die in ihrer Komplexität nicht unterschätzt werden sollte. Beispielsweise beschäftigen sich alleine 29 SIGs (Special Interest Groups) und zehn Arbeitsgruppen mit der Weiterentwicklung von Kubernetes.  

Die neuste Ubuntu Version wurde die Tage vorgestellt und in einem weltweiten Konferenz Call sagte der CEO von Canonical Mark Shuttleworth u.a. "Multicloud operations are the new normal”. Damit unterstreicht er einen Trend auf der Produktebene eines Betriebssystems, welcher sich seit einigen Jahren auch in unseren Studien mehr als deutlich abgezeichnet hat. Die Verwendung von unterschiedlichen Cloud Deploymentmöglichkeiten zur Lösung unterschiedlicher Fragestellungen im Unternehmenskontext ist eine logische Konsequenz. Der Treiber mit dem schönen Namen Digitalisierung bedingt die Evolution der Unternehmen hin zu einer mehr Dienste orientierten und mit Software und Machine Learning angereicherten Produktpalette. Dazu ist eine Flexibilisierung innerhalb der IT notwendig, um die heterogenen Anforderungen bedienen zu können.

Die Welt wäre einfach, wenn Unternehmen direkt mit der grünen Wiese starten könnten und einfach alle Kapazitäten dynamisch und flexibel als OPEX aus der Cloud beziehen. Doch in der Realität gibt es bereits existierende Workloads, viele Systeme mit Abhängigkeiten untereinander und Workloads, die nicht direkt in der Public Cloud laufen können. Dies kann Latenzgründe haben, wenn wir an Produktionssysteme denken, die viele Daten produzieren, welche dann auch direkt vor Ort verarbeitet werden müssen oder Systeme, die vielleicht aus Datenschutzgründen nicht in die Cloud sollen oder dürfen. So ergibt es sich häufig, dass man einen Mix an On-Premise-Systemen und Public Cloud-Angeboten in das eigene Unternehmen bekommt. Die Gründe für diese Mischung sind vielfältig:

  • Workloads werden auf der geeignetsten Umgebung ausgeführt (Hardware, Skalierungs-Anforderungen, Technologie-Anforderungen etc.)
  • Bestehende Workloads bleiben auf den On-Premise-Systemen und neue gehen in die Public Cloud
  • Public Cloud als Off-Site Location für Backup und Disaster Recovery
  • Public Cloud für Test- und Entwicklungssysteme, aber Private Cloud für die Produktion
  • Cloud Bursting bei einer hohen Nutzung der Dienste
  • Remigration von Public Cloud Workloads auf On-Premise-Systeme

All diese unterschiedlichen Anwendungsfälle zeigen, dass die Komplexität sehr schnell steigt. Damit die IT die Kontrolle behalten kann und die Entwickler nicht zuviel Zeit verlieren, weil sie sich auf immer wieder neue Prozesse und Toolchains einstellen müssen, bietet sich die Abstraktion auf Container-Level an. Damit haben die Entwickler die Möglichkeit die Entwicklungspipeline bis kurz vor dem Deployment weitestgehend homogen zu halten. Doch auch für die IT ergeben sich damit Vorteile. Denn wenn die Entwickler alle Arten von Anwendungen in Container deployen, dann können physikalische Ressourcen gezielter ausgenutzt werden, indem unterschiedliche Workloads den Server auslasten und auch die Administration kann vereinfacht werden, wenn ich eine Container-Management- und Orchestrierungs-Software nutze, die auf allen Plattformen im Portfolio eingesetzt wird.

Container ja, aber wie?

Die am häufigsten eingesetzten Container-Technologien sind Docker, LXC, Kubernetes, rkt, Docker Swarm und Mesosphere bzw. DC/OS. Damit hat sich das Feld schon ein wenig beschränkt auf einige wenige Technologien. Aktiv am Markt sind jedoch weit mehr Technologien und Produkte rund um Container. Die Hauptgründe für die Auswahl und den Einsatz von Containern sind:

  • Geschwindigkeit
  • Portabilität von Anwendungen
  • Hybride Cloud / Multi Cloud Integrationsmöglichkeiten
  • Effizienz
  • Erfüllen von Entwickler-Anforderungen

Klingt gut, oder? In der Tat! Die Vorteile sind nicht zu verachten und die Gründe liegen auf der Hand hier ein entsprechendes Angebot als Public Cloud-Anbieter zur Verfügung zu stellen. So taten es auch die großen Anbieter. AWS, Azure, Google und IBM haben - neben den vielen anderen - mindestens ein Angebot im Portfolio für eine Container-Management- und Orchestrierungs-Software oder direkter Plattform. Damit haben die Anbieter eine Möglichkeit geschaffen die Brücke zwischen den On-Premise-Systemlandschaften und der Public Cloud zu schlagen. Dennoch ist die Nutzung nicht so trivial, wie es zunächst scheinen mag. Denn um die Kontrolle und die Einfachheit zu erhalten, sollten natürlich beispielsweise die Kubernetes Cluster im eigenen Rechenzentrum ebenso einfach genutzt werden können, wie in der Cloud. Dazu müssen auch organisatorische Themen geklärt werden, Sicherheitsstandards für alle Umgebungen geschaffen werden, Monitoring- und Logging-Funktionalitäten homogenisiert werden und Compliance-Richtlinien etabliert werden. Diese Hürden sind auch beim Einsatz von einer klaren definierten Technologieauswahl nicht einfach. Denn auch wenn ich mich für Kubernetes und Docker entscheide, bleiben diese Fragen immer noch ungeklärt und ich muss eine Strategie entwickeln, wie ich diese Punkte adressieren kann.

Sind Container also ein Allheilmittel?

Die Frage ist sicherlich mit einem klaren Nein zu beantworten. Aber Container ermöglichen es viele Fragestellungen aus dem Unternehmensalltag zu beantworten und ebenso eine Integration von unterschiedlichen Depoloymentmodellen zu erstellen. Die gerade stattfindende KubeCon zeigt auf, wohin die Reise gehen soll.

Anwendungen sollen sich nahtlos und reibungsfrei deployen lassen können. “Just run my code” ist auch ebenso die Devise, welche von Serverless Frameworks propagiert wird. Wenn sich beide Bewegungen technologisch und inhaltlich entsprechend annähern, dann scheint diese Vision umsetzbar zu sein. Für die Administratoren oder auch Ops Leute wird sich in Zukunft ein Bild zeichnen, welches eine Nutzung von Containern auf Public Cloud, On-Premise-Landschaften, Gateways und IoT-Endgeräten widerspiegelt. Container müssen in all diesen Umgebungen orchestriert und verwaltet werden. Nur so lassen sich die Vorteile

  • Geschwindigkeit,
  • Wettbewerbsvorteile,
  • Effizienz,
  • Steigerung der Entwickler-Produktivität,
  • usw.

für das IT Management realisieren. Die Auswahl einer Container-Technologie sowie einer Container-Management- und Orchestrierungs-Komponente ist der Grundstein, dass dieses Vorhaben zum Erfolg führen kann. Danach folgt die eigentliche Arbeit, um Prozesse zu definieren, Regel zu erstellen, eine Sicherheits-Strategie zu definieren und implementieren, Ops Prozesse aufzusetzen, Developer Toolchains zu etablieren, Integrationsprojekte zu starten usw. Starten Sie also gezielt mit der richtigen Strategie für Ihre Ziele und entwickeln Sie die entsprechenden Kompetenzen im Unternehmen.