@aguilloteau
Ça change quoi pour moi développeur ?
@aguilloteau
L’agilité pour rapprocher le Dev et le métier
@aguilloteau
L’approche Feature Team
ProductOwner
Scrum master
Développeurs (front & back)
Ops
TesteurCustomer experience
Marketing
Support client
Une feature team … en relation avec ses experts et supports
@aguilloteau
L’Ops : le grand oublié de l’agilité
@aguilloteau
Le Manifeste Agile
Nous reconnaissons la valeur des seconds éléments mais privilégions les premiers
Les individus et leurs interactions plus que les processus et les outils
Des logiciels opérationnels plus qu’une documentation exhaustive
La collaboration avec les clients plus que la négociation contractuelle
L’adaptation au changement plus que le suivi d’un plan
@aguilloteau
Antony GUILLOTEAUScrum master @Voyages-sncf.com
Militant Software Craftsmanship
Votre speaker
@aguilloteau
Dev & Ops : des objectifs orthogonaux
@aguilloteau
Quelques symptômes
@aguilloteau
Quelques symptômes
@aguilloteau
Quelques symptômes
@aguilloteau
Quelques symptômes
En cas de crise, combien de temps faut-il pour lever une alerte, récupérer les logs, les analyser puis identifier la défaillance ?
Combien de temps pour livrer un correctif en production ?
Quelle sont la fréquence et la simplicité des mises en production ?
Existe-t-il des échanges informels entre Dev et Ops ?
@aguilloteau
Les objectifs du DevOps
Un meme objectif : délivrer le meilleur logiciel aux clients de l’entreprise
Améliorer la coopération entre les Dev et les Ops
Fluidifier l’élaboration du produit
Améliorer la livraison du produit
@aguilloteau
L’évolution DevOps
@aguilloteau
L’évolution DevOps
@aguilloteau
L’évolution DevOps
@aguilloteau
L’évolution DevOps
@aguilloteau
L’évolution DevOps
@aguilloteau
L’évolution DevOps
@aguilloteau
L’évolution DevOps
@aguilloteau
Voyages-sncf en quelques chiffres
4,32 milliardsd’euros de volume d’affaires en 2015
3,1%de croissance
1000 collaborateurs2/3 Dédiés à l’international
52% de femmes et 48% d’hommes
@aguilloteau
Voyages-sncf en quelques chiffres
NUMERO 1 DUE-TOURISME
1er site de voyagesen ligne français
12 millions de visiteurs uniques par mois
80 millionsde voyages vendus en 2015
FLEURON TECHNOLOGIQUE
250 ingénieurs
2 data-centers3500 serveurs
60 téraoctets de données traitées chaque mois
28 ventes par seconde
@aguilloteau
Voyages-sncf en quelques chiffres
Taux de disponibilité de 99,997% soit 15 minutes d’indisponibilité par an
1 heure d’indisponibilité =
1 millions d’euro de VA de perte sur le WEB France
@aguilloteau
Améliorer la coopération Dev & Ops
@aguilloteau
Améliorer la coopération Dev & Ops
Manque de communication & incompréhension
@aguilloteau
Améliorer la coopération Dev & Ops
Intégration des Ops dans la vie du sprint de Dev (présence aux démonstrations fonctionnelles, démonstrations dédiées, participation aux cadrages, …)
Inclure les Ops au plus tôt dans les cadrages et les développements afin d’intégrer leurs besoins et les informer
Privilégier le 1-to1 plutôt que le ticket
@aguilloteau
Améliorer la coopération Dev & Ops
Point hebdomadaire entre Dev & Ops pour échanger sur la vie de la production
Accompagnement des Ops par les Dev lors des bascules de production
Participation des Dev aux communautés de pratique transverses
@aguilloteau
Fluidifier l’élaboration du produit
@aguilloteau
Fluidifier l’élaboration du produit
Développer avec la cible (environnement de production)
@aguilloteau
Développer avec la cible
Environnement similaire du développement à la production, configurations de production répliquées jusqu’aux environnements de développement
Avoir connaissance de l’environnement de production (architecture technique, configuration)
@aguilloteau
Développer avec la cible
Infrastructure “as a Service” interne
Utiliser les memes outils que les Ops et contribuer à leurs évolutions
Etre autonome sur le provisionning des serveurs
@aguilloteau
Fluidifier l’élaboration du produit
Adapter le SI aux besoins des développeurs
@aguilloteau
Adapter le SI aux besoins des développeurs
Les Dev proposent les technologies les plus adaptées au développement du produit
Les Ops challengent les technologies proposées en amont
Les Devs et les Ops sont impliqués dans leurs mises en oeuvre
La responsabilité est partagée entre les Dev et les Ops
@aguilloteau
Fluidifier l’élaboration du produit
Alerter des modifications de comportement
@aguilloteau
Alerter des modifications de comportement
Démarche Behavior Driven Development pour identifier les éventuelles régressions fonctionnelles
Tester n’est pas douter : le développeur doit connaître les cas d’utilisation du produit
@aguilloteau
Alerter des modifications de comportement
Tests de performance automatisés pour ne pas détériorer les performances avec les nouvelles fonctionnalités
S’imprégner du contexte en production et des contraintes de SLA
Monter en compétence sur des outils tels que Gatling ou JMeter
@aguilloteau
Alerter des modifications de comportement
Tests de charges pour s’assurer du bon fonctionnement du produit en production
Connaîtres les cas d’usage significatifs du produit (parcours client)
Savoir analyser des rapports et maîtriser la consommation de la mémoire
@aguilloteau
Fluidifier l’élaboration du produit
Monitorer pour prévenir
@aguilloteau
Monitorer pour prévenir
Définition des indicateurs avec les Dev, les Ops et le métier
Le développeur est à mi-chemin entre la connaissance métier et la connaissance technique.
Définir et produire des indicateurs pertinents (impact sur le code)
@aguilloteau
Monitorer pour prévenir
Les dashboards de supervision techniques et métiers sont réalisés par l'équipe
Monter en compétence sur les outils type Grafana pour construire des tableaux de bord pertinents
Suivre ces tableaux de bord sur les plateformes de production mais aussi hors production
@aguilloteau
Monitorer pour prévenir
Des logs centralisées pour analyser les incidents (ELK)
Etre sensibilisé au bigdata qui permet de stocker un volume d’informations important : temps de rétention des informations, consolidation des données, savoir suivre un parcours client, ...
@aguilloteau
Améliorer la livraison du produit
@aguilloteau
Améliorer la livraison du produit
Une usine logicielle performante pour livrer rapidement
@aguilloteau
Une usine logicielle performante
Dépôt de code versionné (GIT, SVN)
Pipeline de livraison pour déployer automatiquement le produit en construction
Serveur d’intégration continue pour construire automatiquement le produit (Jenkins)
Outil de release pour packager le produit automatiquement
Outil commun avec la production pour le déploiement sur les environnements d’assemblage, d’intégration et de recette
@aguilloteau
Améliorer la livraison du produit
Fiabiliser les livraisons
@aguilloteau
Fiabiliser les livraisons
Validation des installations avec l’exécution des tests fonctionnels (Behavior Driven Development) sur les différents environnements
Environnement ISO-PROD pour valider l’installation
Tests de performance automatisés et tests de charge
@aguilloteau
Améliorer la livraison du produit
Un produit stable
@aguilloteau
Un produit stable
Utiliser les Feature toggle pour déployer souvent en désactivant les fonctionnalités non abouties
Mettre en oeuvre des circuit breaker pour améliorer la résilience de son application
Utiliser le dark launch (production cachée) pour valider au plus tôt les nouvelles fonctionnalités sans impacter tous les utilisateurs
@aguilloteau
Un produit stable
Loi de Murphy : “Tout ce qui est susceptible de mal tourner tournera nécessairement mal”
Le produit doit etre résilient
@aguilloteau
DevOps, une transformation à tous les étages
@aguilloteau
Devops, une transformation à tous les étages
@aguilloteau
Devops, une transformation à tous les étages
Industrialiser l’usine logicielle, la livraison, les tests, le déploiement, le monitoring
Evolution des rôles et missions de chacun : former les Dev et Ops
Privilégier le management matriciel au management opérationnel
@aguilloteau
Des changements dans le métier de développeur
@aguilloteau
Des résultats probants
Site VSC : 4 mises en production par an ⇒ 1 mise en production par mois
Certains projets avec une mise en production à chaque sprint
Des fonctionnalités beta en 3 mois plutôt qu’un cycle de 9 mois
Open source interne pour autonomie des équipes
@aguilloteau
M3RC1