Le cloud, un accélérateur de projet pour les entreprises

L’hébergement des projets dans le cloud permet aux équipes chargées de la mise en œuvre de se focaliser davantage sur le delivery, c’est-à-dire sur les fonctionnalités à livrer que sur les tâches de mise en place de l’infrastructure, de packaging et de déploiement.

Des outils sont proposés par l’hébergeur choisi par l’entreprise afin de gérer de manière automatisée, ou manuelle, en quelques clics, ou lignes dans un script, la création/suppression de machines virtuelles (VM), la mise en place de la base de données, la compilation du code (si nécessaire), le packaging et la livraison de l’applicatif d’un environnement à un autre. Des tests peuvent aussi être exécutés afin de valider la livraison sur l’environnement supérieur et provoquer un retour en arrière dans le cas où la nouvelle version engendrerait une régression. Des nouveaux processus de delivery sont également disponibles : l’intégration continue (CI) et le déploiement continu (CD).

Initialement, le déploiement d’un projet informatique nécessite une phase de développement réalisée par une équipe spécifique, puis, ensuite, une phase de recette avec des testeurs et, enfin, le déploiement en production des développements testés et validés par une équipe de déploiement.

L’intégration continue consiste à intégrer des tests réalisés de manière automatique à un développement : quand un développement est fait, il est associé à un test automatisé qui sera lancé afin de s’assurer qu’il n’y a pas de régression. Si le test est concluant alors le développement est déployé en production automatiquement, c’est le déploiement continu. Si le test n’est pas concluant alors il est retourné au développeur. 

Image 1 : Présentation de l’intégration continue et du déploiement continu (source : GitLab)

La délégation de la mise en place de l’infrastructure à un fournisseur sur le cloud permet une modularité et une scalabilité plus importante de la plateforme. Ainsi, il est relativement aisé de passer de l’hébergement d’un MVP (Minimum Viable Product) pour une population d’utilisateurs restreinte à la généralisation de la solution pour un projet de grande ampleur. Le cloud octroie aussi à l’utilisateur une capacité d’évolutions fortes sur ses décisions d’infrastructure en permettant une configuration par script, interface graphique ou API de son nombre d’environnement, de leur composition, de la mise en place d’un auto-scaling ou encore d’une redondance entre serveur. Ces choix permettent à l’entreprise de gagner en réactivité puisque les modifications peuvent être prises en compte en quelques minutes quand, auparavant, il fallait plusieurs jours pour construire une infrastructure on-premise.

Dans certains cas, comme la mise en place de services de calcul complexe, le dimensionnement de l’infrastructure est difficilement arbitrable en début de projet. Grâce à la modularité présentée plus haut, l’utilisateur a la capacité de tester plusieurs types d’infrastructure et leur dimensionnement afin d’optimiser le rapport coût/performance et d'identifier la solution cible pour le projet. Cependant, l’architecture, ou la conception de l’application en elle-même, comme la gestion des états, pourraient générer des limites dans cette scalabilité et devront être anticipées en phase de conception pour ne pas limiter ces optimisations. 

Les différents hébergeurs cloud (Amazon Web Services, Google Cloud Platform, Microsoft Azure, Alibaba Cloud, etc.) proposent une politique de facturation intéressante puisqu’elle permet aux clients de ne payer que ce qu’ils consomment sur le cloud avec leur modèle « Pay as you go ».
Ce modèle, couplé à la flexibilité du cloud, offre à l’utilisateur la possibilité de créer et supprimer des environnements à la demande et, de fait, d’optimiser les coûts des environnements du projet. Par exemple, le cloud peut offrir une automatisation totale d’une phase de recette d’intégration pour un projet en créant l’environnement, rafraichissant sa base de données depuis une sauvegarde, jouant les cas de test attendus et décommissionnant l’environnement après la génération du rapport de test. De plus, contrairement à des serveurs physiques où le coût d’achat est élevé, le prix est en adéquation avec le besoin de l’utilisateur et aucun frais d’entrée n’est nécessaire pour mettre en place la solution sur le cloud.

Une mise en œuvre demandant de nouvelles compétences, et  pas forcément adaptée à tous les projets

Lorsqu’une entreprise décide de se tourner vers une solution cloud ou envisage une migration sur le cloud d’une application ou de l’ensemble de son parc applicatif, ceci entraîne une transformation de son équipe IT. Désormais, c’est le fournisseur cloud qui devra gérer la partie physique des serveurs, et s’assurer que le logiciel médiateur (middleware) soit à jour et disponible, tâches qui étaient avant à la charge de l’équipe IT de l’entreprise. Travailler sur une solution cloud nécessite donc des compétences spécifiques sur la gestion de l’infrastructure telles que la scalabilité des applications ou la sécurisation de ces dernières et de leur accès. De plus, si l’entreprise fait également le choix d’utiliser des nouveaux processus de delivery - intégration continue et déploiement continu - disponibles sur le cloud, ceci entraine le besoin de nouvelles compétences comme celle de scripting. Cela peut aussi être l’occasion pour l’entreprise d’accroître les tâches confiées aux développeurs qui pourraient à la fois préparer le code, le tester et le déployer sans avoir besoin de tiers. En plus de ces pratiques liées au DevOps qui a pour but de rapprocher les développeurs des équipes Opérationnelles (en charge de l’infrastructure), de nouveaux modèles tel que le Dev-Sec-Ops (Sec pour sécurité) peuvent être envisagés dans le cadre de la mise en place des nouveaux processus de delivery. Ce modèle a pour but de rapprocher les développeurs des personnes en charge de la sécurité de l’entreprise en automatisant certains processus liés à la sécurité et en donnant cette charge aux développeurs. Les responsabilités de chacun sur un projet sont alors redéfinies.

En ce sens, la mise en place d’un projet hébergé sur le cloud dans une entreprise habituée à réaliser des projets on-premise entraîne un changement des habitudes ainsi que des rôles et des responsabilités de l’ensemble des équipes IT. Ces dernières devront être tracées dans un RACI connu et partagé par tous dès le lancement du projet afin de sécuriser son déroulement. Les nouvelles activités liées à ce changement pourront s’accompagner d’un plan de recrutement ou de montée en compétences et potentiellement d’une réaffectation de certains membres de l’équipe IT sur de nouvelles tâches.

La mise en place d’une infrastructure sur le cloud doit aussi amener une réflexion sur la sécurité au sein de l’entreprise. En effet, la sécurité est un des enjeux importants de l’hébergement sur le cloud. Le fournisseur cloud aura la délégation de la mise en place de l’infrastructure physique et mettra à disposition du client de nombreux outils pour administrer cette plateforme. Ces derniers doivent faire l’objet d’une étude d’éligibilité approfondie par une équipe compétente pour chacune des briques techniques et applicatives mise en place dans l’optique de maintenir un niveau de sécurité au moins équivalent à celui du système historique. Ces normes d’éligibilité, définies par les équipes en charge de la sécurité et de l’infrastructures, devront être contrôlées après création de l’environnement afin d’assurer le niveau de sécurité attendu. Des services permettent d’automatiser ce contrôle de l’infrastructure créée et de gagner en efficacité comme les policy sur Microsoft Azure.

L’expérience chez plusieurs de nos clients nous a mené à étudier les solutions proposées par les différents hébergeurs au niveau de la sécurisation des flux entrant et sortant entre le nouvel applicatif hébergé dans le cloud et les différents systèmes existants. Ces systèmes pouvant alors être on-premise ou bien chez un autre hébergeur comme c’est souvent le cas avec les solutions SaaS.  Différents services seront alors à mette en place par le client : la gestion des VPN ; des annuaires ; les notions de chiffrements des flux et des bases de données ou encore la mise en place d’une surveillance et d’un système de notification si nécessaire. Un des points importants sera donc de garantir l’application de la politique de sécurité de l’entreprise en incluant les cas d’utilisation du cloud.

L’aspect financier est aussi à prendre en compte puisque l’utilisation d’une solution cloud tout en maintenant une infrastructure on-premise peut entrainer une multiplicité des coûts. En effet, l’entreprise doit à la fois continuer à investir dans l’architecture on-premise en renouvelant l’infrastructure par exemple, mais également payer les ressources cloud utilisées par la nouvelle solution cloud. Il faut également conserver une équipe technique de maintenance de l’infrastructure on-premise et embaucher du personnel spécialisé dans le cloud pour en assurer le paramétrage et la maintenance. Ce dernier point entraîne une complexité double car deux technologies différentes sont utilisées. En effet, c’est seulement à l’issue de la migration que les coûts seront réduits. Cependant, tout projet de migration nécessite une phase de transition, souvent assez longue, et donc coûteuse, en fonction de l’entreprise, de sa taille et de la politique de migration sélectionnée. C’est pourquoi la migration totale vers le cloud n’est pas forcément l’objectif à atteindre pour l’entreprise qui aura peut-être intérêt à conserver des ressources on-premise afin de limiter les coûts et délais de migration de certaines applications.

Différents cas d’usage adaptés à un hébergement sur le cloud sont reconnus : les plateformes de trading, les sites e-commerces, les services demandant une forte puissance de calcul, les systèmes SaaS, etc.  A l’opposée, la réduction des coûts ne doit pas être pas un motif premier de migration sur le cloud. En effet, il faut attendre la migration complète du système d’information pour obtenir de réelles économies. Cette dernière est un projet à part entière qui peut nécessiter un cadrage important en amont afin de valider l’opportunité du passage sur le cloud. En plus d’une étude d’opportunité, la mise en place d’un centre de compétence cloud peut être nécessaire si l’entreprise ne dispose pas initialement des ressources adéquates. Ce centre d’expertise pourra ainsi définir un premier projet éligible au cloud afin de mettre en œuvre au sein de l’entreprise ce type d’hébergement et les outils liés et pourra la préparer à un plus gros projet, et à plus long termes, à une transition totale vers le cloud. Notons tout de même que réécrire un ensemble d’applications peut avoir un coût et prendre du temps. C’est pourquoi une solution alternative consistant uniquement à changer la plateforme (IaaS) tout en adaptant légèrement le code peut être étudiée et être adaptée à l’entreprise. Néanmoins, dans le cas où l’entreprise aurait déjà un niveau de maturité cloud suffisamment élevé, elle peut aussi envisager un passage vers une plateforme cloud en tant que service (PaaS) et disposer ainsi de l’ensemble de sa chaîne de fabrication de production de son parc applicatif sur le cloud.


Auteurs :

Would you like more information?

Si vous souhaitez en savoir plus à ce sujet, nos experts sont à votre disposition.

Rechercher
Toggle location