Überall zuhause Was bedeutet Cloud Native?
Die Applikationswelten wandeln sich. Disruptiv wirkt sich vor allem der Cloud-Native-Ansatz aus, eine Kombination neuer Entwicklungs-Tools und -methoden, neuer Programmiersprachen und neuer Software-Infrastrukturen. Im Mittelpunkt steht dabei der Container als Basiseinheit, die es möglich machen, dass Anwendungen in jeder Cloud lauffähig sind, ganz privat und öffentlich.
Anbieter zum Thema

Cloud Native schickt sich an, das wichtigste Konzept zukünftiger Softwarewelten in der Unternehmens-IT zu werden. Landauf, landab predigen die Apologeten der Technologie deren segensreiche Wirkungen, namentlich gesteigerte Agilität und Flexibilität. Doch was ist Cloud Native überhaupt?
:quality(80)/images.vogel.de/vogelonline/bdb/1210000/1210063/original.jpg)
Cloud Native Computing Foundation
Dickes Ding: Kubernetes 1.6 und vieles, vieles mehr
Ganz grundlegend ist für Cloud-native-Software, dass sie unabhängig von der Hardware und möglichst auf jeder Cloud lauffähig ist. Die Cloud ist ihre ideale Umgebung, ob nun privat oder öffentlich.
Container als Basiseinheit
Infrastrukturtechnisch nutzt Cloud-native-Technologie Container als Basiseinheit. Sie können in unterschiedlichen Umgebungen – von bare metal bis zur VMware-VM laufen und bringen alles, was sie für die Lauffähigkeit brauchen, mit. Sie laufen auf Rechenknoten, die wiederum zu Clustern zusammengefasst werden können.
Derzeit ist Docker hinsichtlich der Container-Laufzeitumgebung das Maß der Dinge. Docker hat seinen Enterprise-Bereich allerdings im November 2019 an Merantis verkauft, vorher aber schon das diesbezügliche geistige Eigentum an die OCI (Open Container Initiative) übertragen.
:quality(80)/images.vogel.de/vogelonline/bdb/1643100/1643115/original.jpg)
Kubernetes-Docker-Fusion unter der Mirantis-Haube
Mirantis kauft die Docker-Enterprise-Platform
Deshalb ist die Weiterentwicklung der Technologie garantiert. Denn der OCI gehören mittlerweile so ziemlich alle Unternehmen an, die in der Technologiebranche Rang und Namen haben. Alternativen sind rkt von CentOS, OpenShift, Tectonic DC/OS und so weiter.
Schlüsselaufgabe Container-Orchestrierung
Ein Container kommt selten allein. Wichtig sind für die Container-Umgebungen daher Orchestrierungs- und Scheduling-Dienste wie „Marathon“ oder „Kontena“ auf der Orchestrierungs-, und „Mesos“ oder „Nomad“ auf der Scheduling-Seite. Weil sich die Container-Welt rasant entwickelt, können an dieser Stelle schon bald andere Namen stehen. Unangefochtener Marktführer wird längerfristig wohl „Kubernetes“ sein. „K8“ (Kurzname) übernimmt gern beide Aufgaben, was eines seiner Stärken ist.
Natürlich gibt es für die Containerwelt inzwischen auch spezielle Management-, Storage-, Sicherheits- und Verwaltungswerkzeuge. Besonders wichtig sind spezielle Storage-Tools, da Container an sich keine dauerhafte (persistente) Storage mitbringen. Ohne Persistenz ist aber beim Löschen eines Containers der Zugriff auf seine Daten futsch.
Da Container in der Regel als Images gehalten werden, die bei Bedarf kopiert und aktiviert werden, um eine bestimmte Anwendung oder Anwendungskomponente in Gang zu setzen, braucht man zudem eine Registry für diese Elemente, zum Beispiel „Artifactory“ oder „Harbor“.
Cloud-Native-Software besteht aus Mikroservices
In der Regel wird Cloud-Native-Software als Kopplung unterschiedliche Mikroservices über offene Schnittstellen realisiert. Diese Komponenten sind wiederverwendbar und lassen sich in immer neuen Applikationen einsetzen. Eine Applikation besteht aus einem Satz applikationsspezifisch verflochtener und über offene Schnittstellen interagierender Mikroservices.
Wegen dieser Architektur ist Cloud-Native-Software nicht darauf angewiesen, durchgängig dieselbe Programmiersprache zu verwenden. Vielmehr können Programmierer diejenigen Tools nutzen, die am besten zur jeweiligen Aufgabe passen. Deren Management freilich kann in komplexen Umgebungen zur Herausforderung werden.
Das Risiko: Es entsteht ein Mikroservices- und Schnittstellen-Zoo, den keiner mehr so recht überblickt. Jede Welt hat eben ihre eigenen Probleme.
Programmieren in kleinen Schritten
Auch das Programmier- und Betriebsparadigma ändert sich durch Cloud Native massiv: Traditionelle Programmierprojekte waren hochkomplex, langwierig und daher häufig schon bei Freigabe der ersten vollständigen Version wieder veraltet. Cloud Native setzt dagegen auf rudimentäre Grundfunktionen in der Erstversion (Minimal Viable Product). Sie werden immer weiter verfeinert und verbessert.
Dabei ermöglichen es Methodologie und Architektur von Cloud-Umgebungen, beispielsweise neue Funktionen unkompliziert an einem eng begrenzten Benutzerkreis parallel zur bestehenden Version zu testen und bei Gefallen ganz auf die neue Version umzuschalten. Auch lässt sich wesentlich schneller auf neue Anforderungen reagieren. Im besten Fall sind sie ruck-zuck in den entsprechenden Mikroservice eingebaut. Hier spricht man von Agilität.
Ertrinken im Variantenmeer
Der Nachteil der Methode: Manchmal fühlt man sich als Anwender typischer Cloud-native-Apps wie der unfreiwillige Tester ziemlich hastiger Programmierbemühungen. Die häufigen Änderungen erleichtern auch nicht gerade den Umgang mit den Programmen.
Zudem lassen sich altbewährte Anwendungen, die noch mit der Wasserfallmethode gestrickt wurden, mitnichten im Hau-Ruck-Verfahren in Mikroservices zerschlagen. Vielmehr gehen solche Projekte häufig schief, was dann zu einem veritablen Groschengrab für das jeweilige Unternehmen wird. Darin liegt ein wichtiger Grund für das nach wie vor hochlebendige Mainframe-Geschäft der IBM.
Betrieb und Entwicklung eng verzahnt
Die engere Verzahnung zwischen Development und Software-Entwicklung zeigt sich in der Automatisierung vieler Aufgaben aus der Prüfung, Freigabe, Paketierung, Parametrisierung und Verteilung containerisierter Software.
Weil all dies viel öfter, aber eben automatisch passiert und weil auch die Skalierung von Mikroservices (zum Beispiel von der Testgruppe auf alle User) nahezu ständig stattfinden kann, müssen die zuvor getrennten Bereiche Development und Betrieb viel enger zusammenarbeiten. Deshalb spricht man von DevOps.
Die Rolle der CNCF
Ein wichtiger organisatorischer Träger des entstehenden, Container-Universums ist derzeit – neben der OCI – die CNCF (Cloud Native Computing Foundation). Sie ist einer der über 50 Ableger der Linux-Foundation und damit ein Grundpfeiler der sich entwickelnden quelloffenen Softwarewelten rund um die Cloud.
Die Stiftung wurde 2015 gegründet.Das wichtigste Gründungsmitglied war Google. Die CNCF bündelt die Bemühungen, eine möglichst komplette Landschaft von Cloud-Native-Infrastrukturen, Tools, Programmiersprachen und mehr zu entwickeln, deren Quellcode gemeinsam entwickelt wird und der Allgemeinheit zur Verfügung steht.
Gemeinsam entwickeln – allein verdienen?
Das klingt sehr altruistisch, bedeutet aber letztlich, dass die Unternehmen die Entwicklung von grundlegenden Software-Tools und -ebenen, die zueinander kompatibel sein sollten, schlicht gemeinsam in die Hände nehmen. Denn allein zu entwickeln, wäre zu teuer und auch zu unsicher: Was, wenn sich nun die Lösung des Konkurrenten durchsetzt?
Am Ende werden häufig proprietäre „Abzweigungen“ mit diesem oder jenem kleinen Plus entwickelt, um daraus Gewinne zu generieren. Trotzdem oder gerade deshalb ist die CNCF ein großer Erfolg, auch wenn man ihr nachsagt, sie zu stark von diesem oder jenem Hersteller, namentlich von Google, dominiert. Mittlerweile steigt der Anteil anderer Unternehmen an den Entwicklungen, die als CNCF-Projekte laufen, kontinuierlich.
CNCF als wichtiges Bindeglied der Multicloud-Welt
Die Mitglieder der Organisation generieren ständig zahlreiche neue Softwareprojekte für die Cloud-Native-Welt, die die CNCF dann kuratiert und zur Reife führt. Jedes Projekt durchläuft unterschiedliche, klar definierte Stufen, bis es schließlich als ausgereift gilt, aber trotzdem ständig weiterentwickelt wird.
Zudem sorgt die Organisation für Kompatibilitätstests zwischen den einzelnen Kubernetes-Varianten und damit dafür, dass CNCF-Software sehr wahrscheinlich auf jeder von ihnen läuft. Mehr als 90 Kubernetes-Versionen werden derzeit auf API-Konformität miteinander getestet. Dazu kommen Projekte aus wirklich jedem Bereich der Container-Software. Damit ist die CNCF einer der wichtigsten Motoren der zukünftigen hybriden Multicloud-Welt.
Artikelfiles und Artikellinks
Link: Software-Ausblick: Serverless, Funktionen und Unikernels, Was kommt nach den Containern?
Link: Von der KubeCon und CloudNativeCon EU 2018, Kubernetes auf dem Höhepunkt?
Link: Übergang zu Cloud-nativen Systemen noch 2017, Wie geht „cloud native“?
Link: Grundlagen Cloud-Native-Technologien, Drei gute Gründe um auf Cloud Native umzusteigen
(ID:46307302)