Saisissez la véritable puissance de CI/CD avec Tekton et Kubernetes Pipelines
L’introduction des pipelines Kubernetes (Tekton) a révolutionné la façon dont nous gérons les flux de travail CI/CD dans le développement logiciel. L’ajout de Tekton, le framework natif de Kubernetes, nous a donné plus de puissance et de flexibilité dans la création et la gestion des pipelines. Cet article se concentre sur l’importance de Kubernetes Pipelines et de Tekton sur Red Hat OpenShift, et sur la manière dont ces outils peuvent vous aider à rendre votre processus de développement véritablement continu.
Qu’est-ce qu’un pipeline ?
Un pipeline est un processus automatisé qui conduit le logiciel à travers les étapes de construction, de test et de déploiement du cycle de vie du développement logiciel. En d’autres termes, un pipeline exécute le flux de travail d’intégration continue et de livraison continue (CI/CD). Il gère automatiquement les tâches d’exécution de la suite de tests, d’analyse du code, de création de binaires, de conteneurisation et de déploiement des modifications dans le nuage ou dans les solutions sur site.
Pourquoi construire des pipelines avec Kubernetes ?
Alors que le monde du développement s’oriente vers des applications basées sur des microservices plutôt que sur des applications monolithiques, le processus CI/CD est devenu véritablement continu avec des mises à jour incrémentielles de la base de code qui peuvent être déployées indépendamment.
Dans un tel contexte, Kubernetes simplifie le processus de création et de maintenance des pipelines CI/CD. Il déploie chaque microservice sur un seul cluster Kubernetes et maintient plusieurs copies de chaque microservice pour servir de versions dev, test et prod.
Avec les pipelines Kubernetes, vous n’avez plus besoin de reconstruire l’ensemble de l’application à chaque construction. Au lieu de cela, Kubernetes met à jour le conteneur du microservice et le déploie via le pipeline défini. Il n’est plus nécessaire d’écrire des scripts de construction, car Kubernetes gère automatiquement le processus avec seulement quelques options de configuration que nous fournissons. Cela réduit le risque d’erreurs humaines dans le flux de travail CI/CD.
Qu’est-ce que Tekton ?
Tekton vous permet de faire passer les pipelines Kubernetes au niveau supérieur. Il s’agit d’un cadre open-source, natif de Kubernetes, pour le développement de pipelines CI/CD. Tekton fournit des extensions aux définitions de ressources personnalisées (CRD) dans Kubernetes pour faciliter la création et la normalisation des pipelines. Il dispose d’un support intégré pour le couplage avec les outils CI/CD existants dans le secteur, tels que Jenkins, Jenkins X, Skaffold, Knative et OpenShift.
L’intégration OpenShift de Tekton, baptisée OpenShift Pipelines, apporte encore plus de puissance et de souplesse à ce système grâce aux outils de développement RedHat et OpenShift.
Pourquoi utiliser Tekton ?
Les pipelines Tekton utilisent les clusters Kubernetes comme type de première classe et les conteneurs comme principaux éléments constitutifs. La nature découplée de Tekton garantit que vous pouvez utiliser un seul pipeline pour déployer sur des clusters Kubernetes distincts. Il est ainsi plus facile de déployer des services sur plusieurs solutions en nuage fournies par différents fournisseurs, voire sur des systèmes sur site.
Tekton vous permet d’exécuter les tâches automatisées de manière isolée, sans être affecté par d’autres processus en cours dans le même système. Une autre spécialité de Tekton est la flexibilité qu’elle offre pour changer de ressources, telles que les dépôts GitHub, entre deux exécutions du pipeline.
Il facilite également la mise en œuvre du pipeline en fonction du type de ressource. Par exemple, vous pouvez mettre en place une implémentation unique pour gérer les images.
Tekton couplé à OpenShift assure la haute disponibilité du système en permettant à chaque unité d’évoluer indépendamment à la demande. De plus, vous bénéficiez d’outils de journalisation et de surveillance améliorés et de fonctions d’autorétablissement rapides intégrées à Kubernetes.
Comment fonctionne Tekton ?
Tekton fournit des CRD de style Kubernetes pour déclarer les pipelines CI/CD. Les ressources sont déclarées dans un yaml qui est, généralement, stocké avec le dépôt de code. Nous allons examiner les CRD de base qui sont essentiels lors de la création de pipelines.
Tâche
Une tâche est la plus petite unité configurable dans un pipeline Tekton. C’est similaire à une fonction qui accepte un ensemble d’entrées et produit certains résultats. Chaque tâche peut être exécutée soit individuellement et indépendamment, soit en tant que partie du pipeline. Une commande exécutée par une tâche est appelée une étape. Chaque tâche consiste en une ou plusieurs étapes. Tekton exécute chaque tâche dans son propre pod Kubernetes.
Pipeline
Un pipeline est constitué d’un certain nombre de tâches qui forment le flux de travail automatisé final de CI/CD. En plus des Tâches, il contient également des PipelineResources. Ils sont fournis comme entrées et sorties aux tâches du pipeline.
PipelineResource
Une PipelineResource est un objet qui est utilisé comme entrée ou sortie d’une tâche. Par exemple, si la tâche accepte un dépôt GitHub en entrée et construit et produit l’image Docker correspondante, les deux sont déclarés comme objets PipelineResource.
PipelineRun
Un PipelineRun est une instance d’une Pipeline qui est en cours d’exécution. Il initie l’exécution de la Pipeline et gère les PipelineResources transmises aux Tasks comme entrées et sorties.
TaskRun
Un TaskRun est une instance en cours d’exécution d’une tâche. PipelineRun crée des objets TaskRun pour chaque tâche du pipeline afin de lancer l’exécution.
Déclencheur
Un Trigger est un événement externe qui déclenche le workflow CI/CD. Par exemple, une demande de retrait Git peut servir de déclencheur. Les informations transmises avec la charge utile de l’événement sont ensuite utilisées pour déclencher les tâches du pipeline.
Condition
Les conditions sont similaires aux instructions if de la programmation régulière. Ils effectuent un contrôle de validation par rapport aux conditions fournies et renvoient une valeur True ou False. Le pipeline vérifie ces conditions avant d’exécuter une tâche. Si la condition renvoie Vrai, la tâche est exécutée, et si elle renvoie Faux, la tâche est ignorée.
Grâce à ces composants, vous pouvez créer des pipelines complexes et entièrement automatisés pour construire, tester et déployer vos applications dans le cloud ou dans des solutions sur site.
Qui devrait utiliser Tekton ?
Les ingénieurs de plate-forme qui élaborent des flux de travail CI/CD pour les développeurs d’une organisation trouveront dans Tekton un cadre idéal pour simplifier ce processus. Les développeurs aussi peuvent créer des flux de travail CI/CD avec Tekton pour les projets de développement de logiciels et d’applications. Cela leur donne la possibilité de gérer facilement les différentes étapes du processus de développement, telles que les versions dev, test, prod du produit, avec un minimum d’intervention humaine.
Quelle est la prochaine étape ?
Reportez-vous à la documentation officielle de Tekton et OpenShift Pipelines pour en savoir plus sur la manière de configurer des pipelines CI/CD qui répondent facilement aux besoins de votre organisation.
Besoin d’aide?
Nous proposons Kubernetes et OpenShift formations et nous pouvons vous aider à acheter, déployer et gérer votre
Environnement OpenShift sur IBM Power Systems
.