Introduction aux services DevOps de IBM Bluemix

Partie 3 : planifier, traquer et prendre l'avantage des nouveaux services Bluemix

Lauren Schaefer

Traducteur

Guillaume SIGUI

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 aux services DevOps de IBM Bluemix

- Auteur : Lauren Schaefer

- Traducteur : Guillaume SIGUI

- Parution : 27 avril 2016

- 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 4 : déployer sur Bluemix automatiquement avec le pipeline de livraison

Sommaire

- I. Introduction

- II. Que couvre cette partie 3 ?

- III. À propos de l'application

- IV. Ce dont vous avez besoin pour démarrer

- V. Étape 1 : planifiez une nouvelle fonctionnalité à ajouter à l'application « Fabulous Price Finder »

- V-A. Ouvrez la section « Track & Plan »

- V-B. Créez les éléments de travail

- V-C. Planifiez votre travail

- V-D. Traquez votre travail

- VI. Étape 2 : implémentez la fonctionnalité

- VI-A. S'inscrire avec Twilio

- VI-B. Ne pas recevoir de SMS

- VI-C. Ajoutez des services Twilio à l'application

- VI-D. Ajouter le code qui utilise le service Twilio

- VI-E. Ajoutez Twilio au fichier requirements.txt

- VI-F. Connectez-vous au service Twilio

- VI-G. Ajoutez le code pour envoyer le SMS

- VII. Étape 3 : déployez et testez la fonctionnalité

- VIII. Étape 4 : envoyez la fonctionnalité dans le repository

- IX. Étape 5 : achevez la fonctionnalité

- X. Étape 6 : découvrez la traçabilité

- XI. Étapes suivantes

I - Introduction

Dans cette introduction en quatre parties, vous apprenez comment il est facile d'utiliser ensemble IBM Bluemix DevOps Services et IBM Bluemix, pour planifier, écrire son code et déployer ses applications. La partie 1 vous a montré comment déployer et faire des modifications dans une application simple. La partie 2 a expliqué comment déployer une application qui utilise un service Bluemix. Dans la partie 3 (ce tutoriel), vous allez apprendre comment utiliser les capacités de planification des services DevOps de Bluemix pour planifier et traquer votre application, comment ajouter un nouveau service Bluemix à votre application, et comment écrire un code qui utilise un service Bluemix.

Dans la partie 4, vous apprendrez comment utiliser le Delivery Pipeline Service pour déployer votre application dans Bluemix automatiquement chaque fois que vous ou quelqu'un de votre équipe mettez un code dans le repository 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 vous vérifie les prix des produits dans des magasins en ligne ; donc vous n'avez plus à surfer sur le web pour voir si vos produits favoris sont en vente ou non ! (Pouvez-vous dire, j'aime faire les boutiques ?)

II - Que couvre cette partie 3 ?

Cette partie 3 montre comment :

- utiliser les capacités de planification des services DevOps de Bluemix pour planifier et traquer une application ;

- ajouter un nouveau service Bluemix à une application ;

- écrire un code qui tire parti d'un service Bluemix.

III - À propos de l'application

Démarrez avec les applications déployées dans les parties 1 et 2 : « Lauren's Lovely Landscapes » et « Fabulous Price Finder ». Améliorez l'exemple « Fabulous Price Finder » pour qu'il puisse envoyer un message texte.

IV - Ce dont vous avez besoin pour démarrer

La partie 3 est une continuation des parties 1 et 2. Si vous n'avez pas terminé la partie 1 et la partie 2, veuillez le faire, puis revenez continuer ici.

Avant de démarrer, vous avez besoin d'être connecté sur Bluemix et les services DevOps de Bluemix. Vous aurez aussi besoin d'un des navigateurs suivants :

- Firefox 15 ou version supérieure ;

- Chrome 21 ou version supérieure ;

- Internet Explorer 10 ou version supérieure ;

- Safari 7 ou version supérieure.

V - Étape 1 : planifiez une nouvelle fonctionnalité à ajouter à l'application « Fabulous Price Finder »

Depuis le début, vous n'utilisez que du code existant, mais vous n'en avez pas encore créé vous-même. Il est temps de changer cela.

Quand vous travaillez avec des coéquipiers ou même tout seul, l'organisation de vos idées sous forme de récits utilisateur ou user stories, puis l'organisation des récits utilisateur dans un plan peuvent être incroyablement précieuses.

V-A - Ouvrez la section « Track & Plan »

1. Ouvrez le projet « Fabulous Price Finder » que vous avez créé dans l'atelier précédent en parcourant les services DevOps de Bluemix, connectez-vous, si vous n'êtes pas encore authentifiés, et cliquez sur votre projet dans la page « My Projects ».

2. Cliquez sur le bouton identifié par l'engrenage () dans le coin supérieur droit, pour ouvrir la page des paramètres de votre projet.

3. Cliquez sur « OPTIONS ».

4. Sur la page qui est chargée, cochez la case « Enable Track & Plan » (si ce n'est pas encore fait) et cliquez sur « SAVE ».

5. Cliquez sur « TRACK & PLAN » dans le coin supérieur droit. La section « Track & Plan » est la zone où vous organisez vos idées.

V-B - Créez les éléments de travail

1. Dans le panneau à gauche, cliquez sur « Backlog ».

2. Dans le panneau à droite, saisissez ce qui suit dans le champ « Create a work item… » : « En tant qu'acheteur, je veux recevoir des SMS avec le prix de chaque article, quand je ne peux pas me connecter sur le site web pour voir les prix. »

3. L'outil va automatiquement détecter cet élément de travail comme un besoin utilisateur et le paramétrer comme tel pour vous.

4. Dans la barre d'icônes en dessous, cliquez sur l'icône « Owned By » et sélectionnez votre nom d'utilisateur.

5. Cliquez sur « CREATE ».

6. Répétez les étapes 2 à 5 pour créer les éléments de travail relatifs aux besoins utilisateurs suivants :
« En tant qu'acheteur, je veux organiser mes articles par magasin, comme cela je n'ai à saisir le champ d'ID qu'une seule fois, par magasin, au lieu de le faire pour chaque article. »
« En tant qu'acheteur, je veux voir le graphe de l'évolution des prix des articles. Je vais l'analyser dans le temps, pour déterminer le meilleur moment où je pourrai faire des achats. »
« En tant qu'acheteur, je veux avoir automatiquement les prix de manière quotidienne pour ne pas avoir à me connecter chaque fois et aller sur la page des prix.»
« En tant qu'acheteur, je veux que les prix ne me soient envoyés par message que lorsqu'il y a une modification, parce que je ne veux pas être inondés de SMS ».

7. Créer un élément de travail pour résoudre le problème lié au désagrément suivant : « L'affichage de la page de la base de données échoue lorsque la base de données est vide ».

V-C - Planifiez votre travail

Maintenant que vous avez rempli votre « backlog » avec les besoins utilisateurs, il est temps de planifier votre premier sprint.

1. Dans le panneau gauche, cliquez sur « Sprint Planning ». Un sprint représente une période de temps.

2. Cliquez sur « Add Sprints ».

3. Configurez au moins deux sprints, puis cliquez sur « Create ».

4. Dans la section « Backlog », réorganisez vos récits utilisateur pour qu'ils soient ordonnés selon leur indice en faisant des glisser-déposer. Mettez  : « En tant qu'acheteur, je veux recevoir par message texte, les prix de chaque produit pour que je n'aie pas à aller sur le site web pour le faire. » au premier niveau au-dessus de la liste, et « En tant qu'acheteur, je veux avoir automatiquement les prix de manière quotidienne pour ne pas avoir à me connecter chaque fois et aller sur la page des prix.» à la deuxième position sur la liste.

5. Cliquez sur la liste déroulante « Sprint 1 », et sélectionnez « Sprint 1», qui s'affichera dans la partie droite de la section « Backlog ». (Vous pourriez avoir besoin de cliquer d'abord sur « Sprint 2 », puis sur « Sprint 1 », avant que le sprint ne s'affiche.)

6. Assurez-vous que vous avez suffisamment de temps pour terminer un récit utilisateur par sprint. Glissez l'élément le plus au-dessus dans la liste « Sprint 1 » (à droite).

7. Dans la liste déroulante des sprints, sélectionnez « Sprint 2 ».

8. Glissez le nouvel élément, en tête de liste, dans l'item « Sprint 2 ».

V-D - Traquez votre travail

Le « Spring 1 » a commencé. Indiquez que vous avez commencé à travailler sur le premier élément de travail en le marquant comme « In Progress » :

1. Dans le menu déroulant sprint, sélectionnez « Sprint 1 » ;

2. Dans la section « Sprint 1 », cliquez sur l'icône « Status:New », dans la liste des besoins utilisateurs planifiés pour Sprint 1;

3. Dans la boîte de dialogue « Status », cliquez sur « Start Working » ;

4. Notez l'ID de votre élément de travail, car vous en aurez besoin plus tard dans ce processus.

VI - Étape 2 : implémentez la fonctionnalité

1. Ensuite, implémentez l'élément de travail « En tant que client, je veux un SMS qui me sera envoyé avec le prix de chaque article, afin que je n'aie plus besoin de consulter le site web pour voir les prix ». L'idée d'implémenter une fonctionnalité pour les SMS peut sembler un peu intimidante pour vous. Heureusement, Bluemix fournit un service Twilio, que vous pouvez utiliser, qui gère l'envoi des SMS, ainsi vous pouvez implémenter cette fonctionnalité avec seulement neuf lignes de code.

VI-A - S'inscrire avec Twilio

Si vous n'avez pas encore un compte Twilio, vous aurez besoin de vous inscrire. Vous aurez également besoin de votre Twilio AccountSID, Auth Token (jeton d'authentification), et de votre numéro de téléphone.

1. Allez sur Twilio et inscrivez-vous.

2. Suivez les instructions à l'écran pour vérifier votre compte.

3. Notez votre numéro de téléphone Twilio.

4. Après vous êtes authentifiés et avoir vu votre compte, cliquez sur votre ID dans l'angle droit et sélectionnez « Account ».

5. Dans la section « API Credentials », notez votre AccountSID et l'Auth Token. (Vous pourriez laisser cette page ouverteet continuer ; ainsi vous pourrez copier facilement les informations d'identification.)

VI-B - Ne pas recevoir de SMS

Si vous ne voulez pas recevoir des SMS sur votre téléphone parce que votre opérateur vous facture des montants ridicules, vous pouvez envoyer les SMS à votre numéro de téléphone de compte Twilio. Si vous êtes d'accord pour recevoir les SMS sur votre téléphone, ignorez cette section et continuez sur « Add the Twilio service to the app ».

1. Dans Twilio, cliquez sur « NUMBERS » dans la barre de navigation, au-dessus.

2. Cliquez sur votre numéro de téléphone dans la table « Number ».

3. Dans la section « Messaging », mettez dans la requête d'URL, une URL valide ( ce qui fera que votre numéro de téléphone ne sera pas dans une boucle infinie de réponses aux messages qu'il recevra. Par exemple, vous pouvez remplacer l'URL demandée par un lien vers votre application « Lauren's Lovely Landscapes ».

4. Cliquez sur « Save ».

5. Cliquez sur « Numbers » dans la barre de navigation au-dessus.

6. Cliquez sur « Verify a number ».

7. Cliquez sur « text you instead ».

8. Entrez votre numéro de téléphone Twilio dans la boîte « Phone Number ».

9. Cliquez sur « Text Me ».

10. Dans un nouvel onglet ou fenêtre, allez sur twilio.com et cliquez sur « Account ».

11. Cliquez sur « NUMBERS » dans la barre de navigation au-dessus.

12. Cliquez sur votre numéro dans la table « Number ».

13. Cliquez sur « Inbound » dans la section « Messaging ».

14. Survolez le message dans le tableau pour voir le message entrant. Notez le numéro de vérification dans le corps du SMS.

15. Retournez à l'onglet ou à la fenêtre originale et entrez le numéro de vérification.

16. Cliquez sur « Submit ».

Lorsque vous souhaitez afficher les messages entrants de votre numéro Twilio, revenez à la page des détails de votre numéro et cliquez sur « Inbound » .

VI-C - Ajoutez des services Twilio à l'application

Commencez par ajouter le service Bluemix Twilio à votre application.

1. Dans « Bluemix Devops Services », cliquez sur « EDIT CODE » dans le coin supérieur droit.

2. Cliquez sur le bouton « Open » du tableau de bord de l'application (). La page Bluemix de votre application s'ouvre.

3. Cliquez sur « ADD A SERVICE OR API ».

4. Déroulez vers le bas jusqu'à voir le service Twilio,
astuce : regardez dans la section « Mobile ». Le catalogue est constamment mis à jour avec de nouveaux services.

5. Cliquez sur le service « Twilio ».

6. Dans les zones « Account SID » et « Auth Token » collez votre « AccountSID » et « Auth Token » depuis votre page « Twilio Account Settings ».

7. Cliquez sur « CREATE ».

8. Quand vous serez invités à le faire, lancez votre application en cliquant sur « RESTAGE ».

9. Patientez jusqu'à ce que la page vous indique que votre application est en cours d'exécution.

VI-D - Ajouter le code qui utilise le service Twilio

Ajoutez un code à votre application qui envoie un SMS chaque fois que le prix d'un article est rétabli. Utilisez le service Twilio pour effectivement envoyer le message.

VI-E - Ajoutez Twilio au fichier requirements.txt

Votre application nécessite le module Twilio, vous devez donc l'ajouter au fichier « requirements.txt file ».

1. Dans l'éditeur web, ouvrez « requirements.txt ».

2. Ajoutez une nouvelle ligne à la fin du fichier et saisissez « twilio ».

3. Sélectionnez « File » puis « Save ».

VI-F - Connectez-vous au service Twilio

Pour utiliser efficacement votre service Twilio, vous devez vous y connecter.

1. Dans l'éditeur web, ouvrez le fichier « wsgi.py » .

2. Dans la section « Imports » vers la ligne 55, ajoutez la ligne suivante :

from twilio.rest import TwilioRestClient

3. Dans la partie de la boucle « for » vers la ligne 65, ajoutez les lignes suivantes :

1. if decoded_config[key][0]['name'].startswith('Twilio'):

2. twilio_creds = decoded_config[key][0]['credentials']

3. twilio_authToken = twilio_creds['authToken']

4. twilio_accountSID = twilio_creds['accountSID']

5. twilioClient = TwilioRestClient(twilio_accountSID,             twilio_authToken)

1. Note : soyez sûr que votre espacement avant ces lignes (espaces et tabulations) est identique à l'instruction if qui vérifie si les clés commencent par « cloudant ».

Vos informations d'identification Twilio sont maintenant stockées dans « twilio_creds ». Votre code doit maintenant ressembler à ceci :

1. for key, value in decoded_config.iteritems():

2. if key.startswith('cloudant'):

3. cloudant_creds = decoded_config[key][0]['credentials']

4. cloudant_host = cloudant_creds['host']

5. cloudant_port = int(cloudant_creds['port'])

6. cloudant_username = cloudant_creds['username']

7. cloudant_password = cloudant_creds['password']

8. cloudant_url = str(cloudant_creds['url'])

9. account = cloudant.Account(cloudant_username)

10. login = account.login(cloudant_username, cloudant_password)

11. assert login.status_code == 200

12. db = account.database(dbname)

13. response = db.put()

14. print response.json

15. if decoded_config[key][0]['name'].startswith('Twilio'):

16. twilio_creds = decoded_config[key][0]['credentials']

17. twilio_authToken = twilio_creds['authToken']

18. twilio_accountSID = twilio_creds['accountSID']

19. twilioClient = TwilioRestClient(twilio_accountSID,   twilio_authToken)

4. Enregistrez les modifications en sélectionnant « File » puis « Save ».

VI-G - Ajoutez le code pour envoyer le SMS

Maintenant vient la partie amusante! Il est temps de coder !wsgi.py.

1. Continuez à travailler dans le fichier « wsgi.py » et créez une nouvelle fonction vers la ligne 89 qui envoie le SMS :

wsgi.py

1. def sendTextWithMessage(message):

2. message = twilioClient.messages.create(to="+15555555555", from_="+15555555555", body=message)

2. Remplacez le « to numéro » par le numéro de téléphone ou le numéro Twilio où vous voulez que les SMS soient envoyés (n'oubliez pas le code du pays).

3. Remplacez le « from  numéro » par votre numéro Twilio.(N'oubliez pas le code du pays).

4. Dans la fonction getCurrentPrice,à l'intérieur de l'instruction if qui vérifie que le prix n'est pas null, ajoutez la ligne de code suivante :

1. sendTextWithMessage("The current price of %s is %s" % (item["name"], price))

5. Enregistrez les modifications en sélectionnant « File » puis « Save » .

C'est tout. Vous avez implémenté votre fonction avec seulement neuf lignes de code.

VII - Étape 3 : déployez et testez la fonctionnalité

Maintenant il est temps de déployer votre application dans Bluemix afin de pouvoir la tester.

1. Cliquez sur le bouton « Deploy » () dans la barre au-dessus.

2. Si on vous demande si vous voulez arrêter et redéployer, cliquez sur « OK ».

3. Après que le déploiement de votre application est terminé, cliquez sur le bouton « Open URL » ().

4. Dans votre application, cliquez sur « Get Prices ».

5. Vérifiez votre téléphone ou votre numéro Twilio, si vous n'avez pas reçu de SMS !

Si vous le souhaitez, mettez à jour les prix des articles dans le magasin et obtenez à nouveau les prix.

VIII - Étape 4 : envoyez la fonctionnalité dans le repository

Maintenant que votre fonctionnalité a été testée, il est temps d'envoyer les modifications dans le repository de Git. Faites un lien sur le changement dans l'élément de travail, et traquez la fonctionnalité pour les besoins de la traçabilité.

1. Dans la barre d'icônes, plus à gauche, cliquez sur le bouton « Git Repository » ().

2. Dans la case de la section « Working Directory Changes », saisissez un commentaire semblable à celui-ci : « Modifications pour implémenter la fonctionnalité d'envoi de SMS décrite dans l'élément de travail 20 » puis vérifiez bien que vous remplacez 20 par l'ID de travail associé à l'élément de travail que vous avez créé

3. Sélectionnez chaque modification dans la section « Working Directory Changes » et cliquez sur le bouton « COMMIT ».

4. Dans la section « OUTGOING », cliquez sur « PUSH ».

5. Si vous êtes invité à entrer les informations de votre modification, entrez-les et cliquez sur « OK ».

IX - Étape 5 : achevez la fonctionnalité

Pour indiquer que vous avez terminé votre fonctionnalité, marquez votre élément de travail comme terminé.

1. Dans l'éditeur web, cliquez sur « TRACK & PLAN » dans le coin supérieur droit.

2. Dans le panneau droit, trouvez votre élément de travail associé à la fonctionnalité d'envoi de SMS et cliquez sur l'icône « Status: In Progress ».

3. Cliquez sur « Set Done ».

4. Dans le panneau droit, défilez vers la droite jusqu'à ce que vous trouviez la section « RESOLVED ». Remarquez que votre élément de travail est maintenant marqué comme fait.

X - Étape 6 : découvrez la traçabilité

Lorsque vous avez ajouté un commentaire dans votre commit qui mentionne votre élément de travail, un lien a été créé automatiquement entre le changement et l'élément de travail.

1. Dans le panneau droit, faites défiler jusqu'à « Resolved view », si vous ne voyez pas vos éléments de travail résolus.

2. Cliquez sur le résumé de l'élément de travail associé à la fonctionnalité de SMS pour l'ouvrir.

3. Dans l'élément de travail, cliquez sur l'onglet « Links ».

4. Dans la section « Links », notez qu'un lien a été automatiquement généré pour vous. Cliquez sur ce lien. Le « GIT LOG » s'affiche.

5. Observez que vous avez un résumé de la « Git » validée et ses éléments de travail associés.

6. Cliquez sur « GIT LOG » dans la zone de navigation à gauche et vous verrez une liste de tous vos « git » validés.

XI - Étapes suivantes

Dans la partie 4 de cette série, vous allez créer un pipeline « multistage » et faire une demande d'exécution manuelle. Avant cela, il y a encore beaucoup de choses que vous pouvez explorer à ce stade :

- invitez un ami à rejoindre votre projet. Accédez à la page d'accueil de votre projet, cliquez sur « Members » et invitez un ami à vous rejoindre ;

- créez de nouveaux éléments de travail pour les fonctionnalités que vous souhaitez mettre en œuvre ou des défauts que vous trouvez.

- implémentez certains des éléments de travail que vous avez créés.