Le nouvel enjeu pour les développeurs : le DevOps

En s’appuyant sur sa capacité à industrialiser et automatiser les tâches et à limiter les interventions manuelles, le DevOps permet de réduire considérablement les délais et coûts de mise à disposition des infrastructures et applications.

Les méthodes agiles généralisées depuis un peu plus de 10 ans, permettent aux équipes de développement de produire (coder, construire) rapidement et sans effet tunnel des fonctionnalités métiers demandées par la maîtrise d’ouvrage. Comme leur nom l’indique les méthodes agiles s’appuient sur des organisations et des méthodologies qui permettent aux métiers et au développements de mieux fonctionner ensemble. On pourrait presque parler de MetDev (Métier & Développement)…

DevOps en est le prolongement et permet à une fonctionnalité métier construite par une équipe de développement de se retrouver au plus vite en production. A l’instar des méthodes Agiles, DevOps s‘appuie aussi sur des organisations et des méthodes qui permettent aux développeurs (DEV) de mieux travailler avec la production (OPS). DevOps se base en complément sur tout un outillage qui permet d’industrialiser et d’automatiser les mises en production, mais aussi la mise à disposition et l’administration des infrastructures qui supportent les applications. Ainsi les objectifs du DevOps sont  de réduire le délai entre la construction ou la modification d’un produit et sa mise en production et de multiplier le nombre de mise en production pour satisfaire les directions métiers.

Un marché en pleine accélération

Toutes les directions informatiques ont comme préoccupation de satisfaire toujours mieux et toujours plus vite leurs directions métiers. Elles s’attachent donc à améliorer leurs modèles de fonctionnement et leurs organisations pour devenir plus rapides, plus flexibles et sans cesse continuer à améliorer le « Time to Market ». Selon une enquête IDC de décembre 2015, 50% des entreprises françaises interrogées ont lancé, ou envisagent de lancer une initiative DevOps. Celles-ci s’inscrivent pour plus de 70% d’entre elles dans des projets portés par les enjeux de la transformation numérique auxquels elles doivent répondre.

- D'après le Gartner, 25% des 2000 plus grands groupes mondiaux s'orientent massivement vers une démarche DevOps. De 1,9 milliards de dollars en 2014, le cabinet estime que le marché des technologies DevOps pourrait atteindre 2,3 milliards de dollars en 2015.

- Selon une étude réalisée par Capgemini mi-2015 auprès de plus de 1500 professionnels dans 32 pays, plus de 50% des entreprises intègrent désormais les principes du DevOps à au moins la moitié de leurs projets de développement logiciel. 

Un concept qui accélère le développement des industries

En s’appuyant sur sa capacité à industrialiser et automatiser les tâches et à limiter les interventions manuelles, DevOps permet de réduire considérablement les délais et les coûts de mise à disposition des infrastructures, de déploiement (en production) des applications et de prise en compte des  "changements en production".

Les concepts DevOps associés sont l’« Infrastructure as code », «l’intégration et le déploiement continu » et le « You build It, you run It ».

- L'« Infrastructure as Code » accélère les phases de mise à disposition des environnements qu’ils soient hors-production (dev, test, recette, intégration, pré-production...) ou de production. Cela consiste  à automatiser les phases d’approvisionnement et de mise à disposition des environnements, allant de l’instanciation de VM aux déploiements middleware, en passant par la configuration et l’optimisation des systèmes.

De nombreux outils permettent le codage (dans des langages qui leur sont propres) des infrastructures : installation et démarrage d’un service http, d’un serveur web, création des répertoires pour les fichiers de logs...

- L’« Infrastructure as Code » consiste à gérer les infrastructures et les environnements avec des outils et des méthodes de développement, avec comme sésame les APIs...

- L’« intégration et le déploiement continu » regroupe l’ensemble des actions qui conduisent à la mise en production d’un composant logiciel incluant la compilation, les tests et les déploiements sur un environnement donné.  On distingue 3 niveaux :

  • 1. « L’intégration continue » qui consiste à compiler, tester, déployer un composant logiciel  sur l’environnement de Dev/test.
  • 2. « Le delivery continu » qui en plus de la compilation et de la validation (tests), prend en compte le déploiement automatisé (industriel) sur un environnement hors production.
  • 3. « Le déploiement continu » qui reprend ces activités et pousse le déploiement jusqu’à la production.

Le déploiement en production en mode continu s’appuie nécessairement sur la mise à disposition des infrastructures de manière industrielle, l’automatisation de la chaîne de construction logicielle qui s’appuie sur 3 repositorys (sources, binaires, configuration), la mise en place d’un monitoring performant pour valider la  qualité et les performances des composants exposés en production et la traçabilité des opérations pour les retours arrière en cas de problèmes importants.

Enfin  le dernier concept structurant de l’approche DevOps est celui du « You Build IT, You Run IT », généralisé par les géants de l’Internet (Facebook, Amazon, Google…). L’idée est de donner aux développeurs des responsabilités opérationnelles sur les infrastructures de production, de décloisonner les équipes et de partager une ambition commune : la satisfaction du client/utilisateur. Il induit une meilleure réactivité dans la prise en compte de certains changements ou actions qui sont réalisés directement en production, par les équipes de développement. Celles-ci sont en première ligne lorsqu’un incident ou un problème intervient en production et doivent avoir à disposition des outils (boites à outils/procédures) et bien sûr des droits  fournis par les opérations qui permettent plus de réactivité, plus de souplesse, plus d’agilité.

En résumé, adopter une démarche DevOps consiste à déployer vite en production et s'assurer que par la maîtrise et  l’industrialisation (et donc par répétition) que ces déploiements soient des « non-évènements ».

Un principe qui séduit les entreprises et les industries 

En accélérant le développement, DevOps a déjà séduit les entreprises et de nombreuses industries. En effet, les objectifs et les gains sont multiples pour elles.
DevOps garantit un processus répétable et fiable qui limite les interventions manuelles. Ainsi, cette démarche accroît la productivité en permettant des déploiements automatisés  plutôt qu’un ensemble de tâches manuelles. Par conséquent, elle améliore la traçabilité et permet d’expliquer, de comprendre, de faciliter les diagnostics en cas de problème. Elle facilite les « Retours arrières » grâce à la possibilité de remonter rapidement une infrastructure et d’offrir plus de « self-service » aux équipes de développement et décloisonner ainsi des actions jusqu’à présents réservées à la production.

Comment DevOps transforme le marché de la production ?

L’automatisation est au cœur du concept DevOps. Elle a deux impacts majeurs pour les métiers. Elle entraîne inexorablement une baisse du nombre d’acteurs en particulier dans le monde des SysAdmin. Le concept DevOps, associé à l’explosion des services Cloud, transforment les services IT  et bouscule le nombre d’administration systèmes, de serveurs à prendre en compte.

Le second impact se porte sur la transformation des métiers de l’infrastructure qui offre de nouvelles perspectives aux administrateurs systèmes : scripting, développement d’APIs, création de services, orchestration, autant de nouveaux outils à appréhender réservées jusqu’alors aux professionnels du développement. Ces nouveaux services portés maintenant par les administrateurs systèmes repositionnent les équipes Infrastructures et production dans la chaîne de valeur métier des entreprises !