Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Devops, ça change quoi pour moi développeur ?

837 views

Published on

1h d’indisponibilité Voyages-sncf.com = 1 M€ de perte
Venez découvrir comment Voyages-sncf.com s’est appuyé sur la démarche DevOps pour innover et garantir un Time To Market concurrentiel tout en conservant un SLA irréprochable
A travers cette session, je vous ferai un retour d'expérience de l'adoption de la démarche au sein de notre entreprise et de l'évolution du rôle de développeur au sein de notre équipe. On parlera BDD, usine logicielle, supervision, suivi de production.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Devops, ça change quoi pour moi développeur ?

  1. 1. @aguilloteau Ça change quoi pour moi développeur ?
  2. 2. @aguilloteau L’agilité pour rapprocher le Dev et le métier
  3. 3. @aguilloteau L’approche Feature Team Product Owner Scrum master Développeurs (front & back) Ops TesteurCustomer experience Marketing Support client Une feature team … en relation avec ses experts et supports
  4. 4. @aguilloteau L’Ops : le grand oublié de l’agilité
  5. 5. @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
  6. 6. @aguilloteau Antony GUILLOTEAU Scrum master @Voyages-sncf.com Militant Software Craftsmanship Votre speaker
  7. 7. @aguilloteau Dev & Ops : des objectifs orthogonaux
  8. 8. @aguilloteau Quelques symptômes
  9. 9. @aguilloteau Quelques symptômes
  10. 10. @aguilloteau Quelques symptômes
  11. 11. @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 ?
  12. 12. @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
  13. 13. @aguilloteau L’évolution DevOps
  14. 14. @aguilloteau L’évolution DevOps
  15. 15. @aguilloteau L’évolution DevOps
  16. 16. @aguilloteau L’évolution DevOps
  17. 17. @aguilloteau L’évolution DevOps
  18. 18. @aguilloteau L’évolution DevOps
  19. 19. @aguilloteau L’évolution DevOps
  20. 20. @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
  21. 21. @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
  22. 22. @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
  23. 23. @aguilloteau Améliorer la coopération Dev & Ops
  24. 24. @aguilloteau Améliorer la coopération Dev & Ops Manque de communication & incompréhension
  25. 25. @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
  26. 26. @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
  27. 27. @aguilloteau Fluidifier l’élaboration du produit
  28. 28. @aguilloteau Fluidifier l’élaboration du produit Développer avec la cible (environnement de production)
  29. 29. @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)
  30. 30. @aguilloteau Développer avec la cible Infrastructure “as a Service” interne Utiliser les mêmes outils que les Ops et contribuer à leurs évolutions Etre autonome sur le provisionning des serveurs
  31. 31. @aguilloteau Fluidifier l’élaboration du produit Adapter le SI aux besoins des développeurs
  32. 32. @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
  33. 33. @aguilloteau Fluidifier l’élaboration du produit Alerter des modifications de comportement
  34. 34. @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
  35. 35. @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
  36. 36. @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
  37. 37. @aguilloteau Fluidifier l’élaboration du produit Monitorer pour prévenir
  38. 38. @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)
  39. 39. @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
  40. 40. @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, ...
  41. 41. @aguilloteau Améliorer la livraison du produit
  42. 42. @aguilloteau Améliorer la livraison du produit Une usine logicielle performante pour livrer rapidement
  43. 43. @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
  44. 44. @aguilloteau Améliorer la livraison du produit Fiabiliser les livraisons
  45. 45. @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
  46. 46. @aguilloteau Améliorer la livraison du produit Un produit stable
  47. 47. @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
  48. 48. @aguilloteau Un produit stable Loi de Murphy : “Tout ce qui est susceptible de mal tourner tournera nécessairement mal” Le produit doit être résilient
  49. 49. @aguilloteau DevOps, une transformation à tous les étages
  50. 50. @aguilloteau Devops, une transformation à tous les étages
  51. 51. @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
  52. 52. @aguilloteau Des changements dans le métier de développeur
  53. 53. @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
  54. 54. @aguilloteau M3RC1

×