Déploiement continu

Pratique

De quoi s'agit-il?

Le déploiement continu, prolongement de l'intégration continue, est une pratique visant à réduire le plus possible le temps de cycle, le temps écoulé entre l'écriture d'une nouvelle ligne de code et l'utilisation réelle de ce même code par des utilisateurs finaux.

L'équipe s'appuie sur une infrastructure qui automatise l'ensemble des étapes de déploiement (ou "mise en production"), de sorte qu'après chaque intégration qui se solde par des tests passant avec succès, l'application en production est mise à jour.

Quels bénéfices en attendre?

Dans le contexte des entreprises qui l'ont mise en place initialement (startups du Web 2.0), le principal bénéfice du déploiement continu est la réduction du temps de cycle, avec deux effets principaux:

  • le retour sur investissement pour chaque nouveau développement commence bien plus tôt, ce qui limite les besoins en capitaux

  • il est possible d'obtenir très rapidement des retours des utilisateurs sur une nouvelle fonctionnalité, ce qui permet par exemple de tester plusieurs hypothèses et de retenir celle qui représente une amélioration du produit

Quels coûts ou investissements faut-il consentir?

L'infrastructure permettant le déploiement continu tient compte non seulement du test automatisé, mais également (entre autres) de la surveillance du comportement de l'application en production pour détecter rapidement des anomalies qui n'auraient pas été révélée par ces tests, et de la possibilité de retour en arrière très rapide dans le cas d'une telle anomalie. L'investissement nécessaire est donc sensiblement plus important.

Origines

  • cette pratique relativement récente (2008) est représentative de deux tendances dans la communauté Agile:

    • adaptation des pratiques Agiles pour les besoins des nouvelles générations de startups, ou Lean Startup

    • extension de l'approche Agile à des métiers connexes au développement, en l'occurrence les métiers de l'exploitation; c'est le mouvement Devops