Site icon Blog Zenika

ThoughtWorks – Continuous Delivery – Retour de conférence

Jeudi dernier, l’équipe Zenika était présente au séminaire ThoughtWorks qui se déroulait à Paris et animé par Jez Humble, auteur du livre “Continuous Delivery”. Jez Humble et son équipe ont transmit leur savoir sur les grands principes du “Continuous Delivery” durant toute une journée.

Entouré d’une vingtaine de personnes, le séminaire s’est composé d’un ensemble de slides résumant étape par étape la démarche du continuous delivery. Et en fin de journée, nous avons eu une mini-démonstration du logiciel Toughworks GO. Ce dernier est pour le moment le seul logiciel du marché capable d’implanter pleinement un pipeline de continuous delivery, c’est-à-dire une implémentation automatisée (ou semi-automatisée) avec des mécanismes d’approbation (manuel ou automatique) des étapes de build, de déploiement/installation, de test et de livraison. L’objectif est de donner de la visibilité, du feedback et une maîtrise complète de la livraison de ses applications.
Quelques rappels de vocabulaire
“Continuous Integration” est une méthodologie de développement consistant à instancier une instance du processus d’intégration (génération de code, compilation, exécution des tests, ..) à chaque changement d’environnement (source code, filesystem, ..).
“Continuous Delivery” est l’étape suivante et caractérise la possibilité de déployer ses applications à tout moment.
“Continuous Deployment” est la dernière marche du « Continuous » et caractérise le déploiement en continu en production
Quelques notions à retenir

Nos regrets
On regrette parfois la nuance de certaines affirmations au regard par exemple de très grands projets industriels.
Prenons par exemple le développement en branches (ou feature branching). Cette technique est souvent peu recommandée dans un cadre d’intégration continue. En effet, “feature branching” engendre une tendance à intégrer les fonctionnalités au reste du projet tardivement (plusieurs jours, plusieurs semaines, … après le début de l’implémentation de la fonctionnalité) et rend ainsi les merges douloureux avec les branches principales d’intégration. Les merges sont d’autant complexe que le temps d’intégration est grand.
A contrario, l’intégration continue a pour objectif d’intégrer en continu (ou à défaut fréquemment) les développements d’une équipe pour une branche principale et non sur chaque branche de fonctionnalité. Et mettre en place un CI serveur sur chaque branche n’est pas non plus une solution car nous nous retrouvons avec l’intégration de plusieurs versions du produit pour une seule version au finale.
Néanmoins, dans le cadre d’une très grosse équipe avec des livraisons régulières sur la branche d’intégration (deliver), ce problème est réduit significativement. En effet, de part la taille de l’équipe, nous avons en permanence une branche d’intégration alimentée avec des nouveaux éléments de développement et donc une réelle intégration en continue.
En conclusion
Nous avons pu apprécier les retours d’expériences et les échanges avec l’ensemble des participants. Jez Humble est un très bon communiquant et nous avons hâte de le revoir parmi nous à Paris.

Auteur/Autrice

Quitter la version mobile