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

54
@aguilloteau Ça change quoi pour moi développeur ?

Upload: antonyguilloteau

Post on 07-Jan-2017

379 views

Category:

Software


1 download

TRANSCRIPT

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

@aguilloteau

Ça change quoi pour moi développeur ?

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

@aguilloteau

L’agilité pour rapprocher le Dev et le métier

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

@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

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

@aguilloteau

L’Ops : le grand oublié de l’agilité

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

@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

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

@aguilloteau

Antony GUILLOTEAUScrum master @Voyages-sncf.com

Militant Software Craftsmanship

Votre speaker

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

@aguilloteau

Dev & Ops : des objectifs orthogonaux

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

@aguilloteau

Quelques symptômes

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

@aguilloteau

Quelques symptômes

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

@aguilloteau

Quelques symptômes

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

@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 ?

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

@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

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

@aguilloteau

L’évolution DevOps

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

@aguilloteau

L’évolution DevOps

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

@aguilloteau

L’évolution DevOps

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

@aguilloteau

L’évolution DevOps

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

@aguilloteau

L’évolution DevOps

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

@aguilloteau

L’évolution DevOps

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

@aguilloteau

L’évolution DevOps

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

@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

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

@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

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

@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

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

@aguilloteau

Améliorer la coopération Dev & Ops

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

@aguilloteau

Améliorer la coopération Dev & Ops

Manque de communication & incompréhension

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

@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

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

@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

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

@aguilloteau

Fluidifier l’élaboration du produit

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

@aguilloteau

Fluidifier l’élaboration du produit

Développer avec la cible (environnement de production)

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

@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)

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

@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

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

@aguilloteau

Fluidifier l’élaboration du produit

Adapter le SI aux besoins des développeurs

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

@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

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

@aguilloteau

Fluidifier l’élaboration du produit

Alerter des modifications de comportement

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

@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

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

@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

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

@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

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

@aguilloteau

Fluidifier l’élaboration du produit

Monitorer pour prévenir

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

@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)

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

@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

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

@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, ...

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

@aguilloteau

Améliorer la livraison du produit

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

@aguilloteau

Améliorer la livraison du produit

Une usine logicielle performante pour livrer rapidement

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

@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

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

@aguilloteau

Améliorer la livraison du produit

Fiabiliser les livraisons

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

@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

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

@aguilloteau

Améliorer la livraison du produit

Un produit stable

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

@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

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

@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

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

@aguilloteau

DevOps, une transformation à tous les étages

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

@aguilloteau

Devops, une transformation à tous les étages

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

@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

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

@aguilloteau

Des changements dans le métier de développeur

Page 53: Devops, ça change quoi pour moi 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

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

@aguilloteau

M3RC1