Knative

Kubernetes-basierte Plattform zum Erstellen, Bereitstellen und Verwalten moderner serverloser Arbeitslasten

Wichtige Basisprimitive für alle

Knative wurde ursprünglich von Google in Zusammenarbeit mit mehr als 50 verschiedenen Unternehmen entwickelt. Der Dienst bietet verschiedene grundlegende Komponenten zum Erstellen und Ausführen von serverlosen Anwendungen in Kubernetes. Knative bietet Features wie Scale-to-Zero, Autoscaling, In-Cluster-Builds und Eventing-Frameworks für cloudnative Anwendungen in Kubernetes. Ob lokal, in der Cloud oder im Rechenzentrum eines Drittanbieters – Knative setzt Best Practices um, die aus erfolgreichen, auf Kubernetes basierenden Frameworks weitergegeben werden. Der Hauptvorteil von Kubernetes besteht jedoch darin, dass sich Entwickler auf das Schreiben von Code konzentrieren können, ohne sich um die mühseligen Aufgaben beim Erstellen, Bereitstellen und Verwalten einer Anwendung kümmern zu müssen.

Entwicklerfreundliche Software

Knative bietet eine Reihe wiederverwendbarer Komponenten, die sich auf die Lösung vieler alltäglicher, aber schwieriger Aufgaben konzentrieren, z. B. die Erstellung von Anwendungen vom Quellcode bis hin zu Container-Images, die Weiterleitung und Verwaltung von Traffic während des Deployments, die automatische Skalierung von Arbeitslasten oder die Anbindung laufender Dienste an das wachsende System aus Ereignisquellen. Knative erkennt Container-Images als Deployment-Einheit an. Entwickler können daher jede Sprache und jedes Framework verwenden, mit dem sie vertraut sind.

Unterstützung gängiger Entwicklungsmuster

Der Schwerpunkt bei Knative ist eine idiomatische Entwicklererfahrung. Knative unterstützt gängige Entwicklungsmuster wie GitOps, DockerOps, ManualOps sowie Tools und Frameworks wie Django, Ruby on Rails, Spring und viele mehr.

Das Beste aus zwei Welten: Flexibilität und Kontrolle

Knative wurde für eine problemlose Einbindung in bestehende Build- und CI/CD-Toolchains entwickelt. Wenn Unternehmen ihren Schwerpunkt auf Open-Source-First-Technologien legen, die für jede Cloud und jede von Kubernetes unterstützte Infrastruktur geeignet sind, können sie ihre Arbeitslasten dorthin verlagern, wo sie am effektivsten sind. Hierdurch erhalten Kunden die benötigte Flexibilität und Kontrolle, um das System an ihre speziellen Anforderungen anzupassen.

Ausführung serverloser Arbeitslasten zu Ihren Bedingungen

Knative bietet eine offene API- und Laufzeitumgebung, mit der Sie Ihre serverlosen Arbeitslasten an beliebiger Stelle ausführen können: vollständig in der Google Cloud, in Google Kubernetes Engine (GKE) oder in Ihrem eigenen Kubernetes-Cluster. Knative ermöglicht einen einfachen Einstieg in Cloud Run und einen späteren Wechsel zu Cloud Run in GKE oder zu Ihrem eigenen Kubernetes-Cluster sowie die Migration nach Cloud Run. Durch die Verwendung von Knative als zugrunde liegende Plattform können Sie Ihre Arbeitslasten frei zwischen den Plattformen verschieben und gleichzeitig die durch den Wechsel entstehenden Kosten erheblich senken.

Knative-Komponenten

Build

  • Konfigurierbarer und flexibler Ansatz zum Erstellen von Quellcode in Containern

  • Modularer Ansatz unter Verwendung von Dockerfiles oder erstellten Vorlagen

  • Keine Cross-Kompilierung oder Notwendigkeit lokaler Build-Tools

  • Unterstützung für im Cache gespeicherte Artefakte für schnellere Builds

  • Nutzung freier Kapazitäten für eine bessere Ressourcennutzung

Serving

  • Detaillierte Abstraktion, einfache Einordnung des Objektmodells

  • Nahtlose automatische Skalierung basierend auf HTTP-Anfragen

  • Gestaffelte Rollouts für neue Überarbeitungen

  • Automatische Integration von Netzwerken und Dienst-Mesh-Netzwerken

  • Modularität: Eigene Logging- und Monitoring-Plattform verbinden

Eventing

  • Allgemeines Abo sowie allgemeine Bereitstellung und Verwaltung von Ereignissen

  • Erstellen von lose gekoppelten ereignisbezogenen Systemen mit detaillierten Objekten

  • Deklarative Bindung zwischen Ereignisproduzenten und ereignisbeanspruchenden Diensten

  • Skalierbar von wenigen Ereignissen auf Live-Streams

  • Benutzerdefinierte Ereignis-Pipelines zum Herstellen einer Verbindung mit Ihren eigenen bestehenden Systemen

Knative hilft unseren Entwicklern, sich auf den Aufbau der Geschäftslogik zu konzentrieren, statt sich mit Basisfunktionen der Plattform wie Builds, Deployment, Autoscaling, Monitoring und Sichtbarkeit beschäftigen zu müssen. Beispielsweise war unsere in Java/Vert.x entwickelte Anwendung für die T-Mobile-Filialsuche mit Knative leicht auf die GCP zu migrieren. Wir haben das in nur einem Schritt erledigt, da Knative viele Funktionen auf Plattformebene zur Verfügung gestellt und unsere Entwickler so entlastet hat.

– Ram Gopinathan, Principal Technology Architect, T-Mobile

Ressourcen

Google Cloud

Nächste Schritte

Serverlose Arbeitslasten mit Knative erstellen, bereitstellen und verwalten

Für einen schnellen Einstieg in Knative folgen Sie der Kurzanleitung zu Cloud Run. Wer eine Knative-Umgebung bereitstellen möchte, kann sich ein Installationshandbuch unter GitHub ansehen.