Introduction à IBM Bluemix DevOps Services - Quatrième partie

Partie 4 : déployer sur Bluemix automatiquement avec le pipeline de livraison

Lauren Schaefer

Traducteur

Laethy

En tant que développeur, je suis toujours en train de chercher comment faire les choses plus facilement. Je déteste perdre du temps sur la configuration des environnements de développement, la configuration des serveurs, et généralement, faire quelque chose qui peut être automatisé. (Moins de temps de travail signifie plus de temps pour faire du shopping !) C'est pour cela que j'aime utiliser les services DevOps de IBM.

Bluemix me fournit une infrastructure et des services en cloud, donc je n'ai plus à m'inquiéter pour l'administration de serveurs, ou de perdre du temps à copier un code que quelqu'un aurait déjà écrit. Les services DevOps de Bluemix me donnent les outils dont j'ai besoin pour coder dans le cloud (aucune configuration à faire), planifier mon application et travailler avec d'autres personnes.

Vous pouvez commenter ce tutoriel sur le forum IBM Bluemix : Commentez

- Titre : Introduction à IBM Bluemix DevOps Services - Quatrième partie

- Auteur : Lauren Schaefer

- Traducteur : Laethy

- Parution : 1 septembre 2017

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2016 Lauren Schaefer. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Voir également :

- Introduction à IBM Bluemix DevOps Services - Partie 1 : déployer et mettre à jour une simple application

- Introduction à IBM Bluemix DevOps Services - Partie 2 : déployer une application qui utilise un service Bluemix

- Introduction à IBM Bluemix DevOps Services - Partie 3 : planifier, traquer et prendre l'avantage des nouveaux services Bluemix

Sommaire

- I. Introduction

- II. Que couvre la partie 4 ?

- III. À propos de l'application

- IV. De quoi avez-vous besoin pour commencer ?

- V. Étape 1 : Créer le « space » de production

- VI. Étape 2 : Créez des services pour le déploiement de votre espace dev

- VII. Étape 3 : Créez des services pour le déploiement de votre espace prod

- VIII. Étape 4 : Configurez le pipeline de livraison

- IX. Étape 5 : Lancement du pipeline de livraison

- X. Voulez-vous voir plus ?

I - Introduction

Dans cette introduction en quatre parties, vous apprenez comment il est facile d'utiliser IBM Bluemix DevOps Services pour planifier, coder, et déployer des applications. La partie 1 vous a montré comment déployer et apporter des modifications à une application simple. La partie 2 explique comment déployer une application qui utilise un service IBM Bluemix. La partie 3 décrit comment utiliser les capacités de planification dans Bluemix DevOps services pour planifier et suivre votre application, comment ajouter un nouveau service Bluemix à une application, et comment écrire du code qui utilise le service Bluemix. Enfin, dans la partie 4 (ce tutoriel), vous allez apprendre à utiliser le service de pipeline de livraison pour déployer votre application sur Bluemix automatiquement, chaque fois que vous ou quelqu'un d'autre dans votre équipe envoyez un code dans le dépôt de votre projet.

Comme un bonus à toute la connaissance que vous allez acquérir en travaillant avec les exemples de cette série, vous aurez une application qui vérifie, pour vous, les prix des articles sur les magasins en ligne ; donc vous n'avez plus à surfer sur Internet pour voir si vos articles favoris sont encore en vente ! (Pouvez-vous dire, j'aime faire les boutiques ?)

II - Que couvre la partie 4 ?

Dans ce tutoriel de la série, vous allez apprendre comment :

- configurer un pipeline de déploiement
multiétape, pour soutenir une approche de développement de logiciels DevOps ;

- configurer les déploiements automatiques pour toutes les fois où vous ou quelqu'un d'autre dans votre équipe enverrez du code dans le dépôt de votre projet.

III - À propos de l'application

Démarrez avec les applications « Lauren's Lovely Landscapes » et « Fabulous Price Finder » que vous avez construites dans les parties précédentes de cette série:

Comme vous le savez, depuis la partie 2 et la partie 3, l'application Fabulous Price Finder utilise les services Cloudant et Twilio dans Bluemix.

Chaque fois que vous ou quelqu'un d'autre dans votre équipe envoyez du code dans le dépôt de votre projet, le build de l'application est automatiquement déclenché.

IV - De quoi avez-vous besoin pour commencer ?

La partie 4 est une suite des parties 1, 2  et 3. Si vous n'avez pas encore fini ces parties, faites-le et revenez ensuite ici. Pour les quatre parties, vous avez besoin d'un compte sur Bluemix et Bluemix DevOps Services, et vous avez besoin d'un des navigateurs suivants :

- Firefox 15 ou versions ultérieures ;

- Chrome 21 ou versions ultérieures ;

- Internet Explorer 10 ou versions ultérieures ;

- Safari 7 ou versions ultérieures.

V - Étape 1 : Créer le « space » de production

Dans Bluemix, les termes « organizations »et « spaces » désignent des unités organisationnelles dans l'infrastructure Cloud Foundry que vous pouvez utiliser pour stocker et suivre les ressources de l'application. Une « organization » contient des domaines, des « spaces » et des utilisateurs ; un « space » contient des applications et des services.

Par défaut, un  space  appelé « dev » (pour développement) est créé pour vous lorsque vous vous connectez à Bluemix pour la première fois. Pour ce tutoriel, considérez le space de développement comme représentant un environnement de test du vrai code, dans une logique d'assurance-qualité, sans toute fois le mettre dans l'environnement de production actuelle. (Certains pourraient appeler cela un space d'assurance-qualité ou de test.)

Maintenant, créez un nouveau space nommé « prod » pour représenter votre space de production, là où vous garderez les applications que les utilisateurs utiliseront :

1. Connectez-vous à Bluemix et parcourez le tableau de bord, si vous n'y êtes pas encore ;

2. Cliquez sur « Create a space » à gauche du menu ;

3. Dans la boîte de dialogue « Create a space », saisissez « prod » comme nom de l'espace et cliquez sur « CREATE ».

VI - Étape 2 : Créez des services pour le déploiement de votre espace dev

Lorsque vous déployez vos espaces de développement et de production, vous voudriez généralement que chaque espace utilise ses propres instances dédiées de tous les services Bluemix dont les applications ont besoin - par exemple, des bases de données distinctes pour chaque espace.

Commencez par créer des services pour votre espace de développement :

1. Parcourez le tableau de bord Bluemix si vous n'y êtes pas déjà ;

2. cliquez sur « CATALOG »dans le menu principal ;

3. créez le service Cloudant NoSQL DB :

1. faites défiler la liste jusqu'à ce que vous voyez le service Cloudant NoSQL DB. (Astuce : consultez la section « Data et Analytics ». Le catalogue est constamment mis à jour avec de nouveaux services !),

2. cliquez sur le service « Cloudant NoSQL DB »,

3. dans la liste déroulante « Space », choisissez « dev »,

4. dans la liste déroulante « App », choisissez « Leave unbound »,

5. dans la zone « Service Name », laissez la valeur par défaut ou changez par un nom que vous préférez. Il faut que le nom que vous choisissez commence par « cloudant » parce que ce code identifie le service,

6. notez le nom de votre service comme vous en aurez besoin plus tard,

7. cliquez sur « Create » ;

4. Créez le service Twilio :

1. parcourez le catalogue si vous n'y êtes pas déjà,

2. défilez jusqu'à trouver le service Twilio (Astuce : consultez la section Mobile),

3. cliquez sur le service « Twilio »,

4. dans la zone « Space » de la boîte de dialogue « Add Service », choisissez « dev »,

5. dans la zone « App », choisissez  « Leave unbound »,

6. dans la zone « Service », laissez la valeur par défaut ou remplacez-la par un autre nom de votre choix qui commence par « twilio » (parce que ce code identifie le service). Notez le nom que vous choisissez étant donné que vous en aurez besoin plus tard,

7. dans les zones « Account SID » et « Auth Token », collez votre AccountSID Twilio et AuthToken à partir de la page « Twilio Account Settings »,

8. cliquez sur  « Create ».

VII - Étape 3 : Créez des services pour le déploiement de votre espace prod

Répétez l'étape 2 pour créer les services Cloudant et Twilio pour le déploiement de votre espace  « prod ». Dans la zone « Space », veillez à sélectionner « prod » au lieu de « dev ».

VIII - Étape 4 : Configurez le pipeline de livraison

Maintenant, vous pouvez configurer un pipeline de construction et de déploiement multiétape pour l'application « Fabulous Price Finder » :

1. Ouvrez le projet « Fabulous Price Finder » que vous avez créé et mis à jour dans la Partie 2 et la Partie 3 en parcourant Bluemix DevOps Services. Connectez-vous si vous ne vous êtes pas déjà authentifié, et cliquez sur votre projet dans la page « My Projects » ;

Le pipeline n'intègre que les modifications effectuées dans les codes qui ont été envoyés au dépôt de votre projet dans Bluemix DevOps Services. Les modifications effectuées dans votre espace de travail de l'éditeur Web et qui ne sont pas envoyées dans le dépôt ne seront pas déployées par le pipeline.

2. Cliquez sur « BUILD & DEPLOY » dans le coin supérieur droit ;

3. Créez une étape de construction qui va construire votre application :

1. cliquez sur « ADD STAGE »,

2. cliquez sur « My Stage » en haut de la boîte de dialogue « Stage Configuration » et nommez votre étape « Étape de construction »,

3. notez que le type d'entrée par défaut est paramétré à « SCM dépôt ». Ce paramétrage signifie que l'entrée de votre étape sera votre dépôt Git,

4. notez que « Run jobs whenever a change is pushed to Git » est sélectionné par défaut. Cela signifie que, quel que soit celui qui envoie le code dans le dépôt du projet, vous ou un membre de votre équipe, l'étape de construction sera automatiquement lancée,

5. cliquez sur « JOBS » pour ouvrir la section des tâches de la boîte de dialogue « Stage Configuration »,

6. cliquez sur « ADD JOB » et sélectionnez « Build »,

7. parce que cette application ne nécessite pas de compilation (contrairement à une application Java), vous utiliserez un générateur de type simple. Notez que vous pouvez choisir parmi une variété de constructeurs,

8. remarquez que « Stop running this stage if this job fails  » est coché par défaut. Cette sélection signifie que si une panne survient, toutes les tâches du pipeline ne fonctionneront pas, et toute l'étape sera marquée comme ayant échouée,

9. cliquez sur « SAVE » ;

4. Maintenant, ajoutez un déploiement à votre espace dev :

1. cliquez sur « ADD STAGE »,

2. cliquez sur « My Stage » en haut de la boîte de dialogue « Stage Configuration » et nommez votre étape « Dev Déploiement »,

3. notez que le type d'entrée par défaut est fixé à « Build Artifacts ». Ce paramétrage signifie que les artefacts créés dans l'étape précédente constituent les entrées pour cette étape,

4. notez que « Run jobs when the previous stage is completed » est sélectionné par défaut. Ce paramètre configure votre pipeline de sorte que chaque fois que quelqu'un envoie un code dans votre dépôt, l'étape de construction s'exécutera, et si elle réussit, un déploiement de l'environnement sera lancé,

5. cliquez sur « JOBS » pour ouvrir la section tâches de la boîte de dialogue « Stage Configuration »,

6. cliquez sur « ADD STAGE » et sélectionnez « Deploy »,

7. changez le  « Application Name » par un nom qui est unique dans votre espace dev dans Bluemix,

8. par défaut, le service de déploiement utilise les instructions qui sont dans le fichier manifest. Vous voulez que votre application à déployer ait une URL cohérente où les développeurs de votre équipe pourront tester leur code plutôt qu'une URL qui contient une chaîne de caractères aléatoires. Donc, dans la section Script Deploy, après cf "$ {} CF_APP", ajoutez :
-n  ceQueVousVoulezQueVotreUrlSoit

L'URL doit être unique pour toutes les applications Bluemix. Alors, soyez créatifs.

9. en dessous de la commande cf push, ajoutez deux lignes qui lient les services de l'espace dev à votre application :
cf bind-service "${CF_APP}": nomDeVotreServiceCloudant,
cf bind-service "${CF_APP}" : nomDeVotreServiceTwilio,

10. ajoutez une commande pour restaurer votre application avec les services nouvellement liés:
cf restage "${CF_APP}".
La section « Deploy Script » devrait ressembler maintenant à :

1. cf push "${CF_APP}" -n fbf-lauren-dev

2. cf bind-service "${CF_APP}" Cloudant-dev

3. cf bind-service "${CF_APP}" Twilio-dev

4. cf restage "${CF_APP}"

11. cliquez sur « SAVE ».

Si vous avez associé des tests automatisés à ce projet, vous pouvez ajouter un job de test à l'étape de déploiement de dev; et donc pendant que le déploiement est en cours, les tests aussi s'exécutent.

5. Maintenant ajoutez un déploiement à votre space prod :

1. cliquez sur « ADD STAGE »,

2. cliquez sur « My Stage » en haut de la boîte de dialogue « Stage Configuration » et nommez votre étape en saisissant « Déploiement de Prod »,

3. notez que le type d'entrée est fixé à « Build Artifacts ». Cela signifie que les artefacts de construction créés dans la phase de construction seront les éléments en entrée pour cette étape,

4. remarquez que « Run jobs when the previous stage is completed » est sélectionné par défaut. Les tests automatisés ne sont pas inclus dans ce pipeline, donc le déploiement automatique dans la production n'est probablement pas une action sûre à faire. Changez la sélection à « Run jobs only when this stage is run manually »,

5. cliquez sur « JOBS » pour ouvrir la section « Jobs » de la boîte de dialogue « Stage Configuration »,

6. cliquez sur « ADD JOB » et sélectionnez « Deploy »,

7. dans la zone « Space », sélectionnez « prod »,

8. changez « Application Name » par un nom qui est unique à votre space prod dans Bluemix,

9. par défaut, le service de déploiement utilise les instructions du fichier manifest. Vous voulez que votre application à déployer ait une URL cohérente où les utilisateurs finals peuvent accéder à votre application - plutôt qu'une URL qui contienne une chaîne de caractères aléatoires. Donc, dans la section Script Deploy, après cf push "${CF_APP}", ajoutez :
-n : ceQueVousVoulezQueVotreUrlSoit

L'URL doit être unique pour toutes vos applications Bluemix, donc soyez créatif.

10. en dessous de la commande cf push, ajoutez deux lignes qui lient les services de l'espace dev à votre application :
cf bind-service "${CF_APP}" nomDeVotreServiceCloudant,
cf bind-service "${CF_APP}" nomDeVotreServiceTwilio,

11. ajoutez une commande pour restaurer votre application avec les services nouvellement liés :
cf restage "${CF_APP}"
La section « Deploy Script » devrait ressembler à :

1. cf push "${CF_APP}" -n fbf-lauren

2. cf bind-service "${CF_APP}" Cloudant-prod

3. cf bind-service "${CF_APP}" Twilio-prod

4. cf restage "${CF_APP}"

12. cliquez sur « SAVE ».

IX - Étape 5 : Lancement du pipeline de livraison

Maintenant que vous avez configuré le pipeline de livraison, il est temps de l'essayer ! Sur la page du pipeline, cliquez sur le bouton de lecture dans la zone « Build Stage » pour lancer la première étape du pipeline manuellement.

Le pipeline de livraison passera par les étapes de construction et de déploiement du Dev. Si ce qui a été déployé sur dev vous convient, vous pouvez le faire glisser de la zone « Build Stage » à la zone « Prod Deployment » pour déployer l'application en production.

X - Voulez-vous voir plus ?

Dans ce tutoriel, vous avez créé un pipeline multiétape et avez effectué manuellement une requête de construction. Vous pouvez également déclencher une construction en faisant une modification dans votre code et en l'envoyant dans le dépôt de votre projet. Et là, vous n'avez qu'à regarder comment le pipeline de livraison déploie automatiquement l'application pour vous.

Si vous voulez un défi, pensez à comment mettre en œuvre tous les déploiements importants, sans interruption de service. Astuce : jetez un œil au tutoriel de Den Berg Automatiser les déploiements avec IBM DevOps Services pour Bluemix