Poussées par les impératifs de time-to-market toujours plus réduits, les entreprises s’appuient de plus en plus sur des processus automatisés pour accélérer les développements applicatifs. De la livraison automatique de nouvelles versions sur des plateformes de test jusqu’au déploiement direct en production – étape ultime du DevOps – l’automatisation occupe une place grandissante dans le développement applicatif. Pourquoi automatiser le DevOps ? Quelles sont les principales caractéristiques d’une plateforme d’automatisation ?

Automatiser pour rapprocher les équipes de développement et de production

Entre les évolutions applicatives mineures et les nouveaux projets, les développeurs doivent composer avec des délais très courts. Ils ont généralement peu de temps à consacrer aux tâches de configuration ou de déploiement et cherchent à s’appuyer sur des outils d’automatisation qui s’intègrent facilement avec les outils en place.  D’un autre côté, les équipes en charge des opérations évoluent dans un environnement de plus en plus virtualisé, avec des volumes de ressources en constante augmentation et une multiplicité d’actions de maintenance à réaliser quotidiennement. Ils ont besoin d’un outil de supervision leur offrant une vision claire des actions à réaliser.

Partant du constat que les équipes Dev et Ops sont cantonnées à des rôles antinomiques, la démarche DevOps cherche à les rapprocher et à fluidifier leurs relations. Cela passe par une compréhension mutuelle des problématiques de l’autre, par la mise en place de bonnes pratiques (de type ITIL par exemple) mais cela ne suffit pas. La réussite d’une démarche DevOps implique aussi la mise en place de processus automatisés afin d’insuffler une culture de travail « à la chaîne », du développement jusqu’à la production, avec une très forte collaboration des équipes.

L’automatisation sur le terrain

Plus concrètement, l’automatisation peut éliminer un grand nombre de tâches habituellement supportées par les équipes de production. Prenons l’exemple d’un script d’installation automatisée d’une application. On oublie parfois la quantité de tâches sous-jacentes à ce type d’opération. Un script automatisé peut récupérer un package d’applications stocké sur un serveur de fichier, le déplacer vers une machine cible, le décompresser si nécessaire, déclencher l’installation, injecter des variables telles que des éléments de configuration, démarrer l’application et tester son fonctionnement et interrogeant une page web…

Si le gain de temps et d’agilité est évident, il faut garder à l’esprit l’importance d’uniformiser les méthodes de travail. Prenons l’exemple du groupe CMA-CGM. Malgré le déploiement d’une plateforme d’automatisation, ce géant du transport maritime a constaté que ses opérationnels continuaient à réaliser des tâches manuellement. Pour y remédier, le transporteur a dû s’engager dans un important travail de restructuration de ses équipes informatiques, tout en initiant de nouveaux modes de communications en interne. Moralité : si l’automatisation est un outillage clé pour la mise en œuvre du DevOps, il doit s’accompagner de nouvelles pratiques organisationnelles.

Choisir une plateforme d’automatisation : quelques points d’attention

Une plateforme d’automatisation de type ARA (« Application Release Automation ») regroupe un grand nombre de fonctionnalités. L’automatisation bien sûr, mais également la modélisation d’environnement et la coordination du déploiement. L’intégration des fonctions Run et Build au sein d’une solution d’automatisation exige une plateforme offrant un certain nombre de capacités. Parmi les plus importantes, on peut citer :

  • Une interface utilisateur proposant des objets et modèles réutilisables afin de faciliter la conception de flux de traitements
  • Un moteur d’automatisation s’appuyant sur un référentiel central, robuste et sécurisé.
  • La capacité à supporter des environnements complexes (solutions ITSM, workloads, PRA…).
  • Une intégration transparente dans les processus existants.

Bien implémentée, la plateforme ARA sera un maillon essentiel pour atteindre les objectifs de livraison continue et accélérer ainsi la transformation numérique de l’entreprise.