Déploiement continu, l'agilité
maximisée?
Agile Tour Montréal 2016
Plan
• Pourquoi je vous parle de ce sujet?
• Qu’est-ce que c’est?
• Est-ce vraiment utile?
• Et les enjeux?
• Comment s’y rendre?
• Et puis…
2
Qu’est-ce que c’est?
3
• Approche popularisée depuis 2010
– Initié par le rappel de
– Accélération de bout en bout de la chaîne de
développement
+ De l’utilisateur au développeur à l’utilisateur
Agile Principle #1
Our highest priority
is to satisfy the
customer
through early and
continuous delivery
of valuable software.
Qu’est-ce que c’est?
4
Développe-
ment
Intégration
Tests
Déploie-
ment
Surveillance
Soutien
Qu’est-ce que c’est?
Développe-
ment
Intégration
TestsDéploiement
Surveillance
Soutien
• Analyse
• Architecture
• Cas de tests
• Cueillette des besoins
• Documentation
• Priorisation
• Programmation
• Tests unitaires
5
Qu’est-ce que c’est?
Développement
Intégration
TestsDéploiement
Surveillance
Soutien
• Assemblage
• Compilation
• Édition de liens
• Gestion des versions
• Modularisation
• Tests d’intégration
6
Qu’est-ce que c’est?
Développement
Intégration
Tests
Déploiement
Surveillance
Soutien
• Tests automatisés
– Acceptation
– Capacité
– Fonctionnels
– Performance
– Régression
– Système
– Vulnérabilité
7
Qu’est-ce que c’est?
Développement
Intégration
Tests
Déploie-
ment
Surveillance
Soutien
• Gestion de la
configuration
• Retour arrière ou de
secours
• Versions multiples
– Canary
– Dark
8
Qu’est-ce que c’est?
Développement
Intégration
TestsDéploiement
Surveillance
Soutien
• Gestion de la capacité
• Surveillance
– Capacité, erreurs,
Fraude, intrusion,
journaux, performance,
plantage, …
– Utilisation
• Tests A/B
9
Qu’est-ce que c’est?
Développement
Intégration
TestsDéploiement
Surveillance
Soutien
• Autonomisation de
l’utilisateur
• Contact omnicanal
• Visibilité des
changements
10
Dev
Int
Tests
Dep.
Surv.
Sou.
Qu’est-ce que c’est?
11
100 jrs 10 jrs 1 jr 0.1 jr 0.01 jr
Monolithique Par service, approche Lean
Spécialisation Continue, infra. souple
Spécialisation Main dans la main
Commutateurs
Autonomisation, retour arrière auto.Spécialisation
Spécialisation Adaptative
Spécialisation Axé innovation
Qu’est-ce que c’est?
12
Développe-
ment
Intégration
Tests
Déploie-
ment
Surveillance
Soutien
Est-ce vraiment utile?
13
Est-ce vraiment utile?
• Marketing accéléré
– plus facile de comprendre ce que les clients
recherchent
• Diminuer le temps de cycle
– mise en marché accélérée
• Produit plus pertinent
– rétroaction rapide des utilisateurs
• Productivité accrue
– automatisation
14
Est-ce vraiment utile?
• Diminution des risques d’une livraison
– petits incréments
• Impacts d’une erreur limités
– erreur rapidement identifiée
• Qualité de l’architecture qui peut se dégrader
– à surveiller
• Proactivité accrue face aux vulnérabilités
15
Et les enjeux?
• Certains clients rébarbatifs
– c’est pas pour tous
• Investissements massifs
– automatiser c’est pas toujours simple
• Rétrocompatibilité avec logiciels tiers et
migration des données
– architecture à revoir
16
Et les enjeux?
• Découvertes des nouvelles fonctionnalités par
les utilisateurs
– comment bien le faire?
• Interruption des opérations
– infrastructure à revoir
• Réglementaires
– conformité à démontrer
17
Et les enjeux?
• Automatisation difficile
– par exemple les tests d’acceptation
• Suivi de la documentation
– défi de synchronisation et de pertinence
• Arrimage des environnements
• Interventions humaines
– cela ralentit la cadence
18
Comment s’y rendre?
19
• Gouvernance
– Culture
+ Gestion de changement
+ Impliquer la haute direction
– Processus
+ Accélérer
+ Automatiser
+ Simplifier
– Structure
+ Aplanir
+ Client-collaborateur
Comment s’y rendre?
20
• Les utilisateurs
– Informer
+ Blogues, Sondages, Wikis, …
– Impliquer
+ Ciblage
+ Production participative
– Former
+ Webinaire
– Liens avec développeur?
Comment s’y rendre?
21
Comment s’y rendre?
22
SOURCE: martinfowler.com/articles/feature-toggles.html
Comment s’y rendre?
23
Équilibreur
de charge
Ancienne version
Nouvelle version
(100 – s) %
s %
Mise en production :
• t : s = 0 %
• t + T : s = 5 %
• t + n T : s = 100 %
Comment s’y rendre?
• Bien surveiller le
nombre de
• Bogues (+sévérité)
• Nombre de dév.
• Nombre de LoC par dév.
• Pannes
• Problèmes rapportés par
les clients
• Tâches de correction
• Utilisateurs
24
Comment s’y rendre?
• Applications mobiles
– Retour arrière et correctifs d’urgence difficiles
– Stabiliser (5 jours) et figer (3 jours) le code
– Suivre la cadence du propriétaire de la plateforme
(1 semaine Android, 2 semaines iOS)
+ Bien choisir la journée de livraison, car la qualité diminue
le jour de la livraison. FB suggère le dimanche
– 1 développeur = 1 fichier de code
+ Le nombre de bogues varie selon le nombre de
personnes qui changent un même fichier par livraison
25
Comment s’y rendre?
– Utilisateur choisit quand il change de version
– Utiliser les commutateurs (feature toggle)
– Versions multiples
+ Appareil
+ Système d’exploitation (type et version)
+ Version de l’application
26
Et puis…
• La fréquence de livraison
– N’affecte pas le nombre d’erreurs critiques
– Affecte peu le nombre d’erreurs de moindre priorité
• Le déploiement continu
– N’affecte pas la productivité des développeurs
27
Mais surtout…
• N’oublions pas notre client-collaborateur !
– Appel à tous sur comment, de façon continue, peut-
on optimiser:
+ l’identification des besoins d’une masse d’utilisateurs?
+ la découverte de nouvelles fonctionnalités?
+ le transfert de connaissances à nos clients?
28
Références intéressantes
+ Leppänen, M. et al., The Highways and Country Roads to
Continuous Deployment dans IEEE Software, Mars/avril
2016.
+ Rossi, C. et al., Continuous Deployment of Mobile
Software at Facebook dans FSE 2016, Novembre 2016
+ Rodríguez, P. et al., Continuous Deployment of Software
Intensive Products and Services: A Systematic Mapping
Study, Journal of Systems and Software, Janvier 2016
+ Ur Raman, A. A. et al., Synthesizing Continuous
Deployment Practices Used in Software Development
dans Agile Conference 2015
29
Dr. Pierre-Martin Tardif, ing., MBA, PMP, CGEIT
pmtardif@visisyst.com
tardifpm
Agile Tour Montréal 2016

Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif