Comment moderniser efficacement son application grâce au cloud ? Pour que la transformation soit un succès, il est impératif d’opter pour une stratégie adaptée qui prenne en compte à la fois les contraintes de l’existant, les problèmes que l’on souhaite résoudre et les bénéfices attendus. Gartner a synthétisé sept approches génériques qui permettent de mettre en lumière ces enjeux.
Le déploiement sur de nouvelles infrastructures n’est que rarement une fin en soi : la migration vers le cloud s’inscrit généralement dans le cadre d’un projet de modernisation grâce auquel l’entreprise
va chercher à réduire ses coûts, améliorer ses performances ou augmenter sa productivité tout en se débarrassant des dépenses d’investissement et des frais de maintenance.
Reste à trouver comment concilier ces promesses avec le legacy, l’héritage souvent constitué d’une dette technique importante et de nombreuses interdépendances avec le reste du système d’information.
L’application doit-elle être portée telle quelle ? Ou faut-il au contraire en profiter pour repenser son architecture ? L’alléger ? Remplacer certains de ses composants ? Repenser le processus de production ? Et vers
quel fournisseur se tourner ?
Chaque application est unique, surtout quand elle est ancienne : il n’y a donc pas de silver bullet qui permettrait de répondre une bonne fois pour toutes à ces questions, mais l’on peut s’inspirer des sept stratégies
de modernisation identifiées par les analystes du Gartner pour amorcer la réflexion.
1/ Encapsuler : mettre à disposition via des API
L’encapsulation constitue selon Gartner une première piste de modernisation. Elle consiste à remplacer les appels standards de l’application par des fonctions équivalentes transmises au moyen d’interfaces de programmation
(API). La gestion des accès et la sécurité peuvent ainsi être délégués à des services gérés indépendamment de l’application. La démarche permet par exemple de
réintégrer une application vieillissante au sein d’un système d’information moderne pour lui redonner de l’intérêt ou de la valeur sans qu’il soit nécessaire de la modifier.
2/ Rehosting : le “lift and shift”
Le rehosting, ou ré-hébergement, cherche à reproduire fidèlement l’architecture d’infrastructure et de services de l’application au moyen de ressources cloud. On va donc « soulever et déplacer
» l’application d’un environnement vers un autre, sans en modifier le comportement.
Le procédé permet une migration rapide et peu coûteuse : il suffit en théorie de provisionner des ressources équivalentes à celles de l’architecture de départ, puis de procéder à une
réplication des tâches et des données. En pratique, la démarche implique tout de même de vérifier que l’ensemble des paramètres du nouvel environnement (réseau, stockage, performances, système
d’exploitation…) convient bien à l’application.
Le rehosting est souvent privilégié quand l’entreprise cherche à diminuer le coût de possession (TCO) lié à ses infrastructures, ou pour profiter des accords de niveau de service du prestataire. Seul, il
ne permet a priori pas de modifier la valeur intrinsèque de l’application puisque cette dernière repose toujours sur son architecture de départ, mais la migration sert souvent de premier palier vers des transformations de
plus grande ampleur.
3/ Replatforming : un environnement d’exécution “as a service”
Avec le replatforming, ou plateformisation, le déploiement de l’application est confié à
un environnement d’exécution chargé de faire le pont entre l’application proprement dit et les infrastructures cloud qui sous-tendent son fonctionnement. Cette couche intermédiaire permet notamment de remplacer tout
ou partie des composants du contexte d’exécution historique de l’application par des services capables de tirer pleinement parti de l’élasticité du cloud.
L’application n’est pas simplement copiée : elle est véritablement redéployée au sein d’un nouvel environnement, ce qui permet d’envisager le recours à des services managés, la mise en
place de scénarios d’automatisation, l’optimisation de l’architecture et le changement de configuration sans pour autant modifier le cœur de l’activité concernée. Le replatforming montre toutefois
ses limites quand l’application mobilise un grand nombre de services externes.
4/ Refactoring : remanier pour optimiser
Le refactoring, ou remaniement, intervient quand le code de l’application mérite des ajustements, soit pour augmenter la valeur produite, soit pour effacer la dette technique, soit pour s’adapter au futur environnement d’exécution.
Le remaniement est une forme d’investissement qui vise à pérenniser et développer l’application en lui conférant des bases adaptées au cloud tout en conservant l’essentiel des investissements déjà
consentis dans l’architecture par le passé.
5/ Rearchitecturing : pour une application nativement cloud
Transposer une architecture monolithique vieillissante dans le cloud a-t-il du sens ? Le projet de modernisation exige parfois une rupture plus franche avec l’existant. Le remaniement cède alors la place à une refonte en bonne et due
forme, avec la conception d’une architecture distribuée, orientée services et gestion de processus. La stratégie consiste alors à isoler les briques fonctionnelles pour les réintégrer au sein d’une
nouvelle structure flexible et évolutive.
6/ Rebuild : repartir d’une feuille blanche
Quand les compétences, les langages ou les systèmes d’exploitation disparaissent, il faut parfois envisager de faire table rase du passé et réécrire l’application. Dans ce contexte, l’application conserve
son périmètre et ses spécifications, mais elle est entièrement re-développée, ce qui permet de gommer la dette technique et d’adopter les outils et environnements les plus adaptés aux solutions
cloud retenues.
7/ Replace : adopter une autre application
Et si votre application ne faisait tout bonnement plus l’affaire ? La dernière stratégie est celle du remplacement, intéressant notamment quand le chantier de modernisation suppose un investissement bien supérieur aux
bénéfices attendus. Gartner suggère alors de remettre à plat ses contraintes et ses objectifs afin de déterminer s’il n’existe pas déjà sur le marché une application susceptible de
répondre au besoin. Remplacer son logiciel RH, son ERP ou son CRM par une solution en Saas permet de s’affranchir des phases de conception et de développement, ce qui libère du temps et des ressources pour les applications
cœur de métier. Attention toutefois aux efforts d’intégration qui peuvent se révéler importants.
Quelle que soit la stratégie retenue au final, la modernisation par le cloud et pour le cloud est une opération complexe qui suppose un examen préalable précis de l’existant, des risques, des bénéfices attendus
et des coûts de mise en œuvre.
À lire également sur le même sujet : “Replatforming applicatif : l’accélérateur de la migration vers le cloud“