Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages
Filter by Categories
Investor blog
Blog

Choose your region

Selecting a region changes the language and/or content on Nortal.com

Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages
Filter by Categories
Investor blog
Blog

Verwalten von serverlosen Arbeitslasten mit Knative

Nortal Cloud Team, March 16, 2020

Das Momentum des Softwaremarktes ist auf Seite der Container. Tatsächlich sieht ein kürzlich veröffentlichter IHS-Marktbericht die Einnahmen für diesen Markt bis 2023 auf über 1,6 Milliarden Dollar anwachsen.

Wo kommt hier Kubernetes ins Spiel? Während Kubernetes eine zusätzliche Komplexität in Bezug auf die manuelle Konfiguration von Softwareabhängigkeiten, die Vernetzung und die Fehlerbehebung mit sich bringt, wurde es geschaffen, um das Containermanagement und die Orchestrierung zu verbessern. Die Nutzung von Kubernetes schießt in die Höhe, da man dank der Cluster sichergehen kann, dass jede Anwendung auf die gleiche Weise funktionieren wird.

Was ist also Kubernetes? Kubernetes wurde als Open-Source-Plattform konzipiert, die sich am besten als Managementwerkzeug für containerisierte Arbeitslasten und Dienste eignet. Die einzige Herausforderung bei Kubernetes ist, dass es das Leben der Entwickler etwas schwieriger und unbequemer machen kann. Die Entwickler müssen sich mit Fehlerbehebungen, Refactoring von Software und der Entwicklung neuer Anwendungen beschäftigen, sodass oft keine Zeit zur eigentlichen Auseinandersetzung mit Kubernetes bleibt und die Potenziale nicht voll ausgeschöpft werden können.

Da Kubernetes eher wie ein Betriebssystem funktioniert, erfordert es andere Fähigkeiten als die, die mit einer klassischen Entwicklerrolle verbunden sind. Weitere Konzepte, die Entwickler möglicherweise erst erlernen müssen, bevor sie aktiv mit Kubernetes arbeiten können, sind unter anderem:

  • Virtualisierung
  • Container
  • Pods
  • Services
  • Replication Controller
  • Linux
  • Command line interface (CLI)

Was ist die neue Lösung? Knative. Eyal Manor, Vizepräsident im Bereich Engineering der Google Cloud Plattform, kündigte im Juli 2018 das Debüt von Knative als Teil ihrer Kampagne an, die darauf abzielt, „Entwicklern das Beste aus dem Bereich der Serverlosigkeit“ zu bieten. Andere Unternehmen, die zu Knative beigetragen haben, sind IBM, SAP, Pivotal (von VMware übernommen) und Red Hat (jetzt im Besitz von IBM).

Als eine Reihe von Erweiterungen für Kubernetes können Sie Knative zur automatischen Skalierung, zur Automatisierung der Containererstellung, zur schnellen Erstellung von Eventing-Funktionen und zum Zugriff auf die serverlose Plattform Kubernetes verwenden. Wenn Sie die Lebenszyklen von Hunderten von Containern aktualisieren möchten, hilft es, die Effizienz durch Automatisierung zu verbessern. Außerdem ist Knative eine portable Orchestrierungsplattform.

Serverlosigkeit verstehen

Viele werden durch den Begriff „Serverlosigkeit“ verwirrt, man könnte denken, dass die Funktionen auch ohne einen Server funktionieren können – dies ist nicht der Fall. Obwohl für serverloses Arbeiten Server erforderlich sind, wurde der Name geprägt, weil Anwendungsentwickler diese Server weder sehen noch die Attribute definieren müssen. Als Cloud-Native Technik und als Functions-as-a-Service wurde die Serverlosigkeit zunächst durch Amazon Web Services Lambda im Jahr 2014 eingeführt. Mit Lambda hatten die Entwickler die Möglichkeit, neue Aufgaben zu erstellen, die in Containern ausgeführt werden konnten, skalierbar waren und auch beendet wurden, wenn die Funktion abgeschlossen war. Das machte die Nutzung von Serverlosigkeit für die Entwicklung und Wartung von Anwendungen kosteneffizienter.

Jetzt, da Serverlosigkeit immer mehr zum Mainstream wird, haben die Entwickler festgestellt, dass die Infrastruktur für Container und/oder virtuelle Maschinen weniger komplex ist als in der Vergangenheit. Bei der Verwendung funktionaler Programmierwerkzeuge und -sprachen können Entwickler Anwendungen erstellen, die Modelle der traditionellen Programmierung unterstützen. Serverlos funktioniert als eine funktionale Mikroservicearchitektur. Entwickler können für alle Rechenressourcen bezahlen, die von einer Anwendung verwendet werden. Mit anderen Worten, sie bietet eine bedarfsähnliche Preisgestaltung. Einige Anwendungsfälle können z.B. zustandslose Anwendungen, Anfragebeantwortung, Spracherkennung und Gesichtserkennung umfassen.

Serverlose Vereinfachung durch Knative

Serverlosigkeit geht das Problem der Komplexität nicht vollständig an, insbesondere wenn es sich um den Umgang mit den verschiedenen Angeboten von Cloud-Anbietern handelt. Mit Knative erhalten Sie drei wichtige Module: Eventing, Serving und Build. Mit diesen Modulen können Sie eine anwendungsunabhängige und serverlose Plattform aufbauen. Ferner können Sie die serverlosen Funktionen durch Monitoring, Observability, Tracing, Microservices und viele mehr erweitern.

Da Kubernetes containerbasiert ist, führt es intensive Arbeiten, wie z.B. die fortlaufende Bereitstellung von Updates, automatisierte Auslieferungen oder das Anwendungsmanagement aus. Wenn ein Prozess innerhalb des Containers abstürzt, erkennt Kubernetes das und startet die zugehörigen Dienste neu. Durch das Service-Mesh werden das Routing mit Steuerung des Traffics, das Durchführen von Wiederholungsversuchen pro Anfrage und die Service Discovery ermöglicht.

Mit Knative können Entwickler containerisierte Anwendungen erstellen, die keine tieferen Kenntnisse des zugrundeliegenden Kubernetes-Clusters erfordern. Knative gibt Entwicklern auch die Kontrolle über ihre Auslieferung und verringert gleichzeitig die Komplexität. Wie arbeiten sie zusammen? Kurz gesagt, Knative wird in einem Kubernetes-Cluster installiert und fungiert als ein Layer über Kubernetes.

Kubernetes und Knative sind anders als jedes andere Open-Source Container-Orchestrierungstool in der Branche. Zusammen bieten diese Tools die Möglichkeit, ein Cluster von Containern als ein einziges System zu verwalten und eine Plattform für serverlose Arbeitslasten zu schaffen.

Die Herausforderungen von Knative

Eines der prominentesten Hindernisse bei serverlosen und containerisierten Arbeitslasten ist die Sichtbarkeit. Es gibt viele Tools von Drittanbietern, die bei der Lösung dieses Problems helfen können. Die meisten konzentrieren sich auf das Throughput/Traffic Monitoring oder das Cluster (Pod/Node) Monitoring. Diese Tools reichen in Preis und Support von Open-Source Optionen bis hin zu vollständig verwalteten und gehosteten Lösungen. Bei dieser Entscheidung sollten die Kosten, der Grad der Unterstützung, die Fähigkeiten des Teams und die erforderliche Sichtbarkeit berücksichtigt werden.

Die Haupteinschränkung bei der Verwendung von Knative besteht darin, zuerst Kubernetes auszuführen können zu müssen. Ihre Organisation muss ein gutes Verständnis dafür haben, wie man aktiv mit Kubernetes arbeitet und Kubernetes verwaltet. Wenn Ihre Organisation bereits mit Kubernetes vertraut ist, dann ist die Komplexität des Hinzufügens von Knative so einfach wie YAML und nur einige wenige Befehle reichen.

Da Knative noch recht neu ist, werden Best Practices noch entwickelt und getestet. Dennoch möchten Sie bei serverlosen Arbeitslasten sicherstellen, dass Sie über starke Tests verfügen – insbesondere da die Integrationstests sehr umfangreich sind. Sie möchten schließlich, dass das Ziel umgesetzt wird.

Warum sollte ich Knative nutzen?

In zwei Worten: Leichte Bedienbarkeit. Die Teams müssen weniger Manifest-Dateien schreiben, wodurch die Codezeilen reduziert werden. Zurzeit schieben viele Unternehmen die Erstellung der Manifest-Dateien auf ihr Operations-Team ab. Dies ist keine optimale Vorgehensweise, da es das Wissen um die Anwendungskonfiguration vom Deployment trennt. Durch die Verwendung von Knative kann sich das Operations-Team auf das Cluster-Management konzentrieren, während die Entwickler ein einfaches, oft dreizeiliges Deployment schreiben können.

Knative ist wirklich eine „out of the box“-Lösung. Während Kubernetes die Verwaltung von Containern ermöglicht, bietet Knative die Möglichkeit, eine serverlose Anwendung zu erstellen und auszuliefern. Ein großer Vorteil ist die Möglichkeit des Traffic Routings. Dies ermöglicht ein einfaches Blue-Green oder Canary Deployment von einem CI/CD-Tool in Kubernetes.

Knative nimmt den Entwicklern auch Teile des Arbeitsablaufs und des Entwicklungsprozesses weg. Früher hätten Sie zur Überwachung von Container-Builds benutzerdefinierten Code schreiben müssen, anstatt manuelle Prozesse zur Fehlerbehebung zu verwenden. Sie mussten sich an eine cloudbasierte serverlose Plattform halten, die eine spezielle Kubernetes-Integration bot. Mit Knative müssen Sie sich keine Sorgen mehr über benutzerdefinierte Codierung, manuelles Management und Anbieterbindung machen.

Jeder Kunde, mit dem Nortal arbeitet, benutzt bereits Kubernetes. Wenn Sie so wollen ist Knative die nächste Iteration, der nächste Schritt vorwärts. Wir rechnen damit, dass in den nächsten 3-5 Jahren die Knative-Dienste von vielen übernommen und angewandt werden. Dazu gehören Dienste wie Cloud Run auf GCP oder TriggerMesh KLR auf AWS.

Knative ist die Zukunft von Kubernetes. Aus welchem Grund? Knative erspart einen hohen Managementaufwand, indem viele Best Practices bereits in dem Programm verarbeitet sind. Außerdem verringert Knative das Risiko. Die Reduzierung von zu schreibendem Code ist für ein Entwicklerteam von großer Bedeutung und wird sehr geschätzt. Ferner sind es dank der Reduzierung des Codes in der Auslieferungspipeline nicht mehr vollständig auf die Hilfe eines Tools angewiesen. Alles, was das Leben der Entwickler erleichtert, wird eine breite Akzeptanz finden.

Knative befreit die Entwickler von der mühsamen Erstellung und Wartung ihrer eigenen Erweiterungen für Kubernetes. Was uns betrifft, so ist es jetzt an der Zeit, mit der Entdeckung von Knative zu beginnen. Kontaktieren Sie Nortal, um noch heute mit der Umsetzung von Knative zu starten.