Nul ne saurait nier la place prépondérante prise par le numérique aujourd’hui dans le monde professionnel. Il ne laisse d’autre choix aux entreprises que de s’y adapter rapidement afin de rester compétitives. Mais ce besoin d’efficacité, d’agilité, qui complexifie le parcours de mise en production, n’est que la première étape d’une transformation plus globale.

Pour autant, les logiciels ne sont paradoxalement pas déployés dans des environnements de tests ou mis en production plus rapidement. Le manque de contrôle de ce processus de mise en production, la mauvaise collaboration entre les équipes et les déploiements manuels font tous partie du problème. Selon Gartner, d'ici à 2023, 75 % des applications seront déployées via un outil d'orchestration. Cela permettra d'atténuer le problème de déconnexion des processus entre les équipes développement et opérations, et de répondre aux exigences des clients en matière de rapidité et de réduction des risques.

Alors, comment améliorer la qualité et augmenter la vitesse des mises en production et des déploiements sans compromettre la stabilité et la maîtrise des environnements ? Comment rationaliser les processus des équipes DevOps en brisant ces fameux silos organisationnels ? Voici quelques conseils pour appréhender au mieux ce besoin de transformation.

Définir les critères du succès

Quels sont les engagements de l'entreprise ? Il est essentiel de mettre en place des indicateurs pour mesurer le succès et évaluer les progrès. Sur quel type de cadence de mise en production s’est-on engagé et est-ce réalisable ? Est-il possible de mesurer et rendre compte des résultats prévus par rapport aux résultats réels ? Qu'en est-il de la mesure des temps de cycle de déploiement ? Autant de questions qu’il est impératif de se poser. Les entreprises doivent définir et mettre en œuvre les métriques qui soutiennent leur stratégie. Il est également important d'établir un vocabulaire commun de termes et de concepts. En effet, une fois que l’on s’entend sur le sens du « quoi », il est plus facile de passer au « comment ».

Intégrer et orchestrer la chaîne de livraison continue

Une chaîne d'outils implique un ensemble d'outils complémentaires spécifiques à la réalisation d’une tâche, utilisés en combinaison pour automatiser un processus de bout en bout. Il existe de nombreux outils proposés par divers fournisseurs utilisant différentes APIs. Mais dans le cadre d’une mise en production et de déploiement, il faudra gérer cet écosystème complexe avec ses inévitables chevauchements de fonctionnalités plus ou moins identiques. Bien qu'un ensemble d'outils communs à toutes l’entreprise soit souhaitable, il arrive souvent qu’elle n’ait pas la possibilité de contrôler l’utilisation de ces outils au sein de ses différentes entités, il est donc important d'avoir la flexibilité nécessaire pour intégrer ces outils ensemble. 

De plus, l’entreprise doit s’assurer que son outil d'orchestration de mise en production peut s'intégrer à son système de gestion des changements. En effet, le processus de mise en production doit être étroitement couplé au processus de changement pour tracer et s’assurer que tout changement apporté à un service ait bien pris en considération tous les aspects techniques et non techniques. Un outil d'orchestration qui peut prendre en charge d'autres outils et processus en fonction de l'état de la mise en production est un réel avantage.

L’intégration de la chaîne d'outils permet donc d'orchestrer et d'automatiser des processus complexes d'automatisation des déploiements applicatifs. Et cela à travers différents outils et environnements de manière cohérente, sécurisée et reproductible.

Automatiser les déploiements applicatifs

Pour avancer sereinement, les entreprises doivent automatiser leurs déploiements applicatifs avec un seul ensemble de processus, et ce, pour tous les environnements. Elles doivent s’assurer que leurs applications se déploient à partir de la même source et de la même manière.  Lorsqu'un même processus est utilisé, il est plus facilement testable, donc testé, et tout problème est alors plus facile à identifier. Tous les déploiements de pré-production doivent être des répétitions pour le déploiement final en production. Plus ce processus est automatisé, plus il sera répétable et fiable. L’entreprise sera alors prête au moment du déploiement en production et pourra l’exécuter plus sereinement. Ceci se traduira par des interruptions de service extrêmement limitées, une expérience utilisateur grandement améliorée et au final une meilleure rentabilité.

Contrôler et sécuriser les artéfacts

Les artéfacts (sources, binaires, configurations…) constituent le patrimoine de l’entreprise. L'automatisation des déploiements applicatifs et l'utilisation d’un gestionnaire de versions ont été identifiées comme deux des meilleures pratiques. L'utilisation d’un gestionnaire de versions, comme source unique d’informations, permet d’identifier plus aisément les sources d’erreur, de revenir plus facilement en arrière et de déployer rapidement une nouvelle version d’application. Tout ce qui est nécessaire au support et à la bonne exécution de l'application, y compris l'infrastructure et ses configurations associées, doit être sous contrôle et être stocké et historisé dans un gestionnaire de versions sécurisé.

Gestion des environnements de tests et de pré-production

L'utilisation effective et efficace des environnements de tests et de pré-production est essentielle à la réussite d’une mise en production. Mais la gestion de ces environnements est compliquée en raison de la pression du métier qui veut aller toujours plus vite, du grand nombre d'applications et des interactions qu’elles ont entre elles ainsi que de la complexité de l’infrastructure qui les supporte. Le manque de disponibilité des environnements de tests et les conflits entre environnements peuvent retarder les mises en production et augmenter le coût des déploiements.

L'utilisation d'outils tels que Excel ou Word n’est pas adapté pour suivre, tracer et garantir le bon fonctionnement des déploiements dans des environnements de tests devenus si vastes et si complexes. Les entreprises doivent donc être en mesure de mettre en œuvre un processus pour planifier, gérer, suivre et contrôler tous les environnements de tests et de pré-production dans le cadre du cycle de vie applicatif. L'approvisionnement automatisé et en libre-service de ces environnements permet de rationaliser le processus en réduisant les temps de mise en production.

Les déploiements manuels, la collaboration toujours perfectible entre les équipes et le manque de contrôle du processus de mise en production sont autant de facteurs qui conduisent à des mises en production de mauvaise qualité. Elles ont pour conséquence un coût élevé pour les entreprises. Afin d’améliorer leur performance, par exemple du point de vue de l’expérience utilisateur, ou de la rentabilité, les entreprises doivent se tourner vers une approche plus adaptative et plus agile.

Nul doute que l'automatisation est la voie la plus rapide pour de meilleures performances, en augmentant la qualité et la vélocité. Cependant, l'automatisation seule n'est pas suffisante. Les entreprises doivent également orchestrer et intégrer les chaînes d'outils, simplifier les échanges entre les équipes développement et opération, et standardiser un ensemble unique de processus de mise en production et de déploiement.

Par Sylvain Buton, DevOps Solutions Architect chez MicroFocus