Das „Salz in der Suppe“ – Cloud native, Kubernetes und Unikernels (Teil 5) Neue Technologien für Managed Cloud-Umgebungen
Nachdem wir die Geschichte der Cloud, den aktuellen Status quo, die Einsatzszenarien sowie die verschiedenen Service Provider genauer angesehen haben, können wir nun endlich über das Salz in der Cloud-Suppe sprechen: Die Verfahren, mit denen Workloads und Anwendungen zwischen den verschiedenen Clouds hin- und herbewegt werden können. Dies ist der aktuell spannendste Entwicklungsstrang im Cloud Computing.
Anbieter zum Thema

Wie im Eingangsartikel dieser kleinen Reihe dargelegt, gewinnt die Anwendungsentwicklung in Richtung Cloud native-Anwendungen (CNA) immer mehr an Bedeutung. Bis vor kurzem sorgten noch Virtuelle Maschinen für die Portierung von dringend benötigten Anwendungen. Dieses Verfahren erweist sich aber zunehmend als vergleichsweise schwerfällig.
:quality(80)/images.vogel.de/vogelonline/bdb/1317200/1317252/original.jpg)
Definition: Cloud-Architektur konsequent genutzt
Was ist Cloud Native?
Virtual Machines sind schwerfällig
Ein physikalischer Server mit drei virtuellen Maschinen würde aus einem Hypervisor mit drei separaten Betriebssystemen bestehen. Im Unterschied dazu würde auf einem Server mit drei containerisierten Applikationen nur ein Betriebssystem laufen, das sich alle drei Container teilen. Das bedeutet, dass die von allen drei genutzten Teile des Betriebssystems nur einmal gelesen werden müssen, wodurch Container deutlich (!) weniger Ressourcen verbrauchen als VMs - wir sprechen von Megabytes bei Containern im Gegensatz zu Gigabytes bei VMs.
Ein weiterer großer Vorteil von Containern ist ihre sofortige Verfügbarkeit, sie booten extrem schnell. VMs dagegen benötigen manchmal mehrere Minuten zum Hochfahren. Zu bedenken gilt allerdings, dass aktuell eine große Aufregung in Sachen Container besteht, die ganze Branche ist „excited“. Erste Marktbeobachter mahnen, dass Container Services häufiger als notwendig eingesetzt werden, eben weil sie gerade State of the Art sind.
Microservices und Container
Cloud-basierte Anwendungen werden aus Microservices zusammengesetzt, die wie Bausteine zusammenpassen und immer eine ganz bestimmte Funktion übernehmen, etwa den Empfang von Nachrichten, das Bereitstellen bestimmter Daten, Rechnen oder das Auslesen von Sensoren. Die einzelnen Microservices sind voneinander unabhängig und können auf verschiedenen Servern installiert sein.
Zusammengefasst werden die Microservices in Container, die wie beschrieben leicht portiert werden können. Im Zuge der DevOps-Entwicklung ist eine weitestgehend automatisierte Kette von Entwicklung, Test, Deployment und Produktion vorgesehen. Diese erfordert das automatisierte Starten und Stoppen einer Vielzahl von Containern in einem vorgegebenen Prozess.
Orchestrierung mit Kubernetes
Das ist manuell, also durch einen einzelnen Menschen, nicht praktikabel. Die Orchestrierung von Containern übernehmen Open-Source-Werkzeuge wie die Container Orchestrierungs- und Management-Lösung Kubernetes, die ursprünglich von Google bereitgestellt wurde.
:quality(80)/images.vogel.de/vogelonline/bdb/1566900/1566969/original.jpg)
Definition: Orchestrierung von Containern mit K8s
Was ist Kubernetes (K8s)?
„Kubernetes hat das Rennen um die Führerschaft der Container-Orchestrierungssysteme gewonnen. Die Kubernetes-Container-Orchestrierung ermöglicht es, die Redundanzen auf Software-Ebene abzubilden, so dass man Redundanten auf Datacenter-Ebene einsparen. In anderen Worten: Kubernetes vereinfacht die Organisation und das Scheduling der einzelnen Komponenten auf mehreren Rechnern und entkoppelt deren Betrieb“, erklärt Burkhard Noltensmeier, Geschäftsführer von Teuto.net den Erfolg von Kubernetes bereits im Herbst 2018 am Rande des Datacenter Day gegenüber DataCenter-Insider erklärt.
Kubernetes biete zudem ‚out of the Box‘-Mechanismen für Healthchecks, Skalierung, Rolling-Updates, Zero Downtime Maintenance, Replication und die automatische Wiederherstellung von fehlerhaften Services. Zusätzlich können die verschiedenen Kubernetes-Services voneinander separiert werden, auf der x Namespace-Ebene - zum Beispiel Production, QA und Development - und fein granular pro Service oder sogar pro Pod. Die Isolation erhöht das Sicherheitsniveau.
Container Management Lösungen
Wie im zweiten Teil dieser kleinen Reihe erläutert, wandeln sich klassische Cloud Management Plattformen immer mehr zu Container Management Plattformen, einfach weil sich Container weitgehend als „Transportmittel“ zwischen Clouds durchgesetzt haben. Im Dunstkreis des eben erläuterten Kubernetes finden sich denn auch mittlerweile eine ganze Reihe von Lösungen.
Aber keine neue Technik ohne Kinderkrankheiten: Cloud-Anwendungen bestehen dank der Microservice-Architektur mittlerweile aus Tausenden beweglicher Elemente. Dadurch bieten sie eine größere Angriffsoberfläche für sich ständig weiterentwickelnde Exploits. Eventuell müssen Unternehmen deswegen auch ihr Sicherheitskonzept überdenken: Eine „Zero Trust“-Strategie ist angeraten, also ein durchgängiges Null-Toleranz-Sicherheitskonzept.
Container gelten auch als kleiner Unsicherheitsfaktor, weil sie einen gemeinsamen Kernel nutzen. Wird dieser kompromittiert, sind alle Container kaputt. Im Falle von Virtuellen Maschinen ist der Kernel aber vom Host getrennt, die Virtualisierung gilt deswegen als sicherer als reine Container-Systeme. Findige Entwickler sind daher auf die Idee gekommen, das Virtualisierungsprinzip auf Container zu übertragen: Microsofts Hyper-V-Container teilen sich nicht den Kernel, sondern nutzen jeweils eigene. Ähnlich agieren die OpenStack Foundation mit den Kata Containers, Google mit gVisor und IBM mit Nabla Containers.
Der „Ovum Market Radar: Container Management Platforms 2018/19“ weißt den Amazon EC2 Container Service (ECS) als Marktführer aus, was nicht überrascht, ist AWS doch wie in der Marktübersicht in Teil 2 dieser Artikelreihe gesehen der größte Public Cloud-Anbieter weltweit. Andere, vergleichbare Lösungen sind Google Kubernetes Engine, IBM Cloud Kubernetes Service, Microsoft Azure Kubernetes Service, Oracle Container Native Service, Platform9 Managed Kubernetes oder VMware Cloud PKS.
Da der Markt ein noch sehr junger und getrieben von enthusiastischen Entwicklern mit langen Bärten (siehe „Die Zukunft der Software hat ´nen Bart“ auf DataCenter-Insider ist, entstehen fast stündlich neue Projekte, gerne auf Basis von Cloud Foundry, die allesamt den künftigen Großmarkt für Container Management Software bedienen wollen. Hier ein zwangsläufig unvollständiger Überblick über aktuelle Lösungen, die in ihren Ausprägungen unterschiedlich weit fortgeschritten sind: Docker Enterprise, IBM Cloud Foundry, IBM Cloud Kubernetes Service, Pivola Cloud Foundry, CoreOS rkt, Swarm, Mesos, Canonical LXD, Spoon, DxEnterprise, Flockport, Nomad, ContainerShip Cloud, Microsoft Draft, Google Kubernetes Engine, IBM Cloud Container Registry, IBM Cloud Hyper Protect Containers aaS, TrustRadius, Red Hat OpenShift, VMware PKS, Kata Containers, Scality MetalK8s.
Externe Hilfe gefragt
Container Services und Kompetenzen in Kubernetes sind also heute nicht mehr aus dem Management von Multi oder Hybrid Cloud-Umgebungen wegzudenken. Der virtuose Umgang damit ist aber noch einer jungen Elite von Softwareentwicklern vorbehalten. IT-Teams in Unternehmen fehlt dieses neue Wissen oft, so dass, wie im vorhergehenden Beitrag erläutert, im Multi Cloud-Zeitalter externe Hilfe durch Dienstleister nötig wird.
Zum Glück hat sich rund um die Cloud Native Computing Foundation, die momentan hinter Kubernetes steht, ein breites Ökosystem aus zertifizierten Service Providern gebildet, die die Container-Entwicklung vorantreiben. Das Analystenhaus Crisp berichtet, dass die führenden Dienstleister, die sich im Rahmen dieser Services aufstellen, allesamt über einen Plattform-offenen Ansatz für ihre Container-Cluster verfügen. Das Management von Containern mittels Kubernetes kann on-Premises, in der Private Cloud oder der Public Cloud betrieben werden. Das eröffnet der jungdynamischen Entwicklergemeinde die rastlose Suche nach neuen Wegen, die Effizienz der Entwicklung noch weiter zu steigern.
:quality(80)/images.vogel.de/vogelonline/bdb/1559500/1559576/original.jpg)
Community rund um Microservices und Container
Was ist die Cloud Native Computing Foundation (CNCF)?
Die Virtuosen des Container Managements finden sich in den Reihen der für das Management von Hybrid und Multi Cloud-Umgebungen zuständigen Managed Public Cloud Provider und Managed Hybrid Cloud Provider (siehe Teil 4 dieser Reihe). Es ist davon auszugehen, dass Anwenderunternehmen zukünftig eine Art Generaldienstleister für ihre IT und Hybrid Cloud Operations anheuern werden.
Funktionen statt Container: Serverless
Der gemeine Entwickler ist ein rastloses Wesen. Man könnte ja zum Beispiel nach Wegen suchen, Anwendungen noch schmaler zu gestalten, so dass sie noch weniger Platz auf dem Server benötigen. Tatsächlich machen Einsparungs- und Effizienzprozesse in Rechenzentren solche Überlegungen notwendig. Dieser haben zum Serverless Computing geführt, dem „nächsten großen Ding nach Container“, so der CTO von Suse, Dr. Thomas Di Giacomo. „Serverless im Sinne von Funktionen, die einen noch kleineren Fußabdruck hinterlassen als Microservices.“
:quality(80)/images.vogel.de/vogelonline/bdb/1372700/1372721/original.jpg)
Definition: Anwendungen und Services aus der Cloud
Was ist Serverless Computing?
Bei Serverless benötigen die Funktionen nämlich weder ein Betriebssystem wie bei Virtuellen Maschinen, noch Code, Laufzeit, Systemwerkzeuge, Systembibliotheken und Einstellungen wie bei Microservices. Für Serverless sind weder Funktionsaufrufe noch Container noch Maschinen erforderlich. Die Funktionen selbst sind, wie der Oracle-Entwicklungschef Chad Arimura es formulierte, „Codeblöcke, idealerweise klein und zweckbestimmt“. Sie werden über eine Function-as-a-Service (FaaS)-Plattform koordiniert und terminiert.
Man könnte auch sagen, dass Serverless Computing die Funktion von der Anwendung befreit, was die Methode besonders für das Internet der Dinge (Internet of Things; IoT) interessant macht. Denn durch Serverless kann auf ein Event im IoT flexibel reagiert werden, weil die Funktion zwar da ist, aber keine Ressourcen verbraucht. Die FaaS-Plattform sorgt dafür, dass die Funktionen vor Ort gebracht werden können.
:quality(80)/images.vogel.de/vogelonline/bdb/1438600/1438673/original.jpg)
Definition: serverloses Cloud Computing mit Function as a Service
Was ist Function as a Service (FaaS)?
Für Serverless Computing spricht zudem, dass sich Entwickler nicht um das Management von Containern und der dazugehörigen Infrastruktur kümmern müssen. In der Praxis bedeutet dies, dass Serverless Computing für schnelle Prozesse eingesetzt wird, Container dagegen eher für komplexe Anwendungen.
Jüngster Entwicklungsstrang: Unikernels
Die Vordenker der Entwicklerszene sind natürlich bereits einen Schritt weiter: Chip Childers, Mitbegründer und aktueller CTO der Cloud Foundry Foundation, sieht Unikernels als den nächsten logischen Schritt nach Containern. „Container erhöhen die Auslastung von Servern, weil sie weniger OS benötigen. Diese Entwicklung wird von Unikernels auf die Spitze getrieben.“
Und das kam so: Docker hatte das britische Start-up Unikernel Systems 2016 übernommen. Dieses hatte besagte Unikernels entwickelt, die nur die wichtigsten Komponenten eines Betriebssystems zum Ausführen einer Anwendung verwenden. Applikationen und das zugehörige, maximal abgespeckte Betriebssystem sind in einem Container zusammengefasst. Unterm Strich verbrauchen Unikernels noch weniger Platz auf dem Server als „herkömmliche“ Container und werden deswegen auch schon mal als „Container 2.0“ bezeichnet. Unikernels lassen sich zudem auf einem Hypervisor oder direkt auf der Hardware ausführen.
Die Zukunft der Managed Cloud bleibt also spannend, neue Entwicklungen mit oder ohne Container erwarten uns. Bleiben Sie dran! Und lesen Sie im ersten Teil unserer Total-Cloud-Reihe nach, wie Cloud Computing die IT-Branche zu neuem Leben erweckte und welchen Stand das Cloud Computing in Deutschland heute hat. Im zweiten Teil wird der Markt für Cloud Computing in Deutschland genau analysiert, im dritten die möglichen Einsatzszenarien unter die Lupe genommen. Im vierten Teil haben wir uns die verschiedenen Arten von Service Providern angesehen.
:quality(80)/images.vogel.de/vogelonline/bdb/1563400/1563460/original.jpg)
Total Cloud – von anno dazumal bis heute (Teil 1)
Ein langer Weg: Cloud Computing 2002 - 2019
:quality(80)/images.vogel.de/vogelonline/bdb/1579600/1579622/original.jpg)
Total Cloud – das Marktgeschehen (Teil 2)
Cloud Computing in Deutschland – eine Marktübersicht
:quality(80)/images.vogel.de/vogelonline/bdb/1579600/1579623/original.jpg)
Total Cloud – Einsatzszenarien im Überblick (Teil 3)
Aktuelle Einsatzszenarien für Cloud Computing
:quality(80)/images.vogel.de/vogelonline/bdb/1579600/1579624/original.jpg)
Total Cloud und die wichtige Rolle der Provider (Teil 4)
Masters of Hybrid Cloud: Managed Service Provider
(ID:45929502)