Le rollout (ou mise en production) est un process necessaire, répétitif, et critique. Nous allons voir quelques grands principes pour l'industrialiser et la sécuriser, et je vous ferais un petit retour d'expérience sur l'automatisation des rollouts chez viadeo
http://fr.viadeo.com/fr/profile/pierre.killy
2. Business requires change
– Il faut évoluer constamment pour rester dans la course
– Le changement est la première cause de problèmes !
– Comment livrer vite et souvent, en restant stable :
Principe de l'intégration continue : évoluer par petites itérations
Des outils simples, utilisés ensemble
Une philosophie de travail
Avancer en maîtrisant le risque !
4. Think like the other
Le rollout manager doit Le développeur doit
penser comme un penser comme un
développeur rollout manager
Le développeur est responsable de tout ce qu'il a écrit, pour toujours
Le rollout manager est responsable du build dans sa globalité
5. Se rattraper aux branches...
Principes : Mise en prod feature :
Un projet = une branche Création de release-next
depuis le trunk
Trunk « releasable »
Release-next est testée en
En prod : release-current preprod : QA, intégration, etc.
En preprod : release-next Release-next devient release-
current et passe en production
Release-current est déployée tous les jours avec des bugfixes !
6. Features A & B
Rollout Rollout
release-current release-current release-current
release-next release-next release-next
trunk
Feature A Feature C
Feature B
7. Des outils standards...
maven3
Sonar
Deb package
Hudson
Subversion
Selenium
Redmine
L'intelligence vient de l'utilisation conjointe des outils
8. … et des indicateurs !
Suivi des erreurs de prod
Analyse automatique des erreurs de release-next en
comparaison avec celles de release-current
KPIs business : chiffre d'affaire, mises en relation, logins, etc.
KPIs par feature, spécifiques aux usages
Réserver son temps pour les tâches à forte valeur ajoutée
9. Industrialiser = automatiser
Branchage, Cherry-picking, build, exécution des tests sont
100 % automatisés
Mise à jour automatique de la pré-production
Mise à jour semi-auto pour le staging et la production
Ne jamais faire 2 fois la même chose : la deuxième fois, il faut
l'automatiser !
Réserver son temps pour les tâches à forte valeur ajoutée
10. Work in progress
Environnements d'intégration pour chaque branche
Traduction in-place, en WYSIWYG
Intégration des erreurs front-end
Des backoffices de suivi et d'alerte sur les indicateurs
Mise en prod features hebdomadaire, puis à la demande, pour
chaque feature
Le process de rollout est en constante évolution