Développer et déployer une application sur une machine virtuelle
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 fera également l'objet d'une interruption de commercialisation 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 être supprimées plus tôt dans cette région et ne plus accepter de nouvelles instances. En savoir plus
Ce tutoriel montre comment configurer une chaîne d'outils Continuous Delivery et distribuer une application simple (app) à une machine virtuelle. Vous pouvez configurer le contrôle des sources, puis générer, tester et déployer le code dans différentes étapes du déploiement.
Par défaut, la chaîne d'outils utilise un exemple d'application Java Hello World basée sur Maven, mais vous pouvez apporter votre propre application et établir une liaison vers cette dernière à la place. Cette chaîne d'outils est configurée avec des pipelines d'intégration continue et de livraison continue, intégrant Code Risk Analyzer, le contrôle de version, le suivi des incidents et l'édition en ligne.
Le code d'application est stocké dans le référentiel du contrôle des sources de l'application. C'est dans ce référentiel que sont stockés les scripts de génération et de déploiement. Ces derniers peuvent être personnalisés afin de répondre aux exigences de développement de l'application.
La chaîne d'outils de ce tutoriel met en oeuvre les meilleures pratiques suivantes :
- Génère un fichier binaire d'application pour chaque validation Git et définit une balise basée sur le numéro de génération, l'horodatage et l'ID de validation afin d'assurer la traçabilité.
- Insère automatiquement le fichier binaire dans le manifeste de déploiement.
- Crée une instance et un compartiment Object Storage pour stocker les fichiers binaires transitoires prêts à l'emploi qui sont générés. Pour les utilisateurs expérimentés, un référentiel Artifactory existant peut être configuré et intégré à la chaîne d'outils pour prendre en charge la gestion des versions des artefacts de génération à des fins de traçabilité et de conformité.
La chaîne d'outils implémente trois pipelines pour créer et déployer un code d'application sur une machine virtuelle.
-
Pipeline d'intégration continue (CI) : Ce pipeline est déclenché lorsqu'une modification est fusionnée dans la branche principale du référentiel de code source de l'application. Il exécute les opérations de test d'unité, de couverture de code et d'analyse statique sur le code source de l'application. Il génère également l'artefact de génération binaire et le télécharge dans le compartiment Object Storage ou Artifactory, comme défini dans la chaîne d'outils. De plus, il génère les métadonnées des artefacts de génération et les stocke dans le référentiel d'inventaire.
-
Pipeline de déploiement continu (CD) : Ce pipeline est déclenché après l'exécution réussie du pipeline CI. Il assure le déploiement des artefacts de génération dans l'environnement de déploiement. Il vérifie si le déploiement de l'application a abouti en effectuant un contrôle d'intégrité et annule les modifications si l'opération a échoué.
-
Pipeline de demande d'extraction (PR) : Ce pipeline est déclenché lorsqu'une demande de fusion ou d'extraction est créée dans le référentiel du code source de l'application. En règle générale, cette demande est créée manuellement par le développeur du code source de l'application pour fusionner les modifications depuis la branche de développement vers la branche principale ou une autre branche. Le pipeline PR exécute les opérations de test d'unité et d'analyse statique sur le code source de l'application.
Avant de commencer
Installez et configurez l'instance de serveur virtuel pour la chaîne d'outils afin de déployer l'application dans l'instance de serveur virtuel. Vous pouvez utiliser une instance de serveur virtuel existante ou en configurer une nouvelle qui répond aux exigences suivantes :
- Configuration d'une instance de serveur virtuel dans IBM Cloud.
- Réservation d'une adresse IP flottante pour rendre l'instance de serveur virtuel accessible via l'internet public. Vous pouvez également utiliser l'entrée DNS disponible. Ce tutoriel utilise une adresse IP flottante.
- Créez l'utilisateur (de préférence n'ayant pas de privilège) et des clés SSH pour l'instance de serveur virtuel.
- Configurez des groupes de sécurité pour l'instance de serveur virtuel. Autorisez la chaîne d'outils à effectuer des contrôles d'intégrité sur l'application déployée
en ajoutant une règle entrante pour
TCPdans le but d'activer le port8080pour permettre l'accès au noeud final d'application. Pour plus d'informations sur l'ajout d'une règle entrante, voir Gestion des groupes de sécurité. - Vérifiez que le SDK Java™ est installé sur votre machine virtuelle ou utilisez la commande suivante pour l'installer :
yum install -y tar java. - Optionnel. Si vous avez besoin de stocker des secrets dans
Key Protect, effectuez un encodage en base64 de la valeur. Pour plus d'informations sur les détails de la commande requise, voir Signature d'image : génération d'une clé GPG.
Création de la chaîne d'outils
Pour créer une chaîne d'outils Développer une application pour une machine virtuelle, cliquez sur
Vous pouvez également, à partir de la console IBM Cloud, cliquer sur l' Menu > Platform Automation > Toolchains. 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 une application pour une machine virtuelle.
Configuration de l'instance de serveur virtuel simple
-
Dans l'onglet Création, vérifiez les paramètres par défaut.
{: caption=" -
Le nom de la chaîne d'outils l'identifie dans IBM Cloud. Si vous désirez utiliser un nom différent, modifiez le nom de la chaîne d'outils. Ce nom étant utilisé pour construire l'URL permettant d'accéder à votre application, veillez à ce qu'il soit unique.
-
Par défaut, la chaîne d'outils crée le référentiel source dans Git Repos and Issue Tracking. Pour utiliser un autre fournisseur pour votre référentiel source Git, tel que GitHub ou GitLab, sélectionnez celui de votre choix dans la liste des référentiels disponibles.
Cette chaîne d'outils utilise des outils inclus dans le service Continuous Delivery. Si une instance de ce service n'est pas déjà dans le groupe de ressources sélectionné, elle est ajoutée automatiquement avec le plan Lite lorsque vous cliquez sur Créer pour créer la chaîne d'outils.
Configuration du référentiel de l'application
-
Dans l'onglet Git Repos and Issue Tracking, vérifiez le paramètre par défaut qui indique l'emplacement du code source de l'application.
-
Par défaut, la chaîne d'outils utilise un exemple d'application Java Hello World basée sur Maven. Vous pouvez mettre à jour les paramètres d'emplacement pour établir une liaison vers votre propre application à la place.
caption-side=bottom"
Configuration du référentiel d'inventaire
Le référentiel d'inventaire stocke les métadonnées des générations et des artefacts. Pour déclencher le pipeline dans le but de déployer les artefacts décrits dans la validation sur l'instance de serveur virtuel, procédez à la validation dans le référentiel d'inventaire, puis exécutez les tâches d'acceptation.
Configuration du pipeline de distribution (Delivery Pipeline)
-
Accédez à l'onglet Delivery Pipeline.
Delivery Pipeline -
Spécifiez une clé d'API IBM Cloud existante ou créez-la. Cette clé est utilisée par la chaîne d'outils pour interagir avec les autres services Cloud intégrés.
-
Spécifiez la région dans laquelle l'instance de serveur virtuel est en cours d'exécution,
us-southpar exemple. -
Indiquez l'adresse IP flottante de l'instance de serveur virtuel au format
aaa.bbb.ccc.ddd. -
Sélectionnez le type d'authentification par
SSH Keyet spécifiez les données d'identification suivantes :- Nom d'utilisateur : Nom de l'utilisateur de l'instance de serveur virtuel qui dispose des droits nécessaires pour déployer et exécuter l'application.
- Clé SSH : Clé SSH privée de l'utilisateur pour l'exécution et le déploiement de l'application.
-
Exécutez les commandes suivantes pour créer une paire de clés dans l'instance de serveur virtuel pour l'utilisateur disposant des droits permettant de déployer et d'exécuter les applications.
# Create the SSH key `ssh-keygen -C cloud.ibm.com` # copy public key to the VSI `ssh-copy-id -i .ssh/id_rsa.pub <UserName>@<xx.yy.zz.aa>`
Optionnel. Création d'une configuration de stockage transitoire
Toute modification de la source déclenche le pipeline d'intégration continue. Lorsque l'intégration continue aboutit, un artefact de génération ou binaire est créé et sauvegardé dans le stockage transitoire, puis déployé dans l'instance de serveur virtuel cible.
- Dans l'onglet More Tools de la chaîne d'outils, vous pouvez choisir d'utiliser Object Storage ou Artifactory comme stockage transitoire pour sauvegarder les fichiers binaires de génération.
- Si votre compte ne contient aucune instance de Object Storage, la chaîne d'outils crée une nouvelle instance Object Storage dans le groupe de ressources par défaut. Elle crée ensuite un compartiment qui utilise le même nom que la chaîne d'outils dans la nouvelle instance Object Storage.
- Si votre compte contient déjà des instances Object Storage, la chaîne d'outils utilise l'une d'entre elles pour stocker les artefacts de génération transitoires.
- Pour configurer les informations relatives à Object Storage ou Artifactory, voir la section Configuration des options utilisateur avancées.
- Cliquez sur Créer pour créer la chaîne d'outils.
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. Par exemple, pour afficher plusieurs étapes, comme cra-discovery-scan et le contenu
de Paramètres et Statut, cliquez sur l'intégration d'outils Pipeline CI, puis cliquez sur Réussite PipelineRuns.
Exploration de DevOps Insights
DevOps Insights cumule les données provenant de la chaîne d'outils pour vous permettre de suivre et d'améliorer vos processus DevOps de bout en bout. Vous pouvez alors consulter les métriques de qualité, suivre les travaux de génération et de déploiement, afficher les règles, etc.
Si votre code ne satisfait pas ou dépasse une règle, le déploiement est interrompu afin de prévenir tout risque. Vous pouvez utiliser DevOps Insights comme filet de sécurité pour votre environnement de distribution continue ou comme un moyen d'appliquer et d'améliorer les normes de qualité.
L'image suivante illustre le tableau de bord Qualité qui fournit des ensembles de données de qualité tels que tests d'unité, couverture de code, tests fonctionnels de vérification et analyses de sécurité statiques pour chaque application.
Exploration de GitOps
GitOps est un ensemble de pratiques et d'outils qui place Git au centre de la chaîne d'outils DevOps et permet de définir ce qui doit être déployé dans l'instance de serveur virtuel. Avec GitOps, les développeurs et les opérateurs utilisent des flux de travaux Git familiers pour définir, vérifier, approuver et auditer les modifications apportées à leurs infrastructure et à leurs applications. Les outils automatisés assurent la synchronisation de l'état réel des cibles avec l'état souhaité qui est décrit dans Git.
En utilisant la chaîne d'outils dans ce tutoriel, vous pouvez contrôler les déploiements dans plusieurs environnements en créant une branche pour chacun d'eux. Dans l'exemple de flux de travaux suivant, un pipeline Continuous Delivery est déclenché lorsqu'une demande d'extraction ou une validation est lancée sur une branche spécifique du référentiel d'inventaire.
- Créez une chaîne d'outils pour l'instance de serveur virtuel dans IBM Cloud en fournissant les informations la concernant, comme par exemple le référentiel d'application et Object Storage. Ne fournissez pas d'information sur le référentiel d'inventaire.
- Une fois la chaîne d'outils créée, créez plusieurs branches comme
Dev,StagingetProdà partir du référentiel d'inventaire. - Cliquez sur le pipeline Continuous Delivery et accédez aux déclencheurs. Ajoutez une source de déclencheur en tant que référentiel d'inventaire avec la branche souhaitée pour déclencher le pipeline CD (principal).
- Modifiez le pipeline d'intégration continue pour procéder à la validation dans les référentiels d'inventaire appropriés une fois l'intégration réussie.
- Lorsque les validations disponibles dans le référentiel d'inventaire sont en nombre suffisant, fusionnez la demande d'extraction de ce référentiel dans le référentiel principal pour lancer une génération Continuous Delivery.
En utilisant GitOps, vous pouvez contrôler les déploiements dans plusieurs environnements en créant une branche pour chacun d'eux.
Configuration des options utilisateur avancées
Pour accéder aux options utilisateur avancées, sélectionnez l'onglet More Tools.
-
Spécifiez une instance Cloud Object Storage existante pour stocker les artefacts de génération transitoires :
-
Indiquez le nom du compartiment dans l'instance Object Storage où vous souhaitez stocker les artefacts de génération transitoires. Pour télécharger des objets dans le compartiment, ce dernier doit se trouver dans la région dans laquelle la chaîne d'outils est créée.
-
Sélectionnez la clé d'interface de programmation qui a un accès en lecture et en écriture au compartiment que vous avez spécifié.
Cloud Object Storage -
-
Pour utiliser un compte Artifactory pour stocker des artefacts de génération transitoires, fournissez les informations suivantes sur l'instance Artifactory :
- URL du serveur Artifactory : URL HTTPS du serveur Artifactory
- Type : npm, maven ou docker
- ID utilisateur Artifactory : ID utilisateur pour la connexion au serveur Artifactory, au format
xxx.xxx@xxx.com - Clé d'API Artifactory : Clé d'API générée par l'utilisateur (existante ou nouvelle)
- URL d'édition : URL d'édition du référentiel Artifactory dans lequel sont stockés les artefacts
Certains champs du référentiel Artifactory ne sont obligatoires que si vous utilisez la configuration Artifactory.
Cliquez sur Créer pour créer la chaîne d'outils. Ce processus peut prendre quelques minutes.
Optionnel. Rétablissement de la version précédente de l'application déployée
Il peut s'avérer nécessaire de rétablir le code de déploiement précédent en raison des résultats du test, de problèmes de qualité ou d'autres erreurs. Pour revenir à la version précédente de l'application, vous pouvez utiliser le référentiel d'inventaire.
- Entrez
git clone <inventory-repo-url>pour cloner et télécharger l'inventaire du référentiel Git à partir de votre pipeline. Le pipeline Continuous Delivery est à l'écoute de la branche principale du référentiel d'inventaire. - Tapez
git logpour afficher la liste des validations effectuées par le pipeline d'intégration continue. - Tapez
git checkout masterpour vérifier la branche principale. - Tapez
lastCommitID=$(git log --format="%H" -n 1)pour extraire l'ID de la dernière validation du référentiel. - Tapez
git revert $lastCommitIDpour créer une validation en rétablissant la modification en cours. Veillez à fournir un message de validation pour ce rétablissement. - Tapez
git pushpour insérer la modification dans le référentiel d'inventaire et démarrer le pipeline Continuous Delivery pour le déploiement de l'application.
Etapes suivantes
Bien que ce tutoriel utilise un exemple d'application Java, vous pouvez également déployer des applications basées sur d'autres langages dans une instance de serveur virtuel. Pour cela, supprimez à la fois la chaîne d'outils et l'instance de serveur virtuel que vous avez créées pour ce tutoriel.
