Tekton, JenkinsX und Spinnaker Open-Source-Tools für Cloud-native CI/CD-Pipelines

Autor / Redakteur: Thomas Joos / Stephan Augsten

Continuous-Integration- und -Delivery-Pipelines für Cloud-Anwendungen und Microservices lassen sich mit Tekton und anderen Open-Source-Tools umsetzen. Wir wagen einen Vergleich der bekanntesten Lösungen.

Firmen zum Thema

Tekton bietet im Continuous-Integration- und -Delivery-Kontext flexible Einsatzgebiete und einfache Möglichkeiten der Bereitstellung.
Tekton bietet im Continuous-Integration- und -Delivery-Kontext flexible Einsatzgebiete und einfache Möglichkeiten der Bereitstellung.
(Bild: Tekton.dev)

Wenn es um die Bereitstellung von Anwendungen in der Cloud geht, setzen immer mehr Entwickler auf Microservices. Zur Verwaltung dieser Umgebungen kommt häufig Kubernetes zum Einsatz. Der Vorteil beim Einsatz dieser Technologie besteht vor allem darin, dass ein Cloud-Lock-In vermieden wird.

Microservices-Umgebungen lassen sich nämlich ohne großen Aufwand umziehen. Um CI/CD-Umgebungen in diesem Umfeld aufzubauen, helfen in diesem Fall Tools wie Tekton. Das Projekt gehört zur Continuous Delivery Foundation, unter deren Dach auch die Projekte JenkinsX, Jenkins und Spinnaker laufen. Die Stiftung ist unterhalb der Linux Foundation angesiedelt.

Natürlich gibt es mit Travis, CircleCI und Bamboo auch andere Lösungen in diesem Bereich. Allerdings sind diese nicht für Kubernetes optimiert, was für die Bereitstellung von CI/CD-Pipelines in Microservices-Umgebungen natürlich nicht ideal ist und komplizierter ist. Entwickler und Admins müssend diese Tools manuell in die Umgebung einbinden, verwalten und aktualisieren.

Tekton, Spinnaker und JenkinX

Für Cloud-Lösungen und Kubernetes-Cluster sollten möglichst direkt in Kubernetes integrierte Lösungen für CI/CD genutzt werden. Diese unterstützen nämlich nicht nur optimal die Funktionen der Container im Allgemeinen und von Kubernetes im Besonderen, sondern greifen im Betrieb auch selbst darauf zurück. Das macht die Bereitstellung und den Betrieb sehr einfach.

Tekton lässt sich parallel zu anderen containerisierten Anwendungen in Kubernetes bereitstellen. Die verschiedenen Tekton-Pipelines sind Kubernetes-Ressources (CRDs). Diese werden auf die gleiche Weise verwaltet, wie Pods oder Deployments. Tekton ist mit GitOps kombinierbar, Pipelines und Konfigurationen lassen sich also über Git verwalten. Das bietet für die CI/CD viele flexible Einsatzgebiete und einfache Möglichkeiten der Bereitstellung.

JenkinsX ist eine Alternative zu Tekton und ermöglicht ebenfalls die kontinuierliche Bereitstellung mit Kubernetes. Die Lösung verwendet Tekton im Hintergrund und bietet zusätzliche Tools. Sollen diese Tools zum Einsatz kommen, ist es sinnvoll, auf JenkinsX zu setzen. Ansonsten genügt es auch, Tekton direkt zu verwenden. JenkinsX ist ebenfalls für Kubernetes optimiert.

Spinnaker ist als Alternative zu Tekton und JenkinsX denkbar. Auch diese Lösung kann in verschiedenen Clouds genutzt werden. Die Einbindung in Kubernetes erfolgt als Plug-in. Da hier aber, unter anderem, Tools zum Testen des Codes fehlen, ist zum Erstellen von Anwendungs-Images oder zum Pushen in die Registry ein weiteres CI-Tool notwendig.

Tekton: CI/CD-Systeme mit Open Source in Kubernetes aufbauen

Das Google-Tool Tekton bietet ein Framework für den Aufbau einer CI/CD-Pipeline in Kubernetes-Systemen. Ursprünglich wurde das Tool als „Knative Pipelines“ entwickelt und bekannt. Das Tool und der Quellcode von Tekton stehen auch auf GitHub zur Verfügung.

Eine Integration mit Lösungen wie Jenkins, Knative, Skaffolf und Jenkins X ist mit Tekton ebenfalls möglich. Tekton bietet verschiedene Module, mit denen sich CI/CD-Pipelines erstellen und verwalten lassen. Damit lassen sich problemlos Anwendungen für lokale Rechenzentren (On-Premises) erstellen. Parallel ist es aber auch möglich, die Bereitstellung in Cloud-Systemen zu planen, auch in Multi-Cloud-Umgebungen, bei denen Anwendungen über mehrere Cloud-Systeme verteilt sind.

Tekton besteht aus verschiedenen Ressourcen (CRDs). Dazu gehören Pipelines und Tasks, die Verwaltung erfolgt über der Tekton Controller. Tekton Triggers stellt EventListener, TriggerBinding und TriggerTemplate zur Verfügung Damit lassen sich Bereitstellungen auf Basis von Ereignissen mit Tekton umsetzen. Beispiele dafür sind Webhooks, zum Beispiel aus GitHib, CloudEvents oder von Cron-Jobs gesendete Ereignisse.

Das Tekton Dashboard ist eine GUI zur Überwachung der verschiedenen aller CRDs, inklusive der Tasks, Pipelines und Trigger. Die GUI ist allerdings nur optional. Tekton-Pipelines basieren natürlich ebenfalls auf Kubernetes und nutzen selbst die Bereitstellung auf Basis von Containern/Pods. Die Lösung ermöglicht auch das Erstellen von hochkomplexen Pipelines. Ebenfalls enthalten sind Tools zur Verwaltung von Artefakten sowie APIs, mit denen sich auch die Ergebnisse von Tests- und Build-Ereignissen protokollieren lassen.

Mit Tekton lassen sich robuste Images bereitstellen, Versionen verwalten und die Infrastruktur der Microservices verwalten. Auch Rollbacks sind mit Tekton möglich. Die verschiedenen Vorgänge lassen sich vollkommen automatisieren, auch über verschiedene On-Premises-Umgebungen und Cloud hinweg. Auch die verteilte Bereitstellung in lokalen Rechenzentren über virtuelle Computer ist problemlos möglich. Hier unterstützt Tekton auch VMware vSphere, Microsoft Hyper-V und andere Virtualisierer.

Tekton mit GCP, Azure und AWS nutzen

Natürlich ist Tekton vor allem in der Google Cloud Platform (GCP) sinnvoll, da Google darauf achtet, dass Tekton und Googles Kubernes Engine (GKE) sowie Container Registry in GCP optimal zusammenarbeiten. Allerdings beschränkt sich die Zusammenarbeit von Tekton mit Cloud-Lösungen nicht auf GCP.

In AWS KMS und Azure KMS beispielsweise ist das Tool ebenfalls lauffähig. In der GKE ist auch das schlüssellose Signieren mit Fulcio möglich. In AWS unterstützt Tekton DynamoDB als Speicher-Backend. Lokale Bereitstellungen mit den genannten Tools lassen sich mit Tekton ebenfalls umsetzen. Der Kubernetes-Cluster kann in der Cloud positioniert sein, muss es aber nicht.

(ID:47616653)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist