@aguilloteau
@aguilloteau
Antony GUILLOTEAU
Scrum 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 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 même 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
Voyages-sncf en quelques chiffres
4,32 milliards
d’euros de volume d’affaires en 2015
3,1%
de croissance
1000 collaborateurs
2/3 Dédiés à l’international
52% de femmes et 48% d’hommes
@aguilloteau
Voyages-sncf en quelques chiffres
NUMERO 1 DU
E-TOURISME
1er site de voyages
en ligne français
12 millions de visiteurs
uniques par mois
80 millions
de voyages vendus en 2015
FLEURON
TECHNOLOGIQUE
250 ingénieurs
2 data-centers
3500 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, …)
Point hebdomadaire entre Dev & Ops pour échanger sur la vie de la
production
Accompagnement des Dev lors des bascules de production
Communautés de pratique transverses
@aguilloteau
Fluidifier l’élaboration du produit
@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
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 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
@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
Tests de performance automatisés 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 responsabilité de l’équipe de développement
@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
Des logs centralisées pour analyser les incidents (ELK)
Le Big data nous permet de stocker ce volume d’informations
Les dashboards de supervision techniques et métiers sont réalisés par
l'équipe (Grafana)
@aguilloteau
Améliorer la livraison du produit
@aguilloteau
Améliorer la livraison du produit
Les Dev
développent 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
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
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
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 fonctionnalités beta en 3 mois plutôt qu’un cycle de 9 mois
Open source interne pour autonomie des équipes
@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
L’évolution DevOps en synthèse
@aguilloteau

Devops chez Voyages-Sncf.com

Notes de l'éditeur

  • #2 Aller plus loin ensemble
  • #3 Scrum master Voyages-sncf agilité à l’échelle de l’entreprise depuis 2012 (Chaîne Youtube VSC) Travaille actuellement sur un projet organisé en 3 équipes Scrum / mise en place démarche DevOps Mon leitmotiv : que tout le monde travaille ensemble en partageant un objectif commun
  • #5 Rappel valeur : logiciel opérationnel plutôt que documentation exhaustive Interaction plutôt que processus Adaptation au changement plutôt que suivi d’un plan Moindre mesure : La collaboration avec les clients plus que la négociation contractuelle
  • #6 Dev (développement) : évolution des systèmes Ops (exploitation) : garants stabilité et disponibilité des systèmes
  • #7 Fréquence et simplicité de MEP : Les Ops sont rarement impliqués au démarrage des projets. Il s’ensuit des délais allongés entre la livraison des applications et celle des machines qui serviront de socle Existe-t-il des échanges informels entre Dev et Ops ? Souvent uniquement par mail ou par ticket (type JIRA)
  • #8 Coopération : Construire et MCO en commun Fluidifier Développer avec la cible (environnement de production) et adapter le SI aux besoins des développeurs. Alerter et monitoring (prévenir) Livraison Rapidité du TTM en garantissant la fiabilité et la stabilité du produit
  • #13 Peu d’échanges (dév ➔ ops pour aider l’installation et l’exploitation, ops ➔ dév pour améliorer le monitoring techniques ET métier) Coopération : Construire et MCO en commun
  • #16 Développer avec la cible (environnement de production) et adapter le SI aux besoins des développeurs. Monitoring
  • #18 Environnements similaires version logicielle, architecture (apache) Infrastructure as a service : Les dév ne sont plus ralentis par la mise à disposition d’environnement Les dev ne ralentissent plus les Ops avec des demandes d’actions sans valeur ajoutée
  • #26 Pour être informé des modifications de comportement
  • #34 Impacts opérationnels et managériaux
  • #35 Evolution des rôles : Le Dev fait de l’Ops : sensibilisation L’Ops fait du Dev (équipe pluri disciplinaire) : former et accompagner le changement Management matriciel : Les équipes sont éphémères (la durée d’un projet)
  • #38 Waterfall (cycle en V) Mise en production espacées avec un contenu important (1 à 2 releases par an) Souvent dans la douleur ➔ phase de validation en fin de version
  • #39 Agile Cycle itératif avec un produit « testable » à la fin de chaque itération ➔ à des fins de validation et non d’installation Notion de release qui regroupe plusieurs itérations
  • #40 Lean : se base sur l’agile, industrialisation des processus, partage de connaissance dans l’équipe, pluri-disciplinarité des membres de l’organisation Toyota et le kaisen
  • #41 Continous integration : Capacité de tester et déployer automatiquement et de manière industrialiser le soft
  • #42 Continous delivery L’équipe produit un software sur des cycles courts, pouvant être releasé n’importe quand
  • #43 Continous deployment : Chaque changement (i.e. commit) est déployé en production
  • #44 Continous operations ou « Canary Release » Déploiement blue / green 0 downtime Facilité de rollback Minimise les risques d’échec (First Attempt In Learning) Démarche nécessaire pour l’AB testing