Support d'une présentation de 2h faite au Nantes JUG décrivant d'un haut niveau jusqu'au détail de gestion de la code base pour notre organisation du Daily Delivery.
La vidéo est ici : https://www.youtube.com/watch?v=V37UJ7_V22s (début à 4:30).
Bonne lecture, et surtout faites nous des retours.
15. @BeastieFurets#LesFuretsContinuous
Time To Market
• 2012 :
➡ Début dev à la MEP : Temps dev + 2 semaines
➡ Non satisfaisant pour le business
• 2014 :
➡ Début dev à la MEP : Temps dev + 2 jours
➡ Quand c’est prêt
16. @BeastieFurets#LesFuretsContinuous
Vue du métier : 2012
• Mindset “Itération” :
➡ Focalisé sur la date de livraison de l’ensemble
➡ Tendance naturelle à charger
• Mauvaises Surprises :
➡ Pas dans la release = Au min 1 itération d’attente
➡ Demande de livraisons séparées (pour voir l’impact !)
17. @BeastieFurets#LesFuretsContinuous
• Mindset “Quand c’est prêt” :
➡ Petit = vite
➡ Tendance naturelle à alléger
• Bonnes Surprises :
➡ Demande de livraisons séparées (pour voir l’impact !)
➡ MVP devient naturel pour décider des gros projets
➡ Pas dans la release = au min +1 jour
Vue du métier : 2014+
27. @BeastieFurets#LesFuretsContinuous
Flux de fonctionnalités
• #1 Fonctionnalités conçues pour être indépendantes
• Livrable dès que c’est prêt
• Découplage des fonctionnalités
• Si dépendant alors attendre ou fusionner
• #2 Fast feedback
• Petites taches vites en production
• Retour chiffré rapide pour prise de décision : stop / cont.
31. @BeastieFurets#LesFuretsContinuous
Environnement Dev
• Chaque fonctionnalité sur une branche feature dédiée
• Code Production (master) + fonctionnalité uniquement
• Isolation sur le poste de chaque développeur (+ alias DNS)
• Environnements quasi iso Production
• Capacité de se focaliser sur ce développement
41. @BeastieFurets#LesFuretsContinuous
Zeno Pixel
• Outil Open Source de comparaison d’images (perceptual diff)
• Développé en interne chez LesFurets.com :
➡ https://github.com/lesfurets/zeno-pixel
• Il existe une conférence dédiée par Matthieu Fourtina
42. @BeastieFurets#LesFuretsContinuous
Zeno Pixel
• Screenshots automatiques des pages du site
• Cross-environment (Stage, Pre-Prod, Prod)
• Cross-device (Desktop, Mobile,Tablet)
• Comparaisons des versions de chaque page
• Calcul des différences graphiques
45. @BeastieFurets#LesFuretsContinuous
Mise En Production
• Réalisée de A à Z par un seul développeur
• Automatisée via Jenkins :
➡ Création de la Release Branche
➡ Déploiement de Release Branche
➡ Merge de la Release Branche dans le master
➡ Création et diffusion de la Release Note
52. @BeastieFurets#LesFuretsContinuous
Alertes & Logs
Chaque logs/traces d'erreurs arrivent par mail
depuis de chaque environnement :
• 200-1000 erreurs / jour, dont 20% depuis le JS
• 1h synthétisée = 1 mail
• 24h synthétisées = 1 mail
53. @BeastieFurets#LesFuretsContinuous
Post Mortem
• Work in progress
• Post Mortem sur chaque incident de Production
• Analyse de la cause profonde
• Suivi de résolution de la cause
• Actuellement 5-10 incidents mineurs par mois, ~1 major