De la livraison continue dans mon organisation?
Sébastien Delest
Qui sommes nous?
Sébastien Delest
Formateur, PO, Dev
XP, Scrum, Kanban
Automatisation, tests
De la livraison continue dans mon organisation?
• Quel besoin?
• A quel niveau?
• A quel coût?
De la livraison continue dans mon organisation?
Au fait, c’est quoi?
« Un ensemble de principes et de pratiques permettant de déployer à tout moment une nouvelle version sur un environnement de production »
Le commencement
Equipe dynamique confrontée aux limitations du cycle en V Délai Anomalies Flexibilité
Le commencement
• Demandes de développement
o Mail
o Longue spécification fonctionnelle
• Développements systématiquement isolés
o Une branche par développeur / par fonctionnalité
o Intégration longue et complexe
Le commencement
• Tests
o Plus de 3 semaines de tests manuels
• Construction de la solution
o Plus d’une heure pour préparer le livrable
• Rédaction de la release note
o Difficulté à lister les fonctionnalités
Le déclic
• Trop de gaspillage et de temps perdu
• Les mêmes problèmes reviennent souvent
• Comment travaillent les autres équipes?
• Existe-t-il une solution à ces problèmes?
Premier pas vers l’agile: la rétrospective!
Intérêt pour les méthodes itératives
La transition agile
• Découpage des développement en cycles courts
• Mise en place de backlogs
• Simplification du dialogue entre le dev / support / client / marketing
• Définition d’une stratégie de version / roadmap
• Elimination des problèmes d’intégration
Intérêt pour l’intégration continue
L’intégration continue
• Check-in quotidien et sur la même branche de dev
• Automatisation:
o Build (compilation, tests unitaires, analyse du code, etc.)
o Tests de non régression
o Tests de volume et de performance
o Déploiement (pour test)
Dynamique d’amélioration continue
Succès … et après?
Le déploiement en production
• Déploiement long et manuel
• Gestion de configuration complexe
Problèmes de déploiement récurrents
Intérêt pour la livraison continue
De la livraison continue dans mon organisation?
• Faire du déploiement un non-évènement
• Déployer plus souvent et sans risque
• Inspiration…
De la livraison continue dans mon organisation?
ops-metametrics « the currency you pay for change » John Allspaw
Etat des lieux
« Combien de temps mon organisation met-elle pour déployer un changement qui n’implique qu’une seule ligne de code? »
« Est ce que le procédé est répétable et repose sur des bases fiables? »
Mary et Tom Poppendieck
Lean Software Development
Etat des lieux
Quelle cible pour la livraison continue?
Nouvelle donne
• La livraison continue est-elle compatible avec nos cycles de développement?
• Quelle définition pour « Done »?
Done = Livré, déployé?
• Intégrer la livraison dans nos itérations?
• Quelle stratégie de déploiement?
Axes
• Agile
• Anticiper
• Gérer les risques
• Réduire la complexité
Agile
• Procédé compris et encouragé par l’organisation
• Livrer rapidement de nouvelles fonctionnalités => impact stratégie produit
• L’organisation doit devenir agile
Anticiper
Roadmap produit
Stratégie d’itération
Anticiper
Intégration continue
Anticiper
« Branch by abstraction »
Gérer les risques
Gestions de configuration
• Tout doit être versionné
• Données, configuration, environnement
• Mises à jour incrémentales
Deux environnements de production
Prise de relai sur l’autre
• Défauts
• Mise à jour
Gérer les risques
Blue-green deployment Martin Fowler
Architecture hybride
• Fonctionnalités fct profil utilisateurs
• Migration progressive
Gérer les risques
Gérer les risques
Sécurisation serveurs, données, traitements automatiques
Equipe
Gérer les risques
Tests
• Unitaires, non régression, performance, charge, volume, fonctionnels, etc.
• Déploiement, rollback
Gérer les risques
Monitoring / Surveillance
Gérer les risques
Réduire la complexité
• Mutualiser les clients sur une même plateforme
o Plateforme critique
o Plus facile à maintenir qu’un parc hétérogène
• Chaine de déploiement optimisée
o Chemin critique sur taches automatisés
o Paralléliser les tâches manuelles
Pour conclure
• Continuer la transformation agile (organisation)
• Consolider le procédé d’intégration continue
• Rapprocher Développement – Exploitation (Devops)
• Outils