Développement et déploiement d'une application à l'aide de IBM Cloud Satellite

DevOps Insights Le service prendra fin et sera interrompu le 31 août 2026. Le service Continuous Delivery sera interrompu dans les régions suivantes le 12 février 2027 : au-syd, ca-tor, us-east. Code Risk Analyzer sera également retiré du marché dans toutes les régions à cette date. Si ces fonctionnalités ne sont pas activement utilisées dans une région donnée, elles pourraient y être supprimées plus tôt et ne plus accepter de nouvelles instances. En savoir plus

Dans ce tutoriel, vous apprendrez à créer une chaîne d'outils ouverte en utilisant IBM Cloud® Continuous Delivery et déployez votre application sous Satellite. Vous apprendrez également comment les chaînes d'outils sont implémentée dans le service Continuous Delivery et comment développer et déployer une application Web simple (application) à l'aide de chaînes d'outils.

IBM Cloud Satellite apporte des services de cloud public à n'importe quel environnement, ce qui permet aux clients ayant des exigences réglementaires strictes d'utiliser la flexibilité et l'agilité de ces services pour leur centre de données sécurisé sur site. Continuous Delivery utilise la configuration Satellite pour déployer une application sur un groupe de clusters dans IBM Cloud Satellite. Avec Satellite Config, vous créez une configuration pour spécifier les ressources Kubernetes que vous souhaitez déployer sur un groupe de clusters de serveurs Kubernetes ou Red Hat® OpenShift® on IBM Cloud® qui s'exécutent dans votre emplacement Satellite ou dans IBM Cloud.

La chaîne d'outils utilisée dans ce tutoriel implémente des pratiques DevOps standard telles que l'analyse de code, les tests d'acceptation, les pensions Git, l'intégration continue et les fonctions de distribution continue. Après avoir créé des clusters et les associer à un groupe de clusters Continuous Delivery, créez une chaîne d'outils pour modifier le code de votre application et insérer la modification sur le référentiel Git Repos and Issue Tracking. Lorsque vous appuyez les modifications sur votre repo, le pipeline de distribution basé sur Tekton construit et déploie automatiquement le code.

Tekton est un framework open source, indépendant des éditeurs et natif d' Kubernetes, que vous pouvez utiliser pour créer, tester et déployer des applications. Tekton fournit un ensemble de composants partagés permettant de créer des systèmes d'intégration continue et de livraison continue. En tant que projet open source, Tekton est géré par la Fondation Continuous Delivery. L'objectif est de moderniser la livraison continue en fournissant des spécifications industrielles pour les pipelines, les flux de travail et d'autres éléments de base. Avec Tekton, vous pouvez créer, tester et déployer des systèmes sur site ou des fournisseurs de services cloud en faisant abstraction des détails de mise en œuvre sous-jacents. Les pipelines Tekton sont intégrés à Continuous Delivery. Pour plus d'informations sur le IBM Cloud® Kubernetes Service, consultez IBM Cloud® Kubernetes Service.

Le modèle utilisé dans ce tutoriel fonctionne avec le plan standard pour Kubernetes.

Avant de commencer

Avant de commencer ce tutoriel, vérifiez que vous disposez des ressources suivantes :

  • Un compteIBM Cloud. Selon votre type de compte IBM Cloud, l'accès à certaines ressources peut être limité. Selon les limites de votre plan de compte, certaines fonctions requises par certaines stratégies de déploiement risquent de ne pas être disponibles. Pour plus d'informations sur les comptes IBM Cloud, consultez les articles Configuration de votre compte IBM Cloud et Mise à niveau de votre compte.

  • Une clé Cluster Kubernetes et une clé d'interface de programmation. Vous pouvez créer ces ressources à l'aide de l'interface utilisateur ou de l'interface de ligne de commande. La mise à disposition de ce cluster peut prendre du temps. Au fur et à mesure que le cluster est créé, il passe par les étapes de déploiement, en attente et d'opérationnalité. Pour plus d'informations sur les clusters Kubernetes, voir Clusters de Kubernetes.

  • Un groupe de clusters Satellite qui contient le cluster requis par la chaîne d'outils. La chaîne d'outils de ce tutoriel prend en charge un groupe de clusters Satellite qui ne contient qu'un seul type de cluster : un cluster Kubernetes ou un cluster Satellite.

  • Une instance du service Continuous Delivery.

  • Facultatif. Secrets stockés dans un coffre de gestion de secrets et gérés centralement à partir d'un seul emplacement. Pour plus d'informations sur le choix des différentes offres de gestion des secrets et de protection des données, voir Gestion des secrets IBM Cloud. Si vous ne disposez pas déjà d'une instance de fournisseur de coffre de gestion des secrets de votre choix, créez-vous un.

  • Facultatif. Espace de nom créé à l'aide de la ligne de commande du registre de conteneur. Pour créer un espace de nom, entrez la commande suivante à partir de la ligne de commande :

    ibmcloud cr namespace-add <my namespace>
    

    Vous pouvez également créer un espace de nom sur la page Registre de conteneur. Pour plus d'informations sur la création d'un espace de nom dans cet emplacement, voir le service Registre de conteneur IBM Cloud.

Création de la chaîne d'outils

Dans cette étape, vous allez créer une chaîne d'outils Développement et déploiement d'applications vers Kubernetes à l'aide de stratégies de déploiement. Le cluster Kubernetes cible est configuré lors de la configuration de la chaîne d'outils à l'aide de votre clé d'interface de programmation IBM Cloud et de votre nom de cluster Kubernetes. Vous pouvez modifier ces paramètres ultérieurement en mettant à jour la configuration Delivery Pipeline. Tout code fusionné dans la branche du référentiel cible Git est automatiquement généré, validé et déployé dans le cluster Kubernetes.

Pour créer une chaîne d'outils de développement et déploiement d'applications vers Kubernetes à l'aide de stratégies de déploiement, cliquez sur

Créer une chaîne d'outils

Sinon, depuis la IBM Cloud console, cliquez sur l'icône Menu (icône hamburger ) > Automatisation de la plateforme > Chaînes d'outils. Sur la page Chaînes d'outils, cliquez sur Créer une chaîne d'outils. Sur la page Créer une chaîne d'outils, cliquez sur Développer et déployer une application sur l' Kubernetes à l'aide de stratégies de déploiement.

Configuration du nom et de la région de la chaîne d'outils

Passez en revue les informations par défaut des paramètres de chaîne d'outils. Le nom de la chaîne d'outils l'identifie dans IBM Cloud. Veillez à ce qu'il n'existe qu'une seule chaîne d'outils de ce nom dans une même région et un même groupe de ressources IBM Cloud.

La région de la chaîne d'outils peut être différente de celle du cluster et du registre.

Kubernetes Nom et région de la chaîne d'outils sécurisée de l'application
Kubernetes Nom et région de la chaîne d'outils sécurisée de l'application

Sélectionnez la stratégie de déploiement

La chaîne d'outils crée un pipeline de déploiement continu pour déployer l'image Docker de l'application sur le groupe de clusters défini dans Satellite.

  1. Cliquez sur Plusieurs clusters via Satellite pour déployer votre application à l'aide de Satellite.

    Kubernetes
    Stratégies de déploiement sécurisé des applicationsStratégies de déploiement

  2. Cliquez sur Continu.

Configuration du code source de l'application

Dans l'étape Application, les options recommandées pour le repo du code source de l'application sont affichées par défaut. Pour afficher toutes les options disponibles pour l'intégration Git sous-jacente, cliquez sur Options avancées. Par défaut, la chaîne d'outils utilise l'exemple par défaut qui clone l'application exemple sous la forme d'un référentiel Git Repos and Issue Tracking hébergé par IBM.

Kubernetes référentiel d'applications sécurisé
Kubernetes référentiel d'applications sécurisé

Vous pouvez changer le nom de l'application repo. La région du repo reste la même que la région de la chaîne d'outils.

Le modèle de chaîne d'outils fournit une application Application Conteneurs Hello. Si vous souhaitez lier un référentiel d'application existant pour la chaîne d'outils, sélectionnez Apportez votre propre application et indiquez l'URL du référentiel. La chaîne d'outils prend en charge la liaison uniquement aux pensions Git Repos and Issue Tracking existantes.

Par défaut, le modèle de référentiel d'application est cloné dans votre organisation Git Repos and Issue Tracking. Pour modifier l'organisation, activez Options avancées et indiquez le propriétaire du référentiel.

Configuration du référentiel d'inventaire

Le référentiel d'inventaire enregistre les détails des artefacts générés par les chaînes d'outils d'intégration continue. Vous pouvez soit créer un nouveau dépôt d'inventaire qui soit un clone du modèle de dépôt d'inventaire, soit utiliser un dépôt d'inventaire existant que vous partagez entre plusieurs chaînes d'outils.

Kubernetes référentiel sécurisé d'inventaire des
Kubernetes applications référentiel sécurisé d'inventaire des applications

Par défaut, le modèle repo Inventory est cloné sur votre organisation Git Repos and Issue Tracking. Pour modifier l'organisation, sélectionnez Options avancées et indiquez le propriétaire du référentiel.

Secrets de stockage de sécurité

Plusieurs outils de cette chaîne d'outils nécessitent des secrets, tels qu'une clé d'API IBM Cloud. Vous devez stocker en toute sécurité tous les secrets dans un coffre et les faire référence comme requis par la chaîne d'outils.

A l'aide de IBM Cloud, vous pouvez choisir parmi diverses offres de gestion de secrets et de protection des données qui vous aident à protéger vos données sensibles et à centraliser votre secret. Dans l'étape Secrets, vous pouvez spécifier les intégrations de coffre à ajouter ou à supprimer de votre chaîne d'outils. Pour plus d'informations sur l'ajout et la suppression d'intégrations de coffre, y compris les prérequis et l'utilisation de conseils, voir Gestion des secrets IBM Cloud.

En utilisant des conseils dans un modèle, une chaîne d'outils est automatiquement renseignée avec des secrets préconfigurés ; vous n'avez pas besoin de sélectionner manuellement les secrets des intégrations de coffre qui sont associés à la chaîne d'outils.

Ce tutoriel utilise IBM Secrets Manager comme coffre des secrets.

Kubernetes Options de sécurité des secrets d'application Options
Kubernetes de sécurité des secrets d'application

IBM Secrets Manager stocke et applique des informations confidentielles telles que les clés d'API, la signature d'image ou les données d'identification HashiCorp qui font partie de votre chaîne d'outils.

Kubernetes Options de sécurité des
Kubernetes secrets d'application Options de sécurité des secrets d'application

Pour plus d'informations sur la gestion de vos secrets dans IBM Key Protect ou HashiCorp,, voir Secrets.

Configuration de la cible de déploiement

Configurez le cluster Kubernetes cible pour le déploiement de l'application. Une fois que l'application a passé la phase de génération, de test et d'analyse, le pipeline déploie l'image d'application construite sur le cluster de Kubernetes cible. Ce déploiement est maintenant prêt pour les tests d'acceptation ou d'intégration.

Si la clé de l'interface de programmation dispose de l'accès requis, les zones suivantes se chargent automatiquement à l'aide de la clé d'interface de programmation créée, extraite d'un coffre ou spécifiée manuellement. Si la clé de l'interface de programmation est valide, les valeurs de la région du registre de conteneur et de l'espace de nom de la région, du nom, de l'espace de nom et du groupe de ressources sont automatiquement renseignée. Vous pouvez mettre à jour l'une de ces zones pour qu'elle corresponde à votre configuration.

  • Nom de l'application: Le nom de l'application. Le nom d'application par défaut est hello-containers.

  • Clé d'interface de programmation IBM Cloud : La clé d'interface de programmation utilisée pour interagir avec l'outil de l'interface de ligne de commande ibmcloud dans plusieurs tâches. Utilisez l'une des méthodes suivantes pour spécifier la clé d'interface de programmation que vous souhaitez utiliser :

    • Cliquez sur l'icône de clé pour importer une clé d'interface de programmation existante à partir d'une coffre de secret de votre choix.
    • Copiez et collez une clé d'interface de programmation existante.
    • Cliquez sur Nouveau pour créer une clé d'interface de programmation.
    • Générez un nouveau api-key si vous n'avez pas de clé d'interface de programmation existante.

    Vous pouvez immédiatement sauvegarder la clé d'interface de programmation générée sur un coffre existant de votre choix.

  • Nom du groupe du cluster Satellite : Nom du groupe de clusters qui a été créé dans Satellite. Votre application est déployée sur ce groupe de clusters.

  • Espace de nom du cluster : Si l'espace de nom du cluster n'existe pas dans les clusters du groupe de clusters, la chaîne d'outils le crée.

Kubernetes Détails de la cible de déploiement sécurisé de l'application pour le déploiement continu ou bleu-vert Détails de la cible de
Kubernetes déploiement continu sécurisé de l'application

Ajouter des intégrations d'outil facultatives

Vous pouvez ajouter l'intégration d'outils IBM Cloud® DevOps Insights à votre chaîne d'outils sans configuration supplémentaire.

DevOps Insights est inclus dans la chaîne d'outils créée. Vous n'avez pas besoin de fournir des étapes de configuration pour DevOps Insights. Le pipeline d'intégration continue utilise automatiquement l'instance DevOps Insights incluse dans la chaîne d'outils. DevOps Insights regroupe les données de code, de test, de génération et de déploiement pour fournir une visibilité à la vitesse et à la qualité de toutes vos équipes et éditions.

Cliquez sur Continu.

Compléter la configuration de la chaîne d'outils

Dans la page Récapitulatif, cliquez sur Créer. Plusieurs étapes s'exécutent automatiquement pour configurer votre chaîne d'outils.

Vous pouvez configurer les intégrations de chaînes d'outils individuelles une fois que le pipeline a été créé.

Kubernetes Résumé de la chaîne d'outils pour applications sécurisées
Kubernetes Résumé de la chaîne d'outils pour applications sécurisées

Exploration de votre nouvelle chaîne d'outils

Une fois que la chaîne d'outils a été créée, les différentes intégrations d'outil qui la constituent s'affichent dans un diagramme.

Exploration des pipelines

Vous pouvez explorer les pipelines pour comprendre le flux de la chaîne d'outils et les différentes opérations qui s'exécutent dans chaque pipeline. La chaîne d'outils que vous venez de créer contient trois pipelines :

  • Pipeline de demande d'extraction : S'exécute lorsqu'un développeur fusionne les modifications de sa branche de développement à la branche principale, ou à toute autre branche du référentiel. Le pipeline de demande d'extraction exécute les opérations de test d'unité et d'analyse statique sur le code source de l'application.
  • Pipeline d'intégration continue : S'exécute lorsque vous fusionnez une modification dans la branche principale du référentiel de code source d'application. Le pipeline d'intégration continue exécute le test d'unité, la couverture de code et les analyses statiques sur le code source de l'application, la vérification CIS et la vérification de nomenclature. Le pipeline de distribution continue génère également les artefacts de génération binaires et les télécharge sur IBM Cloud® Kubernetes Service, tel qu'il est configuré dans la chaîne d'outils. Et le pipeline d'intégration continue génère les métadonnées des artefacts de construction et les stocke dans le référentiel Inventory.
  • Pipeline de déploiement continu : Déploie les artefacts de génération dans l'environnement de déploiement. Le pipeline vérifie le déploiement réussi de l'application en exécutant le contrôle de santé. Vous devez déclencher manuellement ce pipeline une fois le pipeline d'intégration en continu terminé. En fonction de la stratégie de déploiement que vous avez sélectionnée, d'autres déclencheurs sont ajoutés au pipeline de distribution continue.

Exécution de la demande d'extraction et des pipelines d'intégration continue

Pour démarrer le pipeline de demande d'extraction, créez une demande de fusion dans votre application repo :

  1. Sur la page Présentation de la chaîne d'outils, sur la carte Référentiels, cliquez sur l'application du référentiel compliance-app-<timestamp>.
  2. A partir du référentiel maître, créez une branche.
  3. Mettez à jour un code dans l'exemple d'application de noeud ou le fichier readme et sauvegardez ces modifications.
  4. Soumettez la demande de fusion.
  5. Sur la page Présentation de la chaîne d'outils, sur la carte Référentiels, cliquez sur le référentielpr-pipeline pour lancer le pipeline de demande d'extraction. La demande de fusion correspondante dans votre application repo reste à l'état en attente jusqu'à ce que toutes les étapes du pipeline de demande d'extraction se terminent correctement.
  6. Une fois que l'exécution du pipeline de demande d'extraction aboutit, vous pouvez la sélectionner pour explorer les étapes terminées.

Succès du pipeline de demandes de
du pipeline de demandes de

Pour démarrer le pipeline d'intégration continue, fusionnez la demande de fusion d'intégration continue dans votre application repo :

  1. Accédez à la demande de fusion.
  2. Fusionner la demande afin que vos modifications soient copiées sur la branche principale de votre application repo. Le pipeline d'intégration continue est automatiquement déclenché.
  3. Sur la page Présentation de la chaîne d'outils d'intégration continue, sur la carte Référentiels, cliquez sur le référentiel ci-pipeline pour démarrer le pipeline d'intégration continue.
  4. Une fois l'exécution du pipeline d'intégration continue réussie, vous pouvez cliquer sur l'exécution du pipeline pour explorer les étapes terminées.

Succès
pipeline d'intégration continue*Succès du pipeline d'intégration

Décalage vers la gauche de la pratique

Dans le monde du développement d'applications sécurisées, le décalage vers la gauche est une pratique qui empêche et détecte des problèmes tels que les défauts et les vulnérabilités de sécurité et exécute des vérifications de conformité au début du processus de livraison du logiciel. Cette pratique consistant à déplacer les contrôles de qualité plus tôt dans le cycle de développement comprend les pratiques suivantes :

  • Exécuter des vérifications qui peuvent être exécutées sur le code ou sur le référentiel lui-même et n'ont pas besoin de l'image générée, le plus tôt possible. Ces vérifications empêchent la fusion du code non conforme dans la branche principale du référentiel. Les preuves n'étant pas collectées dans le pipeline des demandes d'extraction, l'objectif est d'effectuer les contrôles de conformité le plus tôt possible dans le processus de développement.
  • Toutes les vérifications sont exécutées dans chaque exécution de pipeline. Si une vérification précédente échoue, le pipeline passe à la vérification suivante. Pour évaluer si votre exécution a échoué, vérifiez l'étape finale de votre pipeline qui dispose d'un évaluateur de pipeline.

Les résultats des tests unitaires et des analyses de vulnérabilité sont publiés dans l'instance DevOps Insights de la chaîne d'outils. Pour consulter ces résultats, cliquez sur la mosaïque DevOps Insights dans la chaîne d'outils et accédez à la page du tableau de bord de la qualité.

Pour évaluer si vous avez des défaillances dans l'exécution de votre pipeline, vérifiez l'étape finale de votre pipeline, qui dispose d'un évaluateur de pipeline.

Explorez le pipeline de distribution continue

La demande d'extraction et les pipelines d'intégration continue sont communs à toutes les stratégies de déploiement. Les modifications de conception et d'implémentation du pipeline de distribution continue sont basées sur la stratégie de déploiement que vous avez précédemment sélectionnée dans ce tutoriel.

Vous pouvez démarrer un pipeline de distribution continue de l'une des manières suivantes :

  • Déclenche manuellement le pipeline de distribution continue.
  • Déclencheur automatique du pipeline de distribution continue après chaque action Merge dans le référentiel Inventory. Après la fusion, vous devez déclencher manuellement le pipeline de livraison continue.

Un déclencheur Git Repos and Issue Tracking est configuré pour déclencher un pipeline de distribution automatique automatique, mais il est désactivé par défaut. Vous pouvez activer ce déclencheur après la première fois que vous promouvez un changement.

Déclencheurs du pipeline de livraison continue pour le déploiement
du pipeline de livraison continue pour le déploiement

Etapes suivantes

Si vous souhaitez supprimer l'application exemple qui s'exécute sur Kubernetes, vous devez nettoyer le cluster Kubernetes :

  1. Accédez à la page d'accueil Kubernetes Cluster.

  2. Sélectionnez le cluster sur lequel l'application exemple est en cours d'exécution.

  3. Cliquez sur Tableau de bord Kubernetes.

  4. À partir de l'emplacement où l'application exemple est en cours d'exécution, sélectionnez Espace de nom.

    Kubernetes espace de noms espace
    Kubernetes de noms

  5. Supprimez les déploiements, services et ingresses associés qui sont répertoriés dans l'espace de nom sélectionné.

Besoin d'aide ?

IBM Cloud IBM l'assistant IA de , qui est alimenté par l' watsonx de , est conçu pour vous aider à découvrir comment travailler dans l' IBM Cloud, et à créer des solutions avec le catalogue de produits et services disponibles. Voir Obtenir de l'aide de l'assistant IA.

Pour plus d'options de support, voir Obtention de l'aide et du support pour Continuous Delivery.