DevOps : L'esprit collaboratif au service de déploiements plus rapides et plus fiables

Partager

Qu’est-ce que le DevOps ?

Le terme « DevOps » désigne une philosophie et une approche logicielle axées sur la collaboration, notamment pour les phases de test, de packaging et de déploiement. Les pratiques DevOps répondent d'abord à un objectif : effectuer des déploiements plus fréquents et plus fiables. Tout indique qu’un cadre DevOps robuste accroît non seulement la vélocité et la stabilité des déploiements logiciels, mais réduit également les délais de mise à jour et de restauration. Ce n'est pas tout. À l'heure où le cloud et les applications constituent l’épine dorsale de certaines entreprises, le DevOps booste la réactivité des équipes IT et, partant, la satisfaction des clients. Aujourd'hui, les entreprises sont de plus en plus nombreuses à s'équiper des outils et méthodes nécessaires pour instaurer un esprit plus dynamique et plus collaboratif au sein de leurs équipes.

Au commencement étaient la pensée lean et le développement agile. Héritier direct de cette généalogie, le DevOps en étend et en approfondit les principes pour garantir des déploiements plus fréquents et de meilleure qualité. Traditionnellement, l'approche agile se concentre autour de l'ingénieur logiciel et met l'accent sur des développements rapides et incrémentiels. À l’ère du cloud et de la consommation des logiciels en SaaS (et non plus sur site), le « lancement » en tant que tel correspond à la mise en production. Dans ce nouveau contexte, les entreprises ont besoin de déployer de nouvelles fonctionnalités de manière rapide, incrémentielle et continue. Désormais, les méthodologies agiles prennent aussi en considération la rapidité et la qualité des opérations à toutes les étapes, du développement du code jusqu'au déploiement et au suivi continu en production, en passant par les étapes de test, de provisionnement et de configuration. Aujourd'hui, le constat est sans appel. Pour accélérer la vitesse des lancements, développeurs (Dev) et opérations IT (Ops) doivent travailler main dans la main.

Le mouvement DevOps reconnaît et répond à ce besoin. En jouant sur les trois leviers que sont la collaboration, la communication et le partage des responsabilités, l'approche DevOps fluidifie le déroulement des opérations. Surtout, elle prévient la plupart des tensions et retards habituellement liés aux passations entre le développement produit (développeurs et QA) et les opérations IT.


Devops Cartoon

Contexte historique

Commençons par souligner un point essentiel. Le DevOps se situe aux antipodes des méthodes de déploiement traditionnelles. Dans la plupart des entreprises, développeurs et opérations IT évoluent en vase clos, ce qui ralentit considérablement le cycle de déploiement logiciel. Bien souvent, les équipes de développement sont contraintes de passer par les opérations IT pour provisionner et configurer des infrastructures. Impossible donc de déployer des environnements standardisés et reproductibles de manière simple et autonome. Conséquence : les développeurs finissent par développer leur portion de code dans des environnements privés et optimisés, en rupture complète avec la réalité des environnements de production. Après réception de diverses briques logicielles (développées et testées par divers développeurs dans des environnements hétérogènes), les opérations IT constituent une application rassemblant les caractéristiques souhaitées par l’entreprise, notamment en termes de disponibilité, de scalabilité et de sécurité.
Lire la suite

En règle générale, il s’agit là d’un processus manuel, particulièrement lent, complexe et propice aux erreurs. Pour compliquer un peu plus la donne, les opérations IT doivent l'accomplir sans le soutien des développeurs. Par ailleurs, les problèmes rencontrés à l'étape de déploiement sont souvent source de tensions et de méfiance entre les équipes. Pour ne rien arranger, l'adoption croissante du déploiement continu ne fait qu'exacerber ce phénomène. D'un côté, les développeurs doivent livrer des fonctionnalités innovantes rapidement. De l'autre, les opérations IT doivent garantir une stabilité irréprochable. Or, sans une approche automatisée, la seule solution viable est d’introduire les changements au compte-goutte.


Les piliers du DevOps

Si l'approche DevOps n’impose aucune norme dans sa pratique, on peut néanmoins identifier plusieurs traits fondamentaux. Citons notamment son impact sur la culture, les processus et les outils de l'entreprise.

Culture

Les entreprises qui ont bâti un cadre DevOps solide valorisent le succès collectif, la collaboration et le partage des responsabilités. Les développeurs et opérationnels IT sont responsables ensemble du succès d'un déploiement. Pour créer cette cohésion, les entreprises ont parfois recours à des changements organisationnels. Par exemple, elles abandonnent les silos fonctionnels, où les effectifs sont « greffés » sur différents projets, au profit d’un regroupement physique des développeurs et opérationnels, qui travaillent ensemble à la création et à l'exécution de services.
Lire la suite

Dans un esprit constant de solidarité, le DevOps encourage les développeurs et opérationnels IT à approfondir leur compréhension de l'autre et de ses besoins, avec à la clé une collaboration plus efficace. Ainsi, lorsqu'un développeur cerne les contraintes d'un environnement de production, notamment les éventuels points de défaillance, il est plus à même de les intégrer à la conception du code. De leur côté, les opérations IT pourront optimiser les configurations de déploiement grâce à une meilleure compréhension de la conception et des fins visées par telle ou telle application.

En fédérant les développeurs et les opérations IT autour d'objectifs communs, une stratégie DevOps élimine en amont les sources potentielles de tensions, notamment les objectifs conflictuels et contradictoires (développeurs incités à lancer de nouvelles fonctionnalités à marche forcée vs. opérations IT encouragées à faire le moins de changements possible sur les environnements de production.)

Processus

Dans la pratique, le développement d’une culture DevOps nécessite l’établissement de processus communs. L'objectif ? Faire naître entre les développeurs et les opérations IT un canal de communication et de partage d’expertise, ainsi qu’une ossature de collaboration bien définie. Cette approche accélère et structure le cycle de déploiement, de même que la restauration de l’application en cas d'incident. Par exemple, une telle structure pourra désigner les développeurs comme responsables du provisionnement des capacités via des API, mais confier l'implémentation et le support de ces API aux opérations IT. Il pourra aussi établir un contrat/accord selon lequel les API ne feront aucune distinction entre les environnements de développement, de tests ou de production, éliminant ainsi les soucis de parité des environnements, source importante de retards et problèmes.

Autre exemple : l’utilisation d’un référentiel centralisé des dépendances logicielles, maintenu à jour via des scripts développés conjointement. Avec le temps, ces processus collaboratifs favorisent l’enrichissement des connaissances, le développement itératif et le déploiement plus fréquent de modifications incrémentielles, le tout de façon reproductible et pour un risque minime d’interruption de service.

Automatisation et outils partagés

Pour améliorer la fiabilité et la rapidité de leurs déploiements, les entreprises doivent abandonner leurs processus manuels au profit de processus automatisés, cohérents, reproductibles et rationalisés. Pour les entreprises qui s'y refusent, les sources de ralentissement viennent de tous les côtés : provisionnement de capacités, disparité des environnements de développement et production, complexité des compilations/tests, etc.

Le DevOps capitalise sur la mutualisation des outils pour codifier et rationaliser les processus collaboratifs, et ainsi fédérer les développeurs et opérationnels IT autour d'une vision commune du déploiement logiciel. Ces pratiques favorisent la cohérence et l’automatisation, qui elle-même aide les équipes DevOps à accélérer leurs déploiements tout en limitant le temps passé à la résolution des problèmes en production, notamment lors des déploiements ou des reprises d'activité. Aujourd’hui, de nombreux fournisseurs proposent des solutions d'intégration continue ou d'automatisation et de configuration des infrastructures. Toutefois, l’intégration transparente de ces solutions spécialisées entraîne une hausse des coûts et de la complexité, sans retour sur investissement substantiel.




« Les pratiques DevOps sont aujourd'hui largement répandues... Le DevOps ne constitue plus simplement une option ou un simple facteur de différenciation, mais bien un levier essentiel de compétitivité sur le marché. »

Ovum Research; Changes Within and Driven by DevOps; June 2016




Section suivante
Les avantages du DevOps