Das „Salz in der Suppe“ – Cloud native, Kubernetes und Unikernels (Teil 5)

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

Was ist Cloud native?

Definition: Cloud-Architektur konsequent genutzt

Was ist Cloud native?

14.12.17 - Bei Cloud native handelt es sich um einen Ansatz, der sicherstellen soll, dass Anwendungen für die Cloud-Computing-Architektur konzipiert und entwickelt werden. Die Cloud native Anwendungen nutzen die von der Cloud bereitgestellten Services konsequent und basieren auf Microservices. lesen

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.

Was ist Kubernetes (K8s)?

Definition: Orchestrierung von Containern mit K8s

Was ist Kubernetes (K8s)?

28.05.19 - Kubernetes ist eine ursprünglich von Google entwickelte Open-Source-Plattform zur Orchestrierung von Containern. Sie gestattet das automatisierte Einrichten, Skalieren, Betreiben und Warten containerisierter Anwendungen und unterstützt Container-Engines wie Docker und zahlreiche Cloud-Computing-Plattformen. lesen

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.

Was ist die Cloud Native Computing Foundation (CNCF)?

Community rund um Microservices und Container

Was ist die Cloud Native Computing Foundation (CNCF)?

10.05.19 - Die Cloud Native Computing Foundation ist ein wichtiges Unterprojekt der Linux Foundation. Die Vereinigung hat sich zum Ziel gesetzt, das Cloud Native Computing zu fördern. Cloud Native Computing basiert auf Open Source Software und nutzt Microservices und Container zur Realisierung der Applikationen. lesen

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

Was ist Serverless Computing?

Definition: Anwendungen und Services aus der Cloud

Was ist Serverless Computing?

25.05.18 - Dank Serverless Computing können Entwickler Anwendungen oder Services in der Cloud ausführen, ohne sich selbst um Bereitstellung, Skalierung und Management von Servern kümmern zu müssen. lesen

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.

Was ist Function as a Service (FaaS)?

Definition: serverloses Cloud Computing mit Function as a Service

Was ist Function as a Service (FaaS)?

05.10.18 - Function as a Service (FaaS) ist ein serverloses Cloud Computing Angebot. Der Provider stellt dem Anwender einzelne Funktionen bereit, die sekundengenau abgerechnet werden. Die eigentliche Infrastruktur des Anbieters bleibt den Anwendern verborgen. Die Funktionen liefern Ergebnisse zurück und lassen sich für das Entwickeln, Betreiben oder Managen von Applikationen nutzen. lesen

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 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 – von anno dazumal bis heute (Teil1)

Ein langer Weg: Cloud Computing 2002 - 2019

08.07.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 – das Marktgeschehen (Teil 2)

Cloud Computing in Deutschland – eine Marktübersicht

09.07.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 – Einsatzszenarien im Überblick (Teil 3)

Aktuelle Einsatzszenarien für Cloud Computing

10.07.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 und die wichtige Rolle der Provider (Teil 4)

Masters of Hybrid Cloud: Managed Service Provider

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

Kommentar zu diesem Artikel abgeben

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? Infos finden Sie unter www.mycontentfactory.de (ID: 45929502 / Technologien)