Markus Thömmes Red Hat

„Für Entwickler, die Kubernetes sowieso schon nutzen, kennen und schätzen, ist Knative als Erweiterung sofort zugänglich und verständlich. Doch auch jene, die bisher nichts mit Kubernetes zu tun hatten, müssen nicht zuerst sämtliche Grundlagen verstehen, um Knative nutzen zu können.“

Das Stichwort Serverless ist heutzutage in aller Munde. Man kann den Begriff mögen oder nicht, wichtig ist jedoch, was er beschreibt. Kurz und bündig beschrieben bedeutet Serverless, dass eine Anwendung von der Skalierung her fortwährend so angepasst wird, dass immer genau die Ressourcen zur Verfügung stehen, die gerade benötigt werden. Im Zweifelsfall bedeutet das auch: gar keine! Für den Nutzer heißt das, dass er stets nur für die Kapazität bezahlt, die für das Beantworten der Anfragen zu seiner Anwendung benötigt werden. Ohne Nutzer bzw. Anfragen zahlt er eben gar nichts.

Ein zweiter Themenbereich, an dem man heute nicht mehr vorbeikommt, sind Container. Und damit zusammenhängend an der Containerorchestrierung. Diese beschäftigt sich mit dem effizienten Verteilen und Managen von Containern innerhalb eines Clusters von Maschinen. Im gleichen Atemzug kann man eigentlich auch schon Kubernetes erwähnen, da es den De-facto-Standard für die Orchestrierung von Containern darstellt.

Was wäre nun, wenn man die Möglichkeiten beider Welten zusammenführen würde und eine Plattform hätte, die die Eigenschaften von Serverless und das ausgereifte Container- und Anwendungsmanagement von Kubernetes verbindet? Es gibt einige, die das versuchen: Zum einen gibt es sogenannte Function-as-a-Service-(FaaS-)Frameworks wie OpenWhisk, Kubeless und OpenFaaS oder Platform-as-a-Service-(PaaS-)Frameworks wie CloudFoundry.

FaaS-Frameworks bieten dem Nutzer die Möglichkeit, eine Funktion buchstäblich im programmatischen Sinne zu deployen. Diese Funktion wird dann als Antwort auf ein Event ausgeführt. PaaS-Frameworks hingegen sind eher auf langlaufende Prozesse fokussiert, die über eine HTTP-Schnittstelle verfügbar sind. Beide Ansätze haben in der Regel einen Mechanismus, der aus einem Stück Quellcode eine deploybare Einheit erzeugt. All diese Frameworks konzentrieren sich also letztlich auf einen bestimmten Typus von Workload und unterscheiden sich in der Art und Weise ihrer Nutzung teilweise erheblich.

Und was wäre nun, wenn es eine Plattform geben würde, die sowohl langlaufende Anwendungen als auch sehr kurzlebige Funktionen und generell Anwendungen jeglicher Größe in einer gemeinsamen Topologie und Terminologie vereint?

Willkommen bei Knative!

Knative ist ein Open-Source-Projekt, das von Google inittiert und von einigen weiteren Riesen der Branche unterstützt wird. Dazu zählen unter anderem Pivotal, IBM, Red Hat und SAP, um nur einige zu nennen. Die Beteiligten bezeichnen Knative als einen Satz von Kubernetes-basierten Middlewarekomponenten, die den Bau moderner, quellcodezentrierter und containerbasierter Anwendungen ermöglichen. Es wurde inspiriert von anderen Kubernetes-basierten Frameworks im selben Umfeld (s. o.), fasst all deren Best Practices in einem Framework zusammen und erfüllt die genannten Anforderungen:

  1. Es ist Kubernetes-nativ (daher auch der Name Knative) und arbeitet wie eine Erweiterung von Kubernetes.
  2. Es deckt alle möglichen Arten von Serverless Workloads ab.
  3. Es fasst all diese Workloads unter einer gemeinsamen Topologie und Terminologie zusammen.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin 1.19 - "Knative: Kubernetes goes Serverless"

Alle Infos zum Heft
579869944Serverless Workloads auf Kubernetes mit Knative
X
- Gib Deinen Standort ein -
- or -