Vidéo : DevOps with WebSphere Liberty Server

Cette retranscription est celle de la vidéo "DevOps with WebSphere Liberty Server", qui explique comment développer, créer et déployer une application avec le serveur Liberty DevOps et des outils en open source. Cette retranscription est le storyboard de la vidéo. La section Audio décrit la narration et les légendes. La section Action à l'écran décrit le contenu affiché dans la vidéo.

Vidéo Demo- DevOps with WebSphere Liberty Server

Tableau 1. Page de titre. Affichage du titre et d'une présentation générale des tâches de génération, de mise à jour, de tests et de déploiement d'une application.
Scène Audio Action à l'écran
1 Cette démonstration va vous expliquer comment générer et déployer votre application avec WebSphere Liberty Server et un jeu d'outils en open source. Affichage du titre Demo - DevOps with WebSphere Liberty Server.
2 Vous allez utiliser Git pour le contrôle des sources, WebSphere Application Server Developer Tools pour développer votre application, et Maven pour la générer. Affichage de l'image de la tâche 1. Develop and Build Application (Développer et générer une application) qui utilise les options suivantes :
  • Git
  • WebSphere Developer Tools (WDT)
  • Maven
3 Vous allez aussi apporter des modifications à votre application Web qui s'exécute sous Liberty et transférer ces modifications de l'environnement de développement intégré Eclipse vers l'environnement de production. Affichage de l'image de la tâche 2. Update Application that uses WDT (Mettre à jour l'application qui utilise WDT).
4 Vous allez utiliser Apache Maven avec le plug-in Maven de WebSphere Liberty afin d'exécuter le test d'intégration permettant de vérifier vos modifications. Affichage de l'image de la tâche 3. Test Application with the Liberty Maven plug-in (Tester l'application avec le plug-in Maven Liberty).
5 Vous allez aussi utiliser Jenkins pour l'intégration continue. Affichage de l'image de la tâche 4. Continuous Integration (Intégration continue) qui utilise Jenkins.
6 Vous allez utiliser Chef pour insérer une nouvelle génération à l'environnement de production.

Liberty sera l'environnement d'exécution Java™ Platform, Enterprise Edition de tous les autres scénarios DevOps. Nous utiliserons une application Airline - AcmeAir comme exemple dans cette démonstration. Elle permettra de s'exercer avec des exemples DevOps contrôlables, et pouvant être recommencés de nombreuses fois.

Affichage de l'image de la tâche 5. Continuous Deploy (Déploiement continu) qui utilise Chef.
Tableau 2. Démonstration du développement et de la génération d'une application
Scène Audio Action à l'écran
7 Commençons par le premier scénario : développer et générer votre application.

Ouvrez Eclipse, dans lequel WDT est déjà préinstallé.

  1. Nous allons définir les préférences de l'espace de travail à utiliser avec Maven.
  2. Nous allons ensuite maintenant cloner un référentiel Git contenant l'application AcmeAir en indiquant l'URI du référentiel Git.
  3. Ensuite, nous importerons l'ensemble de projets AcmeAir basés sur Maven : il y a 5 projets basés sur Maven dans ce référentiel.
  4. Maintenant, nous pouvons exécuter Maven pour générer les projets et de créer les artefacts d'application. Assurez-vous que la génération a abouti une fois terminée.
  5. Nous pouvons maintenant créer un serveur Liberty pour exécuter l'application depuis Eclipse : Indiquez le répertoire d'installation de Liberty.
  6. Nommez également le serveur Liberty.
  7. Nous pouvons ensuite ouvrir le fichier server.xml pour configurer le serveur et exécuter notre application AcmeAir.
    • Tout d'abord, nous allons indiquer le noeud final <httpEndpoint>.
    • Nous ajouterons également la configuration de base de données, laquelle fait référence à une base de données Derby pour les données d'application.
  8. Démarrez le serveur WebSphere Liberty et l'application AcmeAir.
  9. Connectez-vous maintenant à l'application et essayez de l'utiliser.
  10. Vous pouvez sélectionner votre destination et la ville de départ. Vérifiez la disponibilité de ces billets d'avion et effectuez la réservation.
Affichage du titre Step 1 Develop and Build Application (Etape 1 Développer et générer une application).

Démonstration des étapes à effectuer pour développer et générer une application qui utilise WDT.

Ouverture d'Eclipse, dans lequel WDT est préinstallé.

  1. Définition des préférence de l'espace de travail à utiliser avec Maven. Clic sur le bouton Set all Maven values.
  2. Nous allons maintenant cloner un référentiel Git contenant l'application AcmeAir en indiquant l'URI du référentiel Git.
  3. Importation de l'ensemble de projets AcmeAir basés sur Maven : le référentiel acmeair contient 5 projets basés sur Maven.
  4. Exécution maintenant de Maven afin de générer les projets et de créer les artefacts d'application. Assurez-vous que la génération a abouti une fois terminée.
  5. Nous pouvons maintenant créer un serveur WebSphere Liberty pour exécuter l'application depuis Eclipse : Indiquez le répertoire d'installation de Liberty.
  6. Nommez le serveur AcmeAirDemo et ajoutez-y l'application acmeair-webapp.
  7. Ouvrez le fichier de configuration de serveur server.xml file afin de configurer le serveur Liberty pour le service.
    • Remplacez l'élément <httpEndpoint> et ajoutez des éléments de configuration supplémentaires.
    • Ajoutez la configuration de base de données, laquelle fait référence à une base de données Derby pour les données d'application.
  8. Démarrez le serveur Liberty de WebSphere et l'application AcmeAir.
  9. Cliquez sur l'URL de l'application afin de vérifier que cette application est active. Initialisez l'application en chargeant le jeu de données d'un vol.
  10. L'application AcmeAir est maintenant prête à être utilisée.
    • Connectez-vous à l'application, cliquez sur l'action Flights et entrez New York sous Leave From et Paris sous Arrive At.
    • Cliquez sur le bouton Find Flights ou Browse Flights.
    • Sélectionnez un vol de départ en cliquant dessus.
    • Sélectionnez un vol de retour en cliquant dessus.
    • Cliquez sur le bouton Book Select Flights.
Tableau 3. Démonstration de la mise à jour d'une application
Scène Audio Action à l'écran
8

Dans le scénario 2, nous allons apporter une rapide modification à notre application et démontrer comment effectuer une livraison continue avec cela. Pour simplifier le scénario, nous effectuerons une toute petite modification de notre page indexée. Pour remplacer du contenu mis en évidence par ""Welcome to Acme Air"". Désormais, après sauvegarde de ces modifications, vous pouvez actualiser afin de vérifier si le changement est pris en compte.

Affichage du titre Step 2 Update Application (Etape 2 Mettre à jour une application)

Démonstration d'affichage de la page Index qui est mise à jour dans l'application.

Tableau 4. Démonstration du test d'une application
Scène Audio Action à l'écran
9 Nous allons ensuite utiliser le plug-in Maven Liberty pour les tests d'intégration.
  1. L'application AcmeAir comporte un projet acmeair-itests qui contient des tests d'intégration.
  2. Pour activer les tests d'intégration, nous devrons éditer notre fichier pom.xml. Nous devons effectuer quelques petites modifications ici, mais le plus important est que nous allons activer et configurer le plug-in Liberty Maven pour démarrer le serveur Liberty avant nos tests d'intégration puis arrêter le serveur une fois les tests effectués.
  3. Nous allons créer une configuration d'exécution pour les tests d'intégration AcmeAir.
    • Cliquez sur le bouton Run pour exécuter les tests d'intégration. Quelques minutes seulement seront nécessaires pour que l'exécution des tests. La génération aboutit.
    • Examinez la sortie de la console afin de voir que le plug-in Liberty Maven démarre le serveur avant l'exécution des tests et l'arrête une fois les tests terminés.
  4. Vous pouvez afficher le rapport de test et vous assurer qu'il n'indique aucune erreur.
  5. Ensuite, nous allons transmettre les modifications apportées à pom.xml à Git de sorte que les itests puissent s'exécuter dans une génération Jenkins.
Démonstration du test d'une application, avec les étapes suivantes :
  1. L'application AcmeAir comporte un projet acmeair-itests qui contient des tests d'intégration.
  2. Déclenchez l'activation des tests d'intégration en éditant le fichier acmeair-itests/pom.xml.
  3. Activez le plug-in Build Helper Maven afin de détecter un port réseau disponible.
  4. Activez et configurez le plug-in Maven de Liberty pour démarrer le serveur Liberty avant l'exécution des tests d'intégration, puis arrêtez le serveur une fois les tests terminés.
  5. Activez et configurez le plug-in Maven Failsafe pour exécuter les tests d'intégration. Les tests s'appliquent à l'API REST API de l'application.
  6. Créez une configuration d'exécution pour les tests d'intégration AcmeAir.
    • Cliquez sur le bouton Run pour exécuter les tests d'intégration. Les tests doivent aboutir.
    • Examinez la sortie de la console afin de voir que le plug-in Liberty Maven démarre le serveur avant l'exécution des tests.
    • Examinez la sortie de la console afin de voir que le plug-in Liberty Maven arrête le serveur à l'issue des tests.
  7. Consultez les rapports de test sous le répertoire target/failsafe-reports/.
  8. Transmettez les modifications apportées à pom.xml à Git de sorte que les itests puissent s'exécuter dans une génération Jenkins.
Tableau 5. Démonstration d'une intégration continue avec Jenkins
Scène Audio Action à l'écran
10
  1. Dans le scénario suivant, nous allons utiliser Jenkins pour créer et exécuter un travail de génération pour l'application AcmeAir. Le travail va vérifier le code d'application de Git, compiler l'application, exécuter les tests, et enfin publier les artefacts de construction. Avec la configuration de Schedule, le travail va interroger le référentiel Git toutes les deux minutes et démarrer automatiquement une génération si des modifications sont détectées.
    • Indiquez le répertoire d'installation Liberty.
    • Nous allons également ajouter une action post-build et choisir Archive the artifacts.
    • Au bout d'une ou deux minutes, la génération doit automatiquement démarrer.
  2. Une fois la génération du travail terminée avec succès, examinez ses résultats. Le résultat des tests doit indiquer qu'il n'y a aucun échec.
  3. Revenez à Eclipse et validez les modifications effectuées dans la page Index.
  4. Revenez dans Jenkins et au bout de 2 minutes, une nouvelle génération doit apparaître sous le tableau Build History.
Affichage du titre Step 4 Continuous Integration (Etape 4 Intégration continue)

Démonstration d'une intégration continue avec Jenkins, avec les étapes suivantes :

  1. Nous allons utiliser Jenkins pour créer et exécuter un travail de génération pour l'application AcmeAir. Le travail va vérifier le code d'application de Git, compiler l'application, exécuter les tests, et enfin publier les artefacts de construction. Avec la configuration de Schedule, le travail va interroger le référentiel Git toutes les deux minutes et démarrer automatiquement une génération si des modifications sont détectées.
    • Nous allons cliquer sur le bouton Add post-build actions et choisissez Archive the artifacts.
    • Au bout d'une ou deux minutes, une génération doit automatiquement démarrer.
  2. Une fois la génération du travail terminée avec succès, examinez ses résultats. Le fichier acmeair-webapp-1.0-SNAPSHOT.war doit apparaître sous Build Artifacts et Test Result ne doit indiquer aucune erreur.
  3. Revenez à Eclipse et validez les modifications effectuées dans la page Index.
  4. Revenez à Firefox et connectez-vous à l'adresse http://server:9080/jenkins/job/AcmeAir tests/. Au bout de 2 minutes, une nouvelle génération doit apparaître sous le tableau Build History.
    • Cliquez sur la nouvelle génération et vérifiez que le message de validation approprié s'affiche sous Changes.
Tableau 6. Démonstration d'un déploiement continu avec Chef
Scène Audio Action à l'écran
11
  1. Dans le dernier scénario, nous allons effectuer un déploiement continu avec Chef.
    • Ouvrez une fenêtre de terminal.
    • Créez un manuel d'instructions vide
    • Editez le fichier de métadonnées du manuel d'instructions
    • Editez le fichier d'instructions.
    • Envoyez par téléchargement le manuel d'instructions AcmeAir sur le serveur Chef
  2. Enregistrez également le noeud template auprès du serveur Chef.
  3. Vous pouvez définir la configuration de noeud template sur le serveur Chef.
  4. Vous pouvez ensuite remplir le noeud Chef. La commande chef-client s'exécute sur le noeud template. L'application AcmeAir doit être intégralement déployée et lancée sur le noeud template. Pour vérifier, revenez dans Firefox et ouvrez le serveur d'applications template pour consulter les résultats.
  5. Nous allons ensuite créer un nouveau travail de génération Jenkins qui va appeler chef-client sur le noeud the template afin de le mettre à jour, uniquement après l'aboutissement de tous les tests d'intégration.
    • Sur la console Jenkins, éditez le travail AcmeAir tests.
    • Sous Post-build Actions, cliquez sur Add post-build action et choisissez Build other projects.
    • Sous Projects to build, saisissez AcmeAir-Chef.
    • Vérifiez que le travail AcmeAir tests déclenche le travail AcmeAir-Chef en demandant une génération AcmeAir tests.

Nous venons de démontrer un exemple d'utilisation de DevOps avec Liberty et des outils courants en open source. Vous pouvez maintenant vous exercer avec les scénarios End to End DevOps (DevOps de bout en bout) autant de fois que vous le souhaitez. Dans le cadre de cette démonstration, nous avons choisi d'utiliser Chef, WDT, Maven et Jenkins, car ces technologies sont facilement interchangeables avec d'autres outils DevOps tels que uDeploy et Puppet. Merci de votre attention.

Affichage du titre Step 5 Continuous Deploy (Etape 5 Déploiement continu)

Démonstration d'un déploiement continu avec Chef qui comprend les étapes suivantes :

  1. Créez un manuel d'instructions pour déployer AcmeAir
    • Ouvrez une fenêtre de terminal.
    • Créez un manuel d'instructions vide
    • Editez le fichier de métadonnées du manuel d'instructions
    • Editez le fichier d'instructions default.rb
    • Envoyez par téléchargement le manuel d'instructions AcmeAir sur le serveur Chef
  2. Amorcez le noeud Chef et enregistrez le noeud template auprès du serveur Chef.
  3. Définissez la configuration de noeud template sur le serveur Chef.
  4. Remplissez le noeud Chef. Exécutez la commande knife ssh name:template sudo chef-client. La commande chef-client s'exécute sur le noeud template. Chef-client will exécute un ensemble de manuels d'instructions sur le noeud. L'application AcmeAir doit être intégralement déployée et lancée sur le noeud template. Pour vérifier, revenez dans Firefox et connectez-vous à l'adresse http://template:9081/acmeair/.
  5. Remplissez le noeud Chef automatiquement avec Jenkins. Nous allons maintenant créer un nouveau travail de génération Jenkins qui va appeler chef-client sur le noeud the template afin de le mettre à jour, uniquement après l'aboutissement de tous les tests d'intégration.
    • Sur la console Jenkins, éditez le travail AcmeAir tests.
    • Sous Post-build Actions, cliquez sur Add post-build action et choisissez Build other projects.
    • Sous Projects to build, saisissez AcmeAir-Chef.
    • Vérifiez que le travail AcmeAir tests déclenche le travail AcmeAir-Chef en demandant une nouvelle génération AcmeAir tests.

Icône indiquant le type de rubrique Rubrique de concept

Nom du fichier : video_transcript_dev_ops_demo.html