Total Cloud, Teil 5: das „Salz in der Suppe“ – Cloud native, Kubernetes und Unikernels

Neue Technologien für Managed-Cloud-Umgebungen

| Autor / Redakteur: Dr. Dietmar Müller / Florian Karlstetter

Container und Unikernels: Der aktuell spannendste Entwicklungsstrang im Cloud Computing sind Verfahren, mit denen Workloads und Anwendungen zwischen verschiedenen Clouds hin- und herbewegt werden können
Container und Unikernels: Der aktuell spannendste Entwicklungsstrang im Cloud Computing sind Verfahren, mit denen Workloads und Anwendungen zwischen verschiedenen Clouds hin- und herbewegt werden können (Bild: gemeinfrei (LoganArt / pixabay) / Pixabay)

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.

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 (VMs) für die Portierung von dringend benötigten Anwendungen. Dieses Verfahren erweist sich aber zunehmend als vergleichsweise schwerfällig.

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 dreien 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, das 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.

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 Redundanzen auf Datacenter-Ebene einsparen kann. In anderen Worten: Kubernetes vereinfacht die Organisation und das Scheduling der einzelnen Komponenten auf mehreren Rechnern und entkoppelt deren Betrieb“, erklärte 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.

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“ weist 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 Software-Entwicklern 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.

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.“

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-Plattform (FaaS) 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.

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

Container | Kubernetes | Serverless | Function as a Service – was folgt? Unikernels: „Unikernels are specialised, single-address-space machine images constructed by using library operating systems“ Es werden also nur die Dinge eines Betriebssystems genutzt, die für den Betrieb einer Applikation nötig sind.
Container | Kubernetes | Serverless | Function as a Service – was folgt? Unikernels: „Unikernels are specialised, single-address-space machine images constructed by using library operating systems“ Es werden also nur die Dinge eines Betriebssystems genutzt, die für den Betrieb einer Applikation nötig sind. (Bild: http://unikernel.org/)

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 werden die möglichen Einsatzszenarien unter die Lupe genommen. Im vierten Teil haben wir uns die verschiedenen Arten von Service Providern angesehen.

Ein langer Weg: Cloud Computing 2002 – 2019

Total Cloud, Teil 1: von anno dazumal bis heute

Ein langer Weg: Cloud Computing 2002 – 2019

08.08.19 - In einer kleinen Artikelreihe beleuchten wir Cloud Computing in Deutschland in seiner Gänze – „Total Cloud“ also. In diesem ersten Teil blicken wir zurück auf die Anfänge der Technologiebewegung und sehen uns dann den Status quo 2019 an. lesen

Cloud Computing in Deutschland – eine Marktübersicht

Total Cloud, Teil 2: das Marktgeschehen

Cloud Computing in Deutschland – eine Marktübersicht

13.08.19 - Cloud Computing hatte lange Zeit mit großen Vorbehalten zu kämpfen – die Technologie galt als unsicher in so ziemlich jeder Beziehung. Deutsche CIOs aus mittelständischen Unternehmen wollten das Thema anfangs noch nicht einmal mit der Zange anfassen. 2019 will kaum mehr einem CIO einleuchten, warum Daten – die mittlerweile als das neue Öl ausgemacht wurden – besser im hauseigenen Serverschrank als in der Cloud aufgehoben sein sollen. lesen

Aktuelle Einsatzszenarien für Cloud Computing

Total Cloud, Teil 3: Einsatzszenarien im Überblick

Aktuelle Einsatzszenarien für Cloud Computing

15.08.19 - Cloud Computing hat sich flächendeckend durchgesetzt. Nachdem wir im ersten Teil unserer Total-Cloud-Artikelreihe auf Vergangenheit, Gegenwart und tatsächliche Marktgegebenheiten geblickt haben, thematisieren wir im dritten Teil die möglichen Einsatzszenarien. Keine Branche muss ohne eine Vielzahl von Lösungsvorschlägen auskommen, die auf einer oder mehreren Clouds basieren. lesen

Masters of Hybrid Cloud: Managed Service Provider

Total Cloud, Teil 4: die wichtige Rolle der Provider

Masters of Hybrid Cloud: Managed Service Provider

19.08.19 - Die Cloud ist heute Commodity. Wie wir in den ersten drei Teilen dieser „Total Cloud“-Reihe gesehen haben, wurden in den vergangenen Jahren in rascher Folge Technologien, Lösungsansätze, Frameworks und Deployment-Modelle neu entwickelt. Nun hat sich die Technologie etabliert; Service Provider spielen dabei eine entscheidende Rolle. lesen

Kommentare werden geladen....

Was meinen Sie zu diesem Thema?

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46035368 / Praxistipps: Cloud-Speicher für Einsteiger)