Très bonne présentation organisation DevOps

Mise en place d’une organisation DevOps

Cyrille Le Clerc

Comme le mouvement Agile a rapproché donneurs d’ordre et équipes de réalisation autour d’une vision commune orientée « produit », le mouvement DevOps rapproche aujourd’hui les équipes de développement (DEV) et d’exploitation (OPS) autour d’une vision commune orientée « service », afin de mieux concilier réactivité et qualité de service.

DevOps aborde le paradoxe entre des équipes projets qui cherchent à livrer toujours plus fréquemment des nouvelles fonctionnalités d’une part et d’autre part des équipes d’exploitation qui cherchent à stabiliser et fiabiliser les systèmes tout en maitrisant leur coût.

On peut décrire DevOps selon trois axes :

  • Aligner l’exploitation sur les enjeux métiers comme l’agilité a déjà aligné le développement sur le métier.
  • Aligner le développement sur les réalités de l’exploitation pour rendre possible la mise en production, la disponibilité et la fiabilité des fonctionnalités métier.
  • La transformation du métier d’OPS pour gérer des topologies chaque jour plus grosses et plus complexes avec l’adoption d’infrastructure as code et d’outils comme Chef ou Puppet. Les nouveaux OPS sont des programmeurs ! Ils débattent à la machine à café de TDD, de Ruby vs. DSL, de choix d’IDE, de Git vs. SVN, …

DevOps est souvent associé à la mise en place d’un processus de Continuous Delivery qui, dans la mouvance Lean, vise à déployer les fonctionnalités en production au plus vite et de maximiser les feedbacks. Nous reviendrons dans un autre billet sur les processus de Continuous Delivery.

La mise en place d’une culture DevOps touche les humains, les processus et les outils. Nous proposons une démarche englobant ces trois aspects en prenant comme point d’entrée les processus et, de proche en proche, faire évoluer les humains et les outils.

Les processus

Tous les processus impliquant la collaboration des équipes de développement et d’exploitation sont sujets à la mise en place d’une culture « DevOps ». Nous proposons pour la première étape de nous focaliser sur les processus de livraison, de déploiement et de troubleshooting.

Processus de livraison

Le processus de livraison (aka processus de packaging de la release) est la première interaction entre les équipes de développement et de production. Ses défauts causent l’allongement des projets et des interruptions de service. A l’inverse, l’automatisation du processus de livraison concilie « time to market » et diminution des risques en déployant plus fréquemment des changements au périmètre limité.

Nous proposons d’accorder les équipes de développement et d’exploitation sur les points suivants :

  • Périmètre du package pour éviter les transformations et manipulations de mise en production : binaires identiques sur tous les environnements, fichiers de configurations épurées, etc.
  • Rôles et responsabilités des équipes de développement et d’exploitation dans le packaging : binaires pour les développeurs, scripts et paramètres de configuration gouvernés par l’exploitation, etc.
  • Définition des outils et techniques de packaging : tag Subversion/Git, build Maven, repository Maven Nexus, etc.
  • Alignement des environnements de développement, d’intégration et de production pour éviter les écarts dev/prod : on doit tester sur un environnement le plus iso-prod possible.

Processus déploiement

Page 1 of 2 | Next page