devops chez voyages-sncf.com
TRANSCRIPT
@aguilloteau
@aguilloteau
Antony GUILLOTEAUScrum master @Voyages-sncf.com
Votre speaker
@aguilloteau
L’agilité pour rapprocher le Dev et le métier
@aguilloteau
L’Ops : le grand oublié de l’agilité
@aguilloteau
Dev & Ops : des objectifs orthogonaux
@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 frequence et la simplicite des mises en production ?
Existe-t-il des échanges informels entre Dev et Ops ?
@aguilloteau
Les objectifs du DevOps
Un meme objectif : delivrer le meilleur logiciel aux clients de l’entreprise
Améliorer la cooperation entre les Dev et les Ops
Fluidifier l’élaboration du produit
Améliorer la livraison du produit
@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 ingenieurs
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
Ameliorer la cooperation Dev & Ops
@aguilloteau
Améliorer la coopération Dev & Ops
Manque de communication & incomprehension
@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, …)
Point hebdomadaire entre Dev & Ops pour échanger sur la vie de la production
Accompagnement des Dev lors des bascules de production
Communautes de pratique transverses
@aguilloteau
Fluidifier l’elaboration du produit
@aguilloteau
Fluidifier l’élaboration du produit
@aguilloteau
Fluidifier l’élaboration du produit
Developper avec la cible (environnement de production)
@aguilloteau
Développer avec la cible
Environnement similaire du développement à la production
Infrastructure “as a Service” interne
Les configurations de production sont répliquées jusqu’aux environnements de développement
@aguilloteau
Fluidifier l’élaboration du produit
Adapter le SI aux besoins des developpeurs
@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
@aguilloteau
Fluidifier l’élaboration du produit
Alerter des modifications de comportement
@aguilloteau
Alerter des modifications de comportement
Demarche Behavior Driven Development pour identifier les éventuelles régressions fonctionnelles
Tests de performance automatises pour ne pas détériorer les performances avec les nouvelles fonctionnalités
Tests de charges pour s’assurer du bon fonctionnement du produit en production
Sous la responsabilite de l’equipe de developpement
@aguilloteau
Fluidifier l’élaboration du produit
Monitorer pour prevenir
@aguilloteau
Monitorer pour prévenir
Définition des indicateurs avec les Dev, les Ops et le métier
Des logs centralisees pour analyser les incidents (ELK)
Le Big data nous permet de stocker ce volume d’informations
Les dashboards de supervision techniques et metiers sont réalisés par l'équipe (Grafana)
@aguilloteau
Ameliorer la livraison du produit
@aguilloteau
Améliorer la livraison du produit
Les Devdeveloppent et livrent
Les Ops installent et exploitent
@aguilloteau
Améliorer la livraison du produit
Une usine logicielle performante pour livrer rapidement
@aguilloteau
Une usine logicielle performante
Depôt de code versionné (GIT, SVN)
Pipeline de livraison pour déployer automatiquement le produit en construction
Serveur d’integration 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
DevOps, une transformation à tous les etages
@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
Mais 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 fonctionnalites beta en 3 mois plutôt qu’un cycle de 9 mois
Open source interne pour autonomie des équipes
@aguilloteau
L’evolution DevOps en synthèse
@aguilloteau
L’évolution DevOps en synthèse
@aguilloteau
L’évolution DevOps en synthèse
@aguilloteau
L’évolution DevOps en synthèse
@aguilloteau
L’évolution DevOps en synthèse
@aguilloteau
L’évolution DevOps en synthèse
@aguilloteau
L’évolution DevOps en synthèse
@aguilloteau
L’évolution DevOps en synthèse
@aguilloteau