feature flipping », « dark launch »… Une complexité certes nouvelle mais qui offre le niveau de souplesse nécessaire à ce type de déploiements fréquents
Ces deux pratiques que sont « Infrastructure as Code » et « Continuous Delivery » peuvent être mises en œuvre dans l’organisation telle qu’elle existe traditionnellement (« Infrastructure as Code » chez les ops, « Continuous Delivery » chez les dev). Cependant, une fois que les études et la production auront atteint leur optimum local et un bon niveau de maturité, ces dernières se retrouveront toujours contraintes par cette frontière organisationnelle.
C’est là que le troisième pilier prend tout son sens ; une culture de la collaboration, voire de la coopération, permettant d’autonomiser les équipes et ne plus les rendre interdépendantes/bloquantes d’un point de vue opérationnel. Par exemple pour les « dev », un accès aux logs en lecture sur des machines, la possibilité de monter eux-mêmes les environnements d’intégration avec les données de la production à J-1, l’ouverture aux métriques et aux outils de supervision (voire l’affichage de ces métriques dans les open space)… Autant de gain de souplesse pour les « dev », autant de responsabilisation et de partage de « ce qu’il se passe en prod », autant de tâches à peu de valeur ajoutée que les « ops » n’ont plus à faire.
Les principaux éléments de culture autour de devops peuvent se résumer ainsi :
Reste que dans ce modèle les zones de responsabilités (principalement le développement, la supervision applicative, le support et l’exploitation des data centers) existantes sont quelque peu remises en cause.
Les organisations classiques privilégient l’équipe projet. Dans ce modèle, les processus de déploiement, de supervision applicative et de gestion des datacenters sont répartis sur plusieurs organisations.
Figure 6 : L’équipe projet
A l’inverse, certains acteurs (notamment Amazon) ont poussé ce modèle organisationnel très loin en proposant des équipes multi-disciplinaires qui sont responsables du bon fonctionnement du service (vu du client).
« You build it, you run it ». Autrement dit, chaque équipe est responsable du métier, du « dev » et des « ops » c’est-à-dire de l’exploitation (déploiement, supervision) de l’application en production.
Figure 7 : L’équipe produit : « You build it, you run it »
C’est par ailleurs dans ce type d’organisation que les notions de « self-service » prennent un sens différent et fondamental. Une équipe responsable de l’application et de son fonctionnement, une équipe responsable des datacenters. Une frontière placée plus « en aval » que ce que l’on fait traditionnellement qui permet le passage à l’échelle et assure l’équilibre entre agilité et rationalisation des coûts (notamment lié aux infrastructures datacenters). Le Cloud AWS est très certainement né de là…C’est une autre histoire mais imaginez une organisation en équipe produit et des équipes de production qui proposent une offre de service (au sens ITIL) comme AWS ou Google App Engine…
DevOps n’est donc rien d’autre qu’un ensemble de pratiques qui visent à trouver des leviers d’amélioration autour :
En définitive ces 4 axes permettent d’atteindre les objectifs de DevOps : améliorer la collaboration, la confiance et l’alignement d’objectifs entre les études et la production et travailler en priorité sur les douleurs à adresser, synthétisées sur la figure ci-dessous.
Retrouver toutes les pratiques des Géants du Web sur le site dédié (www.geantsduweb.com) : pdf de l'ouvrage à télécharger, vidéo et compte-rendu de la présentation "Décrypter les secrets des Géants du Web"
Références