Livraison continue : la nouvelle évolution du développement logiciel


Publié par
Ajay SRIDHAR

28 juillet 2016

Livraison continue : la nouvelle évolution du développement digital

Le développement logiciel a énormément évolué au cours des 10 dernières années, quelle sera donc la prochaine étape ? En surfant sur la vague de la transformation agile, la prochaine grande évolution dans le développement logiciel devrait être la livraison continue, qui est déjà la principale initiative pour les organisations IT de grande et petite tailles.

De plus en plus d’organisations adoptent des services cloud, rendant la gestion de produit beaucoup plus dynamique. Cela signifie que les équipes doivent s’adapter en migrant vers des process agiles leur permettant de répondre aux besoins des clients et obtenir des résultats plus rapidement qu’auparavant. Pourquoi adopter la livraison continue ?

La livraison continue est bien plus qu’une tendance – de la même manière que le développement agile a transformé le paysage de l’IT – elle va guider la transformation du « Comment développer et livrer mon logiciel ? ». La livraison continue permet aux organisations de livrer leurs logiciels plus rapidement, à moindre risque, et aide à la collaboration entre le développement et les autres équipes.

Continuous delivery

Une approche « livraison continue » aide aussi les équipes à :

  • Innover plus rapidement : Comprendre par expérimentation quelles sont les fonctionnalités les plus demandées par les clients, et par conséquence celles qui sauront séduire le marché.
  • Créer de la valeur : En livrant les fonctionnalités plus rapidement et par petits incréments, les sociétés peuvent mieux mesurer leur retour sur investissement en recherche et développement.
  • Réduire les coûts et améliorer la qualité : Livrer plus souvent nécessite d’investir dans le contrôle de la qualité, et de réduire les phases de tests en mettant en place des tests automatiques.

Mettre en place la livraison continue

Bonjour Bamboo !

Continuous delivery

Tous les outils d’intégration continue récents – Bamboo et Jenkins compris – ont fait évolué l’intégration continue pour répondre aux besoins grandissants des clients.

Bamboo utilise des stages et des build pipelines afin de gérer le processus de build complet, depuis le Commit de code → Test → Staging builds → Déploiement en production.

Jenkins, de son coté, supporte la livraison continue via des build pipelines.

Dans cet article nous ne verrons pas comment mettre en place les builds pipelines pour la livraison continue avec ces deux outils, étant donné que c’est un sujet à part entière. Mais nous vous conseillons les articles suivants pour en savoir plus :

Bamboo vs. Jenkins

Choisir l’outil approprié est très important. Bamboo et Jenkins peuvent tous les deux être utilisés pour gérer la livraison continue, mais ils ont chacun leurs avantages et inconvénients. Voyons ceci de plus près :

Bamboo  Jenkins  Commentaire
Facilité de mise en place et de configuration Mettre en place Bamboo et Jenkins est simple. Les deux applications sont basées sur Java. Elles peuvent être déployées sur tout type de plateforme avec un JDK Oracle.
Ergonomie  ✓ × Même si ce n’est pas un facteur critique dans le choix d’un outil de CI/CD, Bamboo remporte ce point avec son interface utilisateur très conviviale. Cependant, l’interface de Jenkins est personnalisable via des plugins tierces.
Intégration avec les outils de builds  ✓  ✓ Bamboo et Jenkins possèdent tous les deux un écosystème d’add-ons tierces, ainsi que des APIs pour étendre les fonctionnalités des applications.
Management des branches (DVCS) × Bamboo supporte les systèmes DVCS nativement – Le support inclut aussi la détection automatique de branches et leur gestion.

· Bamboo peut être configuré pour créer des plans à la volée.

· Bamboo peut faire les merge automatiques une fois le build réalisé avec succès.

· Bamboo peut supprimer les branches non-utilisées.

· Jenkins peut gérer les branches, mais a besoin d’être configuré via des scripts et des add-ons..

Pipelines  ✓  ✓ Bamboo peut être facilement configuré pour les build pipeline, avec un modèle de configuration de build pour répondre à des workflows de build complexes.

Jenkins n’est pas nativement compatible avec les build pipelines, mais il existe des add-ons tierces qui ajoutent cette fonctionnalité.

Scaling avec les remote builds  ✓ Bamboo et Jenkins proposent tous deux un support pour les agents remote (appelés slaves dans Jenkins)
Intégration avec la suite Atlassian × Un avantage idéniable pour Bamboo est son intégration avec les outils Atlassian  (JIRA, Bitbucket Server et autres). Cela donne une visibilité sur les branches dans lesquelles un bug ou une tâche JIRA a été corrigé, ainsi que le statut du build associé.

L’intégration de Jenkins avec JIRA est possible, mais très limitée.

Pour conclure

Je pense qu’il faut voir la livraison continue comme une évolution de la philosophie Agile – après tout, que sont de bons scrums et sprints si les équipes ne sont pas capables de mettre à jour les logiciels efficacement ? La livraison continue va transformer la façon dont les entreprises interagissent avec les clients, en s’appuyant sur l’expérience des process agiles et de l’intégration continue.

Tout comme pour l’aspect « change management » de la transformation agile, le problème majeur auquel les entreprises vont devoir faire face lors du passage à un modèle de livraison continue sera le manque d’engagement des équipes dans la transformation de leurs méthodes de travail. Cela dit, les bénéfices de la livraison continue sont si vastes…