Lange war es ein unerfülltes Versprechen, Container würden auf beliebiger IT-Infrastruktur laufen. Heute ist das tatsächlich mit dem Serverless-Konzept erreicht. Diese neue Freiheit hat der Container-Entwicklung enormen Auftrieb gegeben. Mittlerweile stellen Ökosysteme unzählige Funktionsbausteine bereit und einige Unternehmen bauen damit sogar große Unternehmenssysteme auf.
Dieser Sprung wurde vor allem erreicht, weil sich im Bereich Serverless und APIs in den vergangenen Jahren interessante Entwicklungen vollzogen haben. Dieser Beitrag skizziert einige dieser Entwicklungen und zeigt drei Arten, wie Unternehmen heute auf moderne Weise die Möglichkeiten von Cloud-Native-Frameworks nutzen.
Der Startpunkt von Serverless im Markt
Ende 2014 brachte Amazon seinen Service „AWS Lambda“ heraus. Der Serverless-Computing-Service abstrahiert Server, indem er jede Funktion in einem eigenen Container ausführt. Am Anfang war Lambda für Hilfsfunktionen gedacht, also für kleinere Use-Cases, die jede Entwicklerin und jeder Entwickler fachlich verstanden hat.
Diese Möglichkeiten hat dann Serverless.com kanalisiert. Mit diesem Open-Source-Anwendungs-Framework lassen sich serverlose Architekturen relativ einfach erstellen und Serverless.com hat gezeigt, wie man methodisch Funktionsbausteine baut und ausrollt – und zwar über alle Cloud-Vendoren hinweg.
Auch Microsoft hat geholfen, das Cloud-Native-Framework voranzutreiben. So stellt das Unternehmen seit Dezember 2019 Dapr (Distributed Application Runtime) als Open-Source-Lösung zur Verfügung. Die Laufzeitumgebung unterstützt Entwickler*innen, Container-Apps zu erstellen.
Der entscheidende Punkt: Dapr ist auf nahezu jeder Plattform und in jeder Programmiersprache nutzbar. „Dapr hat einen Beitrag dazu geliefert, um Programmiersprachen-agnostisch zu sein, damit man Programmiersprachen mixen kann“, erläutert Dennis Zielke, Cloud Native Application Specialist bei Microsoft.
Neue Freiheit dank asynchroner Kommunikation und Cloud Events
Parallel dazu haben sich auch die Schnittstellen weiterentwickelt. Standen früher nur API-Schnittstellen für die synchrone Kommunikation zur Verfügung, hat sich nun mit dem CloudEvents-Schema ein Standard für die asynchrone Kommunikation etabliert. CloudEvents ist eine offene Spezifikation zur Beschreibung von Ereignisdaten. Diese Kommunikation übernehmen heute Message Broker wie Kafka oder Event Hub und asynchrone Kommunikation ist ein wichtiger Teil von API Driven Application geworden.
Wichtig war die Frage, wie man aus Mengen von Containern komplexere Applikationen bauen kann, ohne einen Vendor-Lock-In einzugehen. Schließlich leben wir in einer Multi-Cloud-Welt. Dazu hat Cloud Events einen entscheidenden Beitrag geleistet. Der Standard ermöglicht asynchrone Kommunikation über unterschiedliche Module und gewährleistet so die Interoperabilität zwischen Diensten, Plattformen und Systemen.
Dank dieser Entwicklungen lassen sich heute synchrone und asynchrone Kommunikation so zusammenbauen, dass Entwickler*innen nicht mehr wissen müssen, wo ein Container läuft. „Das sorgt letzten Endes dafür, dass sich Serverless und nicht Serverless kombinieren lassen – auf jeder beliebigen Plattform“, sagt Zielke.
Cloud Native schafft Ökosysteme für Capabilities
Diese Entwicklungen haben dafür gesorgt, dass eine ständig wachsende Zahl an Funktionsbausteinen auf kommerziellen und auf Community-Initiativen angeboten werden. Damit sind diese Plattformen zum Ökosystem gereift.
Von dort holen sich Entwickler*innen Bausteine und kombinieren sie mit Bausteinen anderer Plattformen. Dabei können sie dank Serverless Betriebsaspekte einfacher lösen. Heute ist Serverless nicht nur eine Art und Weise, wie man den Server-Betrieb an einen Provider auslagert, sondern wie man technische Capabilites einkauft, betreibt und organisiert.
Ihr Azure-Leitfaden für serverloses Computing
Dieses E-Book bietet bewährte Methoden für Azure Functions. Erkunden Sie, wie Sie Functions in einer serverlosen Architektur entwickeln, testen und überwachen.
Damit entsteht auch eine neue Art und Weise, wie Software gebaut wird. Es geht darum Verbindungen zu schaffen und die richtigen APIs zu bauen.
„Cloud ist für mich nichts anderes als eine API für ein Rechenzentrum“, sagt Zielke. „Und das ermöglicht es mir, alle Capabilities wie State, Event, Security, Messaging, Skalierbarkeit als API anzubinden und als Entwickler*in zu benutzen.“ Daher denken Cloud-Native-Entwickler*innen mehr in APIs als in Apps.
Wie Serverless eine Agilität ermöglicht, die es vorher nicht gab
Diese neuen Cloud-Native-Technologien können Unternehmen zum Beispiel auf drei verschiedene Arten nutzen:
Einige Unternehmen ziehen Logiken aus ihrem ERP-System heraus und lassen sie dann in Serverless-Applikationen bearbeiten. Damit nehmen sie Komplexität aus dem System heraus und überführen sie in einen Modus, der viel leichtgewichtiger ist und schneller zu ändern. „Große ERP-Systeme kann ich zweimal im Jahr ändern“, sagt Zielke. „Eine Funktion in einem Serverless-Baustein hingegen kann ich jeden Tag fünfmal neu deployen, ohne dass jemand merkt, dass sie verändert wurde.“
Serverless bietet auch die Möglichkeit, das Know-how von Fachbereichen digital nutzbar zu machen. Organisationen können ihre fachlichen Aufgaben in einzelne Einheiten aufteilen. Jeder Fachbereich macht sich selbst Gedanken darüber, wie er auf Basis von Serverless Funktionsbausteine zur Verfügung stellt. Dann kann er entscheiden, das selbst zu bauen, einzukaufen oder aus dem Open-Source-Ökosystem einzubinden.
Mit diesem Vorgehen lassen sich nicht nur kleine Event-Driven-Applikationen bauen, die Dateien abarbeiten, sondern auch große Systeme. Solche Systeme sind Mengen von Funktionsbausteinen, die von Teams von mehreren 100 Entwickler*innen gebaut werden. Diese wissen nichts voneinander, machen die Bausteine aber für andere nutzbar, indem sie APIs als Schnittstellen definieren.
Container - jetzt garantiert über alle Plattformen hinweg
Solche Entwicklungen werden ermöglicht durch Serverless Managed Container, die Managed Container und Serverless kombinieren. Mit Azure Container Apps zum Beispiel lassen sich Container bauen, die auf allen Cloud-Plattformen laufen, weil Dapr sowohl in Azure als auch in AWS und Google mit gemanagten Diensten zusammenarbeiten kann.
Das entspricht der grundlegenden Herangehensweise von Microsoft. „Wir sind zwar später gekommen, haben aber das Thema Serverless sehr offen und in Richtung Ökosystem gedacht“, erläutert Zielke. „Mit Dapr und Keda haben wir einen wichtigen Beitrag geliefert, um Vendor-Agnostik und Cloud-Unabhängigkeit in das Serverless-Thema einzubringen.“
Keda ermöglicht es, Anwendungen basierend auf HTTP-Datenverkehr oder Ereignissen dynamisch und automatisiert zu skalieren. Keda ist Teil der Cloud Native Compute Foundation (CNCF), Dapr ist auf dem Weg dahin und damit sind beide Open-Source-Projekte. „Diese Schritte haben wir gemacht, weil wir denken, dass das Ganze nur funktioniert, wenn ein Industriestandard daraus wird, der nicht mehr einem Vendor gehört“, so Zielke.
Dank all dieser Entwicklungen stellen die Azure Container Apps heute einen Cloud-Service bereit, mit dem Sie Apps in Ihrer bevorzugten Programmiersprache oder mit Ihrem bevorzugten Framework entwickeln können, ohne komplexe Infrastrukturen verwalten zu müssen. Das verändert die Arbeit und Produktivität von Entwicklern so massiv, dass sich auch IT-Strategien wandeln werden.
Alle Artikel aus Cloud
Die Cloud ist der Schlüssel für mehr Agilität. Lesen Sie, wie moderne Cloud-Umgebungen heute aussehen.