© Excellent backgrounds/Shutterstock.com
Java Magazin
Cloudnative Java-Anwendungen mit Tekton entwickeln

Tekton-Tutorial

Früher war Java in der Lage, die größten Probleme eines Unternehmens mit dem Paradigma „write once, run anywhere“ (WORA) zu bewältigen. Im Zuge von Phänomenen wie Serverless, der Popularität von cloudnativen Anwendungen und der Ausführung von Anwendungen als Linux-Container wurde Java von Sprachen wie Go und Node.js - den Vorreitern für den Aufbau von cloudnative Anwendungen - zurückgedrängt, da diese kleiner, schneller und wohl auch agiler sind.

Kamesh Sampath


Als ich analysiert habe, warum Entwickler keine Kubernetes- bzw. cloudnativen Java-Applikationen entwickeln möchten, bin ich auf die folgenden möglichen Gründe gestoßen:

Java-Anwendungen starten nur langsam. Wie erstellt man Java-Anwendungscontainer (damit meine ich hier einen Linux-Container, der Java-Anwendungen ausführen kann) am besten? Der letzte Punkt ist Gegenstand des Abschnitts „Pipelines“ – wobei sich die herkömmliche Java-Enterprise-­Welt an Pipelines über Plattformen wie Jenkins, Bamboo usw. soweit gewöhnt hat, dass Pipelines für die beste Lösung gehalten werden, um cloudnative Java-Anwendungen auszuführen.

Ich werde nicht auf die ersten beiden Punkte eingehen, da sie einfach zu lösen sind, wenn man Quarkus [1] und eine Enterprise-Kubernetes-Distribution [2] wie Open­Shift [3] verwendet.

Was ist also mit den Pipelines? Die erste Frage, die Ihnen wahrscheinlich in den Sinn kommt, ist: „Warum kann ich nicht die vorhandenen Tools nutzen?“ Natürlich können Sie das. Aber bedenken Sie auch Faktoren wie die Ausführung als Container, Scale on Demand und schließlich eine Integration in DevOps.

Die einfache Lösung heißt Tekton [4]. Tekton wurde unter Berücksichtigung der folgenden Punkte entwickelt:

Container – für Containeranwendungen, die auf Kubernetes laufen Serverless – läuft serverless ohne CI/CD-Engine zur Verwaltung und Wartung DevOps – entwickelt mit Blick auf Microservices und verteilte Teams

Tekton Pipelines installieren

Voraussetzungen sind:

Ein Kubernetes-Cluster [5] (oder https://try.openshift.com) mit installierter Tekton-Anwendung Wenn Minikube die interne Containerregistrierung bereitgestellt hat, lesen Sie die Registry-Hilfe [6] Laden Sie das Tekton CLI [7] herunter und fügen Sie es dem Pfad hinzu

Demoquellen

Zur Demonstration der Pipelines verwenden wir eine einfache, mit Quarkus [1] erstellte Java-Hello-World-Anwendung und klonen die Demoquellen lokal:

git clone https://https://github.com/kameshsampath/pipeline-helloworld && \cd pipeline-helloworld && \export DEMO_HOME=`pwd`

Hinweis: Zur leichteren Orientierung nennen wir das geklonte Git Repository HOME:

$DEMO_HOME

Tekton-Konzepte

Bevor wir mit der Bereitstellung unserer Demo beginnen, ist es von Vorteil, wenn wir die mit Tekton definierten Kubernetes-Ressourcen oder -Objekte kennen. Alles in Tekton wird mit Custom Resources (CRD) [8] definiert. Mit diesen benutzerdefinierten Ressourcen kann Tekton alles definieren, was mit Kubernetes- bzw. cloudnativen Pipelines zusammenhängt.

Pipeline-Ressou...

Java Magazin
Cloudnative Java-Anwendungen mit Tekton entwickeln

Tekton-Tutorial

Früher war Java in der Lage, die größten Probleme eines Unternehmens mit dem Paradigma „write once, run anywhere“ (WORA) zu bewältigen. Im Zuge von Phänomenen wie Serverless, der Popularität von cloudnativen Anwendungen und der Ausführung von Anwendungen als Linux-Container wurde Java von Sprachen wie Go und Node.js - den Vorreitern für den Aufbau von cloudnative Anwendungen - zurückgedrängt, da diese kleiner, schneller und wohl auch agiler sind.

Kamesh Sampath


Als ich analysiert habe, warum Entwickler keine Kubernetes- bzw. cloudnativen Java-Applikationen entwickeln möchten, bin ich auf die folgenden möglichen Gründe gestoßen:

Java-Anwendungen starten nur langsam. Wie erstellt man Java-Anwendungscontainer (damit meine ich hier einen Linux-Container, der Java-Anwendungen ausführen kann) am besten? Der letzte Punkt ist Gegenstand des Abschnitts „Pipelines“ – wobei sich die herkömmliche Java-Enterprise-­Welt an Pipelines über Plattformen wie Jenkins, Bamboo usw. soweit gewöhnt hat, dass Pipelines für die beste Lösung gehalten werden, um cloudnative Java-Anwendungen auszuführen.

Ich werde nicht auf die ersten beiden Punkte eingehen, da sie einfach zu lösen sind, wenn man Quarkus [1] und eine Enterprise-Kubernetes-Distribution [2] wie Open­Shift [3] verwendet.

Was ist also mit den Pipelines? Die erste Frage, die Ihnen wahrscheinlich in den Sinn kommt, ist: „Warum kann ich nicht die vorhandenen Tools nutzen?“ Natürlich können Sie das. Aber bedenken Sie auch Faktoren wie die Ausführung als Container, Scale on Demand und schließlich eine Integration in DevOps.

Die einfache Lösung heißt Tekton [4]. Tekton wurde unter Berücksichtigung der folgenden Punkte entwickelt:

Container – für Containeranwendungen, die auf Kubernetes laufen Serverless – läuft serverless ohne CI/CD-Engine zur Verwaltung und Wartung DevOps – entwickelt mit Blick auf Microservices und verteilte Teams

Tekton Pipelines installieren

Voraussetzungen sind:

Ein Kubernetes-Cluster [5] (oder https://try.openshift.com) mit installierter Tekton-Anwendung Wenn Minikube die interne Containerregistrierung bereitgestellt hat, lesen Sie die Registry-Hilfe [6] Laden Sie das Tekton CLI [7] herunter und fügen Sie es dem Pfad hinzu

Demoquellen

Zur Demonstration der Pipelines verwenden wir eine einfache, mit Quarkus [1] erstellte Java-Hello-World-Anwendung und klonen die Demoquellen lokal:

git clone https://https://github.com/kameshsampath/pipeline-helloworld && \cd pipeline-helloworld && \export DEMO_HOME=`pwd`

Hinweis: Zur leichteren Orientierung nennen wir das geklonte Git Repository HOME:

$DEMO_HOME

Tekton-Konzepte

Bevor wir mit der Bereitstellung unserer Demo beginnen, ist es von Vorteil, wenn wir die mit Tekton definierten Kubernetes-Ressourcen oder -Objekte kennen. Alles in Tekton wird mit Custom Resources (CRD) [8] definiert. Mit diesen benutzerdefinierten Ressourcen kann Tekton alles definieren, was mit Kubernetes- bzw. cloudnativen Pipelines zusammenhängt.

Pipeline-Ressou...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang