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

Post on 07-Jan-2017

379 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

@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

top related