DevOps : rapprocher le développement de la production et accéder à un haut niveau d’automatisation

Derrière le concept DevOps, la volonté est de rapprocher les équipes IT en charge de l’opérationnel de celles dédiées au développement. Une telle approche permet notamment de sécuriser la mise en production des nouvelles fonctionnalités, mais aussi de fluidifier leur livraison selon les besoins. Adopter une approche DevOps, comme le précise Guillaume Schott, Directeur chez CGI, en charge de la filière technique, implique un changement culturel. Cela impose aussi d’adopter une architecture IT optimisée, de mettre en œuvre une plateforme adaptée et d’y intégrer les bons outils.

September 15, 2015

Derrière le concept DevOps, la volonté est de rapprocher les équipes IT en charge de l’opérationnel de celles dédiées au développement. Une telle approche permet notamment de sécuriser la mise en production des nouvelles fonctionnalités, mais aussi de fluidifier leur livraison selon les besoins. Adopter une approche DevOps, comme le précise Guillaume Schott, Directeur chez CGI, en charge de la filière technique, implique un changement culturel. Cela impose aussi d’adopter une architecture IT optimisée, de mettre en œuvre une plateforme adaptée et d’y intégrer les bons outils.

Les départements informatiques sont traditionnellement organisés en silos, avec d’une part une équipe en charge des développements, et d’autre part une autre supervisant la production et le suivi opérationnel des outils métier. Entre les deux, on trouve les équipes chargées d’assurer l’intégration et d’effectuer le testing. « Selon le point de vue des uns et des autres, les enjeux peuvent différer largement. Pour les développeurs, les préoccupations seront orientées vers plus d’agilité, pour une réactivité accrue, et une volonté d’automatiser. Au niveau de la production, c’est avant tout la sécurité, la stabilité, la fiabilité qui sont recherchées », commente Guillaume Schott, Directeur chez CGI, en charge de la filière technique. « Dans la mesure où, généralement, le travail des uns s’arrête ou commence celui des autres, complications et frustrations peuvent se manifester à la frontière, quand vient le moment de mettre les nouveaux développements en production. Adopter une démarche DevOps vise à rassembler le développement et les équipes informatiques veillant sur les opérations, la production, afin de dépasser les divergences, de mieux répondre aux attentes des uns et des autres, avec pour objectif final de mieux servir le business. » Derrière le concept « DevOps », on retrouve une série de concepts connus, et notamment ceux d’agilité, d’intégration continue, d’automatisation…

Changement culturel

Accéder à un niveau de maturité permettant aux équipes de mieux travailler ensemble implique un changement culturel non-négligeable. « Il faut concilier des besoins divergents. Cela passe par une phase de compréhension mutuelle des différents enjeux, à travers laquelle chacun doit pouvoir exprimer ses besoins et être compris par l’autre. Une meilleure communication entre le développement et les opérations est essentielle. Et il faut pouvoir intégrer les opérations le plus tôt possible dans les projets de développement », poursuit Guillaume Schott.

Si, par le passé, le développement d’une application et sa mise en production constituaient deux projets différents, avec DevOps, l’enjeu est de gérer ces deux aspects comme un seul et même projet. Il faut, pour cela, créer un climat de confiance entre les équipes. « Ce qui, parfois, compte tenu du passif existant entre les deux pôles, n’a rien d’évident, explique Guillaume Schott. Y parvenir exige de s’appuyer sur des leaders et des compétences qui parviendront à convaincre l’ensemble des équipes des bénéfices d’une telle approche. »

Des bénéfices évidents

Les bénéfices ? Ils sont nombreux. Une approche DevOps permet de sécuriser la mise en production, d’obtenir une plus grande satisfaction des équipes métier, d’accéder à un time-to-market réduit, de renforcer la confiance des services internes envers l’IT, de fidéliser les utilisateurs finaux, de soutenir le business grâce à des équipes qui collaborent mieux autour de développements pertinents.

Une démarche « DevOps », pour être efficiente, exige de s’appuyer sur de nouvelles compétences : release manager, coordinateur de projets, architectes d’automatisation, ingénieurs DevOps. Ensemble, ils doivent réconcilier les développeurs avec les gestionnaires d’infrastructure, en développant une vision plus étendue.

Se doter de l’architecture et de la plateforme DevOps

Au-delà des aspects « ressources humaines » et de l’implémentation de méthodes de collaboration, une approche « DevOps » optimisée aura un impact sur l’ensemble de l’organisation de l’IT, sur son architecture. « L’infrastructure, la manière dont on va gérer les sources, envisager les releases des divers développements, entre une release de l’ensemble de l’outil (canary release) ou l’activation de nouvelles fonctionnalités (feature toggle), devront être repensées. En fonction des enjeux, chacun adoptera la méthode la plus appropriée », précise le Directeur. Une approche DevOps va en effet devoir s’appuyer sur une plateforme adaptée, intégrant de nouveaux outils, afin de fluidifier le passage d’un environnement de développement vers celui de mise en production, en passant par ceux supportant l’intégration et le testing. »

La mise en œuvre d’une plateforme DevOps, s’appuyant sur une architecture adaptée et les outils adéquats. Elle permet notamment d’automatiser le transfert entre les divers environnements, depuis le développement jusqu’à la mise en production, en passant par l’intégration et le testing. « Cela fait déjà un certain nombre d’années que nous travaillons au départ d’une telle plateforme pour les projets que nous menons ici pour nos clients », poursuit Guillaume Schott.

De l’infrastructure as code au continuous delivery

A partir d’une telle plateforme, en intégrant les bons outils, les équipes informatiques accèdent aux bénéfices de l’infrastructure as code (avec des outils comme Puppet, Ansible ou Chef), de l’intégration continue (avec l’utilisation de Docker, intégré avec GIT ou Jenkins), du testing en continu (Selenium), du continuous delivery ou encore du monitoring continu sur leur projet. « Compte tenu de la diversité des outils, récents et issus de l’univers open source, la difficulté, dans le déploiement d’une plateforme DevOps, réside dans leur intégration optimale. Il faut pouvoir les déployer correctement à travers l’infrastructure, afin qu’ils puissent communiquer ensemble », ajoute Guillaume Schott.

Accéder à un haut niveau d’automatisation

La propre plateforme de CGI lui permet d’accéder à un niveau élevé d’automatisation du développement jusqu’au testing. La société accompagne aussi certains clients dans le déploiement de leur propre plateforme. « On est capable d’automatiser de nombreuses fonctions. Avec de tels outils, on peut désormais déployer des environnements d’intégration ou de test en moins de dix minutes, automatiser le testing ou encore l’installation d’une application, en fonction d’un environnement donné, grâce à des scripts préconfigurés. Cela permet, par exemple, de sécuriser la mise en production et de pouvoir y procéder en un temps record. « L’automatisation de fonctions, cependant, peut s’avérer coûteuse. Pour une application délivrée une fois par an, certes, cela ne vaut sans doute pas la peine. Mais pour des fonctions récurrentes, le retour sur investissement peut être rapide et significatif », conclut Guillaume Schott.

Watch video

In the same category