CI/CD, DevOps et cloud : les éléments clés de la modernisation des applications
Les entreprises qui s'attaquent à un vaste projet de modernisation d’applications doivent intégrer 4 éléments dans leur stratégie : la livraison continue (CD), DevOps, les conteneurs et le cloud. La réussite dépend du sens dans lequel ces composants seront mis en place.
Le choix entre conteneurisation, DevOps et migration vers le cloud a de quoi refroidir nombre de directions informatiques, dans leurs projets de modernisation d’applications. La raison : ils évaluent d’abord les options technologiques avant même de déterminer l'objectif.
Si évidemment, les applications doivent subir une forme de modernisation, on sait que cela est notoirement difficile à exécuter. Les entreprises se plaignent par exemple que les objectifs sont trop techniques, et que les coûts dépassent généralement ce qui était prévu.
Les projets de modernisation d’applications sont alors souvent au centre d'une vision technique en tunnel, déconnectés des potentiels gains et ne sont plus pensés comme une façon d'unifier et de d’orienter l'architecture applicative.
Les bons projets de modernisation naissent en général de la volonté d'améliorer la productivité, de réduire les coûts et les erreurs. L‘intégration et la livraison en continu (CI/CD), DevOps et le cloud ou les conteneurs - ou conteneurs dans le cloud – dépendent avant tout des objectifs du projet, de la structure de l'entreprise et de l'architecture des applications.
CI/CD pour la modernisation de toutes les applications
Nombre d’entreprises estiment que la modernisation d’applications qui s’appuient sur des processus de CI/CD est utile car cela réduit le temps nécessaire pour injecter de nouvelles fonctions, et au final améliore le support IT des opérations commerciales. L’amélioration de la productivité passe inévitablement par un meilleur support IT.
L'automatisation des mises à jour via CI/CD permet d’intégrer efficacement aux projets les autres composantes clés : conteneurisation (ou containerisation en anglais), DevOps et la migration vers le cloud. Cependant, CI/CD change les pratiques de développement pour nécessiter aussi une refonte de l'application. Ces processus en continu peuvent également déboucher sur des problèmes d'exploitation.
Quand les coûts entraînent la modernisation
La modernisation d’applications, quand elle est pilotée par les coûts, a provoqué nombre de débats dans les DSI. L'adoption de DevOps, des conteneurs (ou containers) et du cloud public contribuent certes à réduire les coûts IT, mais peu d'entreprises ont toutefois été en mesure d'élaborer une stratégie qui prend en compte toutes ces options. Beaucoup finissent par se concentrer uniquement sur les mauvais points.
Si l’on choisit d’amorcer une modernisation des applications par la question des coûts, il convient de commencer par DevOps -- déploiement et redéploiement automatisé. Si l’entreprise a déjà des méthodologies DevOps en place, elle risque de les conserver. Dans le cas contraire, il existe beaucoup d’outils de gestion de configuration et d'automatisation, comme Chef et Puppet.
La réussite de DevOps est de penser en termes d'états et d'événements applicatifs, que l'outil choisi soit prescriptif ou déclaratif. Les applications doivent avoir un petit nombre d'états fonctionnels spécifiques - comme une charge normale, une charge lourde ou une altération. Et un ensemble de conditions – qui associent les composants entre eux, créent des connexions et les ressources d'hébergement – doit y être relié. L'outil DevOps doit définir les conditions souhaitées ou les étapes nécessaires à atteindre, selon que l'outil est déclaratif ou prescriptif, respectivement. Les événements signalent un changement d'état de fonctionnement et déclenchent donc une activité DevOps.
Les états et les événements sont également clés pour les processus de CI/CD. Dans les workflows de CD, DevOps doit refléter la manière dont les nouvelles fonctionnalités sont développées et déployées, ce qui implique de se concentrer sur la manière dont les fonctionnalités s'adaptent aux composants logiciels.
Qu'il s'agisse d'une modernisation axée sur la productivité ou sur les coûts, une évaluation de DevOps identifiera les éléments réels qui seront déployés et redéployés. Et c'est là que se pose la question cruciale de la décomposition de l’application. Bien que cela doive être un élément clé dans une stratégie de CD, il est aussi possible d’appliquer ces processus CI/CD sans avoir à restructurer les applications. Mais Il n'est pas possible de passer à des processus DevOps sans décomposition des applications.
DevOps, cloud et déploiement de conteneurs
La façon dont on utilise DevOps pour le déploiement et le redéploiement de composants, et le recours aux microservices, est symbolique des orientations futures en matière de modernisation applicative.
Les applications avec des structures front et back end distinctes qui requièrent donc agilité et résilience ont tout à gagner d’une configuration distincte : des services cloud publics pour la partie frontale et des conteneurs pour le back-end.
La DSI doit ensuite trouver des outils de gestion du cloud qui intègrent les éléments frontaux du cloud public au back-end du datacenter. Ils doivent également être compatibles avec les processus DevOps en place. En back-end, les options de déploiement des conteneurs doivent quant à elles s'intégrer facilement aux opérations IT en cours.
Quel que soit l'ordre dans lequel vous considérez les conteneurs, le cloud public et DevOps, il est probable qu'ils joueront tous un rôle dans le projet de modernisation. Mais chaque choix technologique doit s'adapter aux autres.