production rollout: it's alive, it's alive! par pierre killy
DESCRIPTION
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.killyTRANSCRIPT
Production rollout – It's ALIVE !
Viadeo Tech Days 2012
Pierre Killy
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 !
Intégration continue
Mesure
Livraison
Amélioration
Think like the other
Le développeur doit penser comme un
rollout manager
Le rollout manager doit penser comme un
développeur
Le développeur est responsable de tout ce qu'il a écrit, pour toujours
Le rollout manager est responsable du build dans sa globalité
Se rattraper aux branches...
Un projet = une branche
Trunk « releasable »
En prod : release-current
En preprod : release-next
Release-current est déployée tous les jours avec des bugfixes !
Principes : Mise en prod feature :
Création de release-next depuis le trunk
Release-next est testée en preprod : QA, intégration, etc.
Release-next devient release-current et passe en production
Rollout
trunk
Feature C
Feature B
Feature A
release-next
release-current
release-next
release-current
release-next
Features A & BRollout
release-current
Des outils standards...
L'intelligence vient de l'utilisation conjointe des outils
Selenium
Redmine
Hudson
maven3
Subversion
Deb packageSonar
… 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
Industrialiser = automatiser
Branchage, Cherry-picking, build, exécution des tests sont 100 % automatisés
Mise à jour automatique de la pré-productionMise à 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
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
Merci de votre attention,
à vos questions!