Suchen

Definition zur Open-Source-Plattform für serverlose, cloud-native Anwendungen Was ist Knative?

Knative ist ein Open-Source-Projekt für serverlose, cloud-native Anwendungen. Die Software basiert auf der Container-Orchestrierungssoftware Kubernetes und erweitert die Software um die für Bereitstellung, Verwaltung und Betrieb von serverlosen Anwendungen benötigten Funktionskomponenten. Die Vorteile der Container-Technik und der Serverless-Architekturen lassen sich mit Knative verknüpfen.

Firma zum Thema

Hinter dem Begriff „Knative“ verbirgt sich eine auf Kubernetes basierende Plattform für Microservices, Open Source versteht sich.
Hinter dem Begriff „Knative“ verbirgt sich eine auf Kubernetes basierende Plattform für Microservices, Open Source versteht sich.
(Bild: gemeinfrei (© Gerd Altmann / pixabay) / Pixabay )

Knative ist ein Open-Source-Projekt, an dessen Entwicklung zahlreiche Unternehmen wie Google, IBM, Red Hat und viele weitere mitgearbeitet haben. Es handelt sich um eine Open-Source-Plattform zur Realisierung von serverlosen, cloudnativen Anwendungen. Erstmals offiziell vorgestellt wurde Knative im Jahr 2018 von Google.

Die Software basiert auf der Container-Orchestrierungssoftware Kubernetes. Sie erweitert Kubernetes um verschiedene Funktionskomponenten, mit denen sich serverlose Anwendungen bereitstellen, verwalten und betreiben lassen. Die Grundlage zur Realisierung von cloud-nativen, serverlosen Anwendungen bilden die in Container verpackten Microservices. Die mit Kubernetes orchestrierten Container lassen sich auf beliebigen Umgebungen betreiben. Für die serverlose Anwendung spielt es keine Rolle, ob die Container in einer Cloud-Umgebung, in einem Rechenzentrum eines Dienstleisters oder lokal On-Premises betrieben werden.

Für Entwickler bietet sich der Vorteil, dass sie sich vollständig auf das Schreiben des Programmcodes konzentrieren können und sich nicht um die Bereitstellung einer Infrastruktur oder einzelner Server und Container kümmern müssen. Da die Container nahezu beliebig zwischen den Plattformen und Umgebungen portierbar sind, ergibt sich eine große Flexibilität in der Bereitstellung der serverlosen Infrastruktur. Die Vorteile der Container-Technologie und des Modells der serverlosen Anwendungen werden in der Knative-Plattform vereint. Gepflegt und weiterentwickelt wird die Knative-Software von einer großen Open-Source-Community. Die Software steht unter der Lizenz Apache 2.0 und ist über GitHub kostenlos verfügbar. Für ein besseres Verständnis von Knative folgt zunächst ein kurzer Überblick über die Grundzüge der Container-Orchestrierungssoftware Kubernetes und das Serverless Computing:

Grundsätzliches zu Kubernetes

Ursprünglich wurde Kubernetes wie Knative auf Initiative von Google entwickelt. Es handelt sich um eine Open-Source-Software zur Orchestrierung von Containern. Mit Hilfe von Kubernetes lassen sich Container wie Docker-Container automatisiert einrichten, betreiben, skalieren und warten. Kubernetes wird von zahlreichen Cloud-Computing-Plattformen wie Microsoft Azure, Amazon Web Services (AWS), Google Cloud oder Oracle Cloud Infrastructure unterstützt.

Die verschiedenen Container-Einheiten werden zu Clustern zusammengefasst, die aus physischen oder virtuellen Nodes bestehen und im Master-Slave-Modus arbeiten. 2015 spendete Google das Projekt Kubernetes an die Cloud Native Computing Foundation (CNCF). Sie ist heute für die Weiterentwicklung der Software zuständig.

Grundsätzliches zum Serverless Computing

Serverless Computing ist ein noch recht junges Computing-Modell zur Realisierung, Bereitstellung und Ausführung von Anwendungen. Mit Serverless Computing lassen sich Anwendungen bereitstellen und betreiben, ohne dass die zugrundeliegende Infrastruktur mit ihren Servern von den Entwicklern besonders berücksichtigt werden muss. Die Infrastruktur für den Betrieb der Anwendungen ist abstrahiert und für die Nutzer der Plattformen in ihren einzelnen Bestandteilen unsichtbar.

In Verbindung mit der Container-Orchestrierungssoftware Kubernetes ist es aus Anwendungssicht nicht erkennbar, wo und wie die Cluster betrieben und welche Container konkret genutzt werden. Serverless Computing bietet den Vorteil, dass sich Entwickler auf die Programmierung des Quellcodes konzentrieren können und sich keine Gedanken um die zugrundeliegende Infrastruktur oder den Betrieb von Servern machen müssen. Knative erweitert Kubernetes um die für Serverless Computing benötigten Funktionskomponenten.

Die verschiedenen Komponenten von Knative

Knative erweitert Kubernetes um verschiedene Funktionen für Serverless Computing, die sich in die folgenden drei Hauptkomponenten einteilen lassen:

  • Build (Erstellungsfunktionen): zum Beispiels Container-basierte Entwicklung des Quellcodes
  • Serving (Betriebsfunktionen): zum Beispiel automatisierte Bereitstellung und Skalierung der Container
  • Eventing (Funktionen zur Verwaltung von Ereignissen): zum Beispiel Verbindung von Ereignisquellen und Ereignisverbrauchern über eine geeignete Infrastruktur

Aufgabe der Build-Komponente ist es unter anderem, Quellcode in Containern zu erstellen, zu testen und in den Betrieb zu überführen. Über sogenannte Build-Packs und Build-Templates werden die Container standardisiert und portabel sowie mehrfach verwendbar erzeugt. Die Build-Komponente verfolgt einen modularen Ansatz und erlaubt den Einsatz von Vorlagen.

Über die Komponente Serving lassen sich Container in einem Cluster deployen und beliebig skalieren. Zum Routing der Workloads wird Istio verwendet, das ein offenes, plattformunabhängiges Service Mesh zur Verfügung stellt. Anfragen werden über die Routing-Fähigkeiten der Serving-Komponente flexibel an die einzelnen Services weitergeleitet.

Die Eventig-Komponente stellt die Funktionen zur Verwaltung der Ereignisse zur Verfügung. Die Anwendungen werden in einem ereignisgesteuerten Modell ausgeführt. Über das Eventing lassen sich Ereignisquellen mit den Ereignisverbrauchern flexibel koppeln. Knative organisiert das Queueing und liefert die Ereignisse an die Container-basierten Services aus. Darüber hinaus werden Eventing-Schnittstellen für weitere Dienste zur Verarbeitung von Daten- und Ereignisströmen wie Apache Kafka bereitgestellt.

Vorteile von Knative und Serverless Computing mit der Container-Orchestrierungssoftware Kubernetes

Durch den Einsatz von Knative und Kubernetes müssen keine Server konfiguriert oder verwaltet werden. Entwickler können sich ganz auf das Programmieren konzentrieren, ohne sich um die Bereitstellung und Integration der Infrastruktur kümmern zu müssen. Code wird als Container-Image paketiert und an das System übergeben. Knative startet die Instanzen für die serverlosen Anwendungen nur, wenn sie benötigt und angesprochen werden und stoppt sie anschließend wieder. Dies spart Computing-Ressourcen und Betriebskosten. Knative lässt sich mit allen Cloud-Computing-Plattformen nutzen, die Kubernetes unterstützen. Darüber hinaus ist die Einbindung von lokal oder On-Premises betriebenen Kubernetes-Clustern möglich. Die einzelnen serverlosen Arbeitslasten können dort betrieben werden, wo sie am effektivsten arbeiten. Sie lassen sich beliebig zwischen den Plattformen verschieben. Grundsätzlich spielt die zugrundeliegende Plattform, ob Public Cloud, Private Cloud oder On-Premises, für die serverlosen Anwendung keine Rolle. Es ergibt sich eine große Flexibilität in der Realisierung der Anwendungen. Die Abhängigkeit von einem einzelnen Anbieter wird vermieden. Weitere Vorteile von Knative und Serverless Computing mit der Container-Orchestrierungssoftware Kubernetes sind:

  • Vorteile der Container-Technologie und der Serverless-Architekturen werden durch Knative gleichzeitig nutzbar
  • Zahlreiche Cloud-Computing-Plattformen, -Anbieter, Container-Engines und Frameworks werden unterstützt
  • Entwicklungszeiten für Anwendungen verkürzen sich
  • Anwendungen lassen sich schneller in den Betrieb überführen
  • Knative bietet einen einfachen Einstieg in das Serverless Computing
  • gute Skalierbarkeit der Anwendungen
  • integrierte Sicherheitsmechanismen
  • einfache, modulare Integration von Funktionalitäten über die Knative-Komponenten Build, Serving und Eventing

(ID:46387094)

Über den Autor