Overview

Skill Level: Beginner

Application PHP et MySQL avec déploiement continu depuis un dépôt GIT ou en ligne de commande

Ingredients

 

Notation : [optionnel]

 

  • Compte IBM Cloud nécessaire.

 

Step-by-step

  1. Présentation

    Application qui permet l’affichage de Gateau en PHP depuis une base de données MySQL :

     

    automate-1

    Deux possibilités de déploiement :

     

    deploiement-1

  2. MySQL

     

  3. Instance PHP

    • Déployer l’application suivante en cliquant sur le bouton.
      https://github.com/cherryclass/IBM-patisserie-mysql-php

      Il est spécifié dans le manifest.yml que nous souhaitons une instance PHP. Composer.json indique les dépendances nécessaires et la version de PHP souhaitée. Je vous invite à regarder le contenu de ces fichiers.

      deploiement1-1

    • Accéder à l’application depuis le tableau de bord. Pour accéder au tableau de bord, cliquez sur le menu en haut à gauche.
      Vérifiez la région, l’organisation et l’espace. On retrouve son application. Il suffit de cliquer sur la route correspondante.

     

    port11

     

     

    • Lier l’instance Mysql et reconstituer l’application.

      connexion-1

    • Accéder à {url-application}/patisserie.php pour vérifier que l’accès à la base de données fonctionne.

    patisserie

     

     

  4. Déploiement automatique

    • Accéder à la chaine d’outils de l’application.

    devops1

     

     

    • Réaliser une modification sur votre dépôt Git d’index.php.

    git

    • Accéder à la Delivery Pipeline. A chaque modification de votre dépôt, la delivery pipeline détruira l’instance et redéploira la nouvelle application automatiquement.

    deploiement3-1

     

    buildstage

     

  5. Déploiement en ligne de commande

     

    port6

     

     

    bx login -a https://api.ng.bluemix.net
    bx target --cf

    //ou
    bx login -a https://api.ng.bluemix.net -u mon@email -o monOrganisation-s monEspace

     

    port9

     

    •  Executer la commande pour déployer sur IBM Cloud, bx cf push.
      Après un certain nombre de lignes, l’application est démarrée s’il n’y a pas d’erreur dans le manifest.

     

    port10

    •  Acceder à l’application via l’URL.

    NOTA : Une meilleure solution serait de mettre à jour le dépôt Git de l’étape 4 . Pour les commandes de base :
    https://frebourg.es/git/

     

     

  6. [ Erreur de déploiement ]

     

    Méthode 1 :

    • depuis l’interface

    journal

     

     

    Méthode 2 :

    • Afficher les logs de l’application en remplacant le nom de celle-ci dans la ligne de commande.
    bx cf logs MON_APPLI --recent

     

    console

     

     

  7. [ Ajouter une chaîne d'outils à une application ]

    Il est également possible d’ajouter une chaîne d’outils à une application déjà fonctionnelle.

    • Créer une application PHP
    • Dans le tableau de bord, cliquer sur l’application puis dans cue d’ensemble, cliquer sur Activer.

    devops2

     

    NOTA (BUG 12-08-18): Lors d’un déploiement depuis un dépôt grâce à “Deploy to IBM Cloud”, l’activation de la distribution continue n’est pas réliée à l’application alors qu’elle existe !

    Rechercher la chaine d’outils de l’application dans le menu DevOps et effectuer directement les modifications dans le dépôt Git. L’application sera redéployée automatiquement.

    Si vous activez la chaine d’outils ici, une seconde chaine sera créée et ne sera pas reliée à cette application.

     

     

  8. [ Réaliser sa propre chaîne d'outils ]

    • Rechercher le service Toolchain dans le catalogue.

    toolchain

     

     

    • Réaliser ou séléctionner des dépôts Git possedant un manifest et pointer le service Git vers ce dépôt.
    • Ajouter un service de construction et de déploiement pour la Delivery Pipeline. Il est possible de réaliser les deux étapes dans un seul service. Pour le déploiement, il est nécessaire d’écrire une ligne de commande :
    bx cf push "${CF_APP}"

     

    NOTA : Il est possible d’avoir plusieurs dépôts et de réaliser plusieurs déploiements dans une chaine d’outils.

     

  9. What else ?

    Ces tutoriels peuvent vous intéresser :
    https://developer.ibm.com/recipes/author/l-frebourg/

    https://frebourg.es/#cloud

     

Join The Discussion