Répondant à la demande, le 31 janvier nous rééditerons la soirée des 13 et 20 octobre derniers !
La saison est au Continuous Delivery ! Venez découvrir comment automatiser le déploiement d’une application java web typique sur des serveurs Tomcat via une usine GitHub/Jenkins/Nexus.
Nous verrons plusieurs techniques de déploiement, de la plus simple à la plus sophistiquée :
déploiement sur Tomcat avec des commandes shell lancées par Jenkins au lieu de les lancer à la main ;
utilisation du tomcat-maven-plugin avec les conseils d’Olivier Lamy, lead developer du plugin et committer Tomcat ;
homogénéisation des déploiements du dev à la prod avec Jenkins associé à Rundeck pour gérer des commandes shell. Vincent Behar, committer Jenkins et ‘owner’ du jenkins-rundeck-plugin nous présentera cet outil Open Source en vogue chez les OPS ;
DeployIt : l’outil intégré d’automatisation des déploiements made in Xebia.
Pour avoir plus de détails sur le déroulement de l’atelier et pour vous inscrire, nous vous invitons à utiliser la page dédiée sur Eventbrite.
Pour déployer une application sur un serveur Tomcat distant, nous avons vu précédemment comment utiliser Apache Tomcat Maven Plugin. Nous pouvons aussi utiliser un script. Cette solution plus élaborée est certainement plus proche des solutions d’exploitation existantes aujourd’hui dans nos entreprises.
Dans l’esprit DevOps, il faut avoir un mode de déploiement le plus tôt possible identique à celui de la production. L’approche par script convient ainsi à un maximum d’environnements possibles (du test jusqu’à la production). Pour ce faire, le script sera placé sur le serveur distant et exécuté à distance.
Le but de cet article est de vous proposer une solution pour déployer une application web sur un serveur Tomcat distant à chaque commit sur votre repository. Pour cela, nous allons utiliser le plugin Remote SSH pour Jenkins.
Pour faire simple, imaginez que sur un seul écran vous puissiez voir en un clin d’œil l’état de vos builds (succès/instabilité/échec), le nombre de tests unitaires et d’intégration agrémenté de métriques telles le nombre de lignes de code, la couverture de code et le respect des normes de codages.
Mieux qu’un long discours, nous vous proposons une courte vidéo de 3 minutes qui démontre la facilité avec laquelle vous pouvez démarrer facilement avec l’outil.
Si vous désirez en savoir plus sur le développement de ce projet, nous vous proposons une rétrospective de ces derniers mois, en partant de la genèse du projet jusqu’à son état actuel.
Les 13 et 20 octobre derniers a eu lieu le deuxième Tech Event Xebia avec, cette fois, comme sujet le Déploiement Continu sur Tomcat avec Jenkins, Rundeck et Deployit. Pour l’occasion nous avons eu la collaboration spéciale de deux guest stars :
Olivier Lamy, architecte chez Talend, membre de la fondation Apache et committer sur Tomcat et sur Jenkins
Vincent Behar, ingénieur Java à Exalead, owner du plugin Rundeck pour Jenkins et cofondateur de Paris Devops,
Merci à eux pour leur participation à la préparation de l’atelier ainsi qu’à sa présentation.
Flickr est l’exemple le plus évoqué à l’heure actuelle de déploiement continu. Il existe bien d’autres exemples connus comme Outbrain, Wealthfront ou Etsy. Même si le nombre d’entreprises qui arrivent à ce niveau de maturité est encore faible, il est possible qu’à l’avenir cette méthode devienne une technique courante dans les projets avec la progression de l’agilité. Son implémentation oblige, en effet, à accomplir quelques principes du manifeste agile, dont par exemple :
Une attention continue à l’excellence technique et à la qualité de la conception améliore l’agilité.
Un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet.
Ainsi qu’à en pousser d’autres :
Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts.
Notre première priorité est de satisfaire le client en livrant tôt et régulièrement des logiciels utiles.