AgileTour Toulouse 2012 : de la livraison continue dans mon organisation

Preview:

Citation preview

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

Outils

Hudson

Pour conclure

• Continuer la transformation agile (organisation)

• Consolider le procédé d’intégration continue

• Rapprocher Développement – Exploitation (Devops)

• Outils