Focus Devops

INTRODUCTION

Dans la plupart des entreprises, on constate une tension entre les études et la production. Les études testent les dernières technologies afin d’offrir de nouvelles possibilités aux métiers (applications mobiles, objets connectés, etc.). Elles sont en recherche constante d’innovation, de nouveauté. La production est focalisée sur la rationalisation et la stabilité des systèmes. Elle doit assurer une continuité de service vis à vis des métiers, souvent 24h/24 et 7j/7. Pour cela, elle a besoin de systèmes fiabilisés, standardisés, exempts de changements. Les études et la production ont donc un objectif commun, servir les métiers, mais leurs manières d’adresser cet objectif peuvent être orthogonales.

Le mouvement « DevOps » invite à repenser la frontière classique entre les études, qui écrivent le code applicatif (les « Dev ») et la production, qui déploie et exploite ce code (les « Ops »). L’objet est de les faire travailler ensemble, si possible dès le démarrage des projets.

GRANDS PRINCIPES DE DEVOPS

Les 3 piliers de DevOps sont :


  • La culture de la collaboration : créer des modèles d’organisation et des méthodes favorisant le « travail ensemble » des Devs et des Ops, la responsabilisation de tous, le principe du « no blame »1
  • « Infrastructure as code » : permettre aux études de déployer en un clic l’ensemble des composants techniques nécessaires à l’application. A la manière d’une imprimante 3D qui réalise automatiquement l’objet pensé par un designer, sans intervention manuelle d’un artisan.
  • « Continuous Delivery » : proposer un outillage permettant de valider le code issu des études, puis de le passer en production de manière automatique. Avant de permettre ce passage en production, cet automate doit vérifier l’absence de bugs, de failles de sécurité, de réduction des performances, etc.



DevOps est issu des pratiques des géants du Web. Les première sociétés à avoir communiqué sur ces pratiques sont Etsy (site de vente d’objet fait main), Flickr (service de partage de photos), ou Facebook ...

DevOps vient du monde agile. Il applique à la production le principe des itérations courtes, et celui du “harnais de tests” 2. Il permet ainsi des mises en production régulières en les sécurisant. Un des objectifs de DevOps est de promouvoir l’agilité de bout en bout : des études à la production.

Flickr fait ainsi 10 mises en production par jour, Facebook en fait 2. Plus près de nous, le site lemonde.fr est capable de faire 15 mises en production lors d’une soirée électorale.


Un élément intéressant de DevOps est la dissociation du déploiement fonctionnel du déploiement technique. On parle alors de « code dormant ». Classiquement, le fait de déployer fait apparaître les fonctions à l’utilisateur. La dissociation permet de déployer techniquement le code et d’activer les fonctions plus tard, quand le métier le demande, par exemple lors d’une évènement marketing, comme les fameuses Keynotes d’Apple.

ENJEUX

DevOps tend à réduire le « Time to Market ». En effet, la valeur d’une fonctionnalité́ réside dans son usage. Il faut donc accélérer autant que possible la mise à disposition de cette fonctionnalité. Cela passe par des déploiements plus fréquents, plusieurs fois par jour si nécessaire, permettant d’obtenir un retour rapide sur les investissements.

DevOps permet aussi de réduire les coûts notamment en fiabilisant le processus de déploiement. Une étude de 2006 du Microsoft Operations Group montre que presque 50% des budgets de production sont consacrés au déploiement et à la résolution d’incidents liés aux déploiements.

DevOps permet de fiabiliser les déploiements grâce à l‘utilisation de scripts. Il est possible de mettre à jour une architecture de manière prédictible, et de revenir à l’état précédent en cas de problème.

DevOps propose de déployer souvent car une action de routine est souvent mieux maitrisée qu’une action exceptionnelle.

Avec DevOps, la production devient un « opérateur de capacité informatique ». En effet, elle opère une plate-forme totalement automatique qui permet d’autonomiser les équipes des études, à l’image des offres de Cloud Computing comme celle d’Amazon Web Service.