Pour tirer pleinement parti de l'évolutivité et de la flexibilité du cloud, la plupart des entreprises vont au-delà d'une simple approche Lift and Shift, en injectant plutôt des capacités cloud-native. Une stratégie simple sur le papier, mais qui peut rapidement s'avérer complexe en pratique. Comme pour de nombreuses tâches apparemment faciles, le diable se cache dans les détails.
Pour que la modernisation d'une application patrimoniale pour le cloud ne devienne pas un processus long et pénible, encore faut-il avoir des attentes réalistes et être parfaitement préparé à aborder la tâche. Voici 10 conseils clefs d'experts en modernisation cloud pour réussir ce type de projets.
1. Modernisez dans un but précis
Avant de commencer, il est essentiel de lier tout projet de modernisation d'application aux besoins de l'entreprise, explique Aparna Sharma, partenaire pour les services de cloud hybride chez IBM Consulting. « Qu'il s'agisse de réaliser des économies, d'améliorer la sécurité, de renforcer les fonctionnalités ou autre, vos efforts ne seront couronnés de succès que si vous savez à l'avance ce que vous attendez d'eux. »
Aparna Sharma ajoute qu'elle se trouve souvent face à des initiatives de modernisation motivées uniquement par le désir de profiter de la dernière innovation. Une telle attitude peut entraîner des complications par la suite, prévient-elle. « Avec un résultat attendu clair et une compréhension de votre "pourquoi", vous pouvez faire un ensemble de choix qui répondent aux besoins de votre entreprise », dit-elle.
2. Évaluez vos ressources et nouez des partenariats si nécessaire
Réussir la modernisation des applications legacy passe d'abord par un travail initial d'identification des applications et ressources qui seront transférées vers le cloud, de recensement des dépendances, de mesure de l'impact sur les licences. Sans oublier évidemment de préciser, pour chaque application, les cas d'utilisation et les avantages de la migration pour l'entreprise.
« Il faut impliquer les différents acteurs concernés dans l'ensemble de l'organisation, et pas seulement au sein du service informatique, et disposer d'une expertise à la fois de l'application existante et de l'environnement cloud vers lequel vous migrez », décrit Steve Woodgate, conseil en stratégie chez le fournisseur de services cloud managés Navisite. « Cela vous permettra de définir, de développer et d'exécuter le chemin de migration et de modernisation optimal pour votre entreprise ».
Steve Woodgate observe que les entreprises qui migrent leurs applications vers le cloud sont souvent confrontées à une pénurie de compétences, ne disposant pas de l'expertise interne nécessaire pour permettre une transition en douceur. Selon lui, compte tenu de la complexité de la modernisation des applications, mieux vaut alors rechercher des partenaires externes pour aider à guider le processus de migration et s'assurer que l'impact sur l'entreprise reste minimal pendant la phase de transition.
3. Analysez en profondeur l'architecture de l'application
Évaluer soigneusement l'application à moderniser pour comprendre son architecture, ses dépendances et ses exigences est un prérequis indispensable à toute opération de migration. « Identifiez les composants qui peuvent être migrés vers le cloud et évaluez les modifications nécessaires », recommande Nandor Csonka, responsable des services de sécurité du cloud au sein de la société de sécurité informatique NCC Group.
Ensuite, déterminez la stratégie de migration la plus appropriée, qu'il s'agisse de "lift-and-shift", de re-platforming, de refactoring ou même de redévelopper l'application à partir de zéro. « Choisissez la stratégie qui correspond le mieux à vos objectifs, à votre calendrier et à vos ressources », résume Nandor Csonka.
4. Réhéberger, refactorer, réarchitecturer, redévelopper, remplacer : adaptez votre approche
De nombreuses techniques et options sont disponibles pour la modernisation des applications, notamment le rehosting, le refactoring, la transformation de l'architecture, la reconstruction et le remplacement, observe Will Perry, responsable de l'innovation et de l'ingénierie cloud aux États-Unis pour le cabinet de conseil PwC. Pour choisir la bonne approche, il faut étudier attentivement toutes les options disponibles avant de faire un choix définitif.
Selon Will Perry, une modernisation applicative réussie devrait permettre d'accroître l'agilité et l'évolutivité des activités et de l'IT. « Les approches de replatforming et de refactoring tirent parti des services cloud et des modèles de solutions qu'offrent ces environnements, les rendant souvent les plus efficaces. »
5. Modernisez les processus connexes
Amod Bavare, directeur chez Deloitte Consulting, conseille de moderniser également les processus métiers sous-jacents, notamment l'expérience utilisateur. « Garder ces besoins à l'esprit permet de moderniser l'entreprise tout en modernisant l'architecture de l'application et la pile technologique et en tirant parti des services natifs du cloud comme l'IA/ML, la mobilité et les microservices », explique-t-il.
Amod Bavare considère que cette approche comme très efficace. « Vous pouvez aider les utilisateurs à atteindre leurs objectifs, ainsi qu'à les rendre plus productifs et plus compétitifs sur vos marchés. »
6. Planifiez à long terme
Ashish Varerkar, responsable de la pratique cloud au sein de la société de conseil en technologie LTIMindtree, estime qu'une approche continue et modulaire constitue la meilleure démarche de modernisation. Il observe que la plupart des projets initiaux de migration applicative amènent les organisations dans une logique de modernisation permanente, leur permettant de s'aligner progressivement sur les principaux objectifs commerciaux et technologiques. En revanche, créer un catalogue de services standardisé unique et forcer les applications à s'aligner en même temps sur celui-ci n'est pas efficace, prévient Ashish Varerkar.
Et il déconseille également de reconstruire une application à partir de zéro. Cette approche répond rarement aux objectifs fixés et peut facilement être abandonnée en raison de coupes budgétaires, de dépenses jugées excessives à un moment donné ou d'une perte d'intérêt pour le projet, note-t-il. « La meilleure approche est celle de la modernisation continue, où la première itération pourrait inclure la réduction des risques et l'intégration de nouvelles capacités pour des objectifs et des KPI clairement définis. »
7. Pensez de manière holistique
Compte tenu des différentes options sur la table, il est important d'adopter une approche holistique pour aborder non seulement la modernisation applicative actuelle, mais aussi prendre en compte l'alignement sur les défis futurs, suggère Mukund Srinivasan, directeur pour les applications cloud et custom au sein de Capgemini Americas.
« Les DSI devraient s'appuyer sur des partenaires ayant une connaissance approfondie de la transformation vers le cloud, en particulier par le biais de plateformes cloud intégrant le DevSecOps, des accélérateurs cloud-native, l'infrastructure as code et d'autres techniques et outils », explique Mukund Srinivasan. « Cela permet une livraison rapide des applicatifs et une approche de modernisation sur plusieurs fronts. »
Une approche holistique, ajoute le responsable de Capgemini, permet également aux DSI d'exploiter « une combinaison d'accélérateurs et de modèles éprouvés tout au long du cycle de vie du logiciel afin d'accélérer la transformation, le déploiement et l'approbation des applications. »
8. Créez un modèle d'évaluation de la maturité
Rajat Kohli, partenaire au sein du cabinet de conseil en management Zinnov, souligne l'importance de disposer d'un modèle d'évaluation de la maturité en trois étapes. La première étape - la découverte et l'évaluation - permettra de mieux comprendre les défis actuels et les besoins en termes de résultats attendus, ainsi que de fournir une évaluation de la pile technologique et de l'architecture actuelles, explique Rajat Kohli. La deuxième étape, la création d'une feuille de route, prévoit l'élaboration d'un plan directeur qui définit la voie à suivre pour atteindre les objectifs fixés. La dernière étape, la répartition des rôles, consiste à attribuer des responsabilités à différentes parties prenantes pour exécuter les tâches essentielles. Pour Rajat Kohli, ces ressources à mobiliser comprennent les équipes internes et externes, les fournisseurs de technologie et les compétences spécialisées sur les tests applicatifs.
Il estime encore que la création de ce modèle d'évaluation améliorera le retour sur investissement, accélérera le développement et permettra aux entreprises d'intégrer de nouvelles capacités dans leurs applications modernisées. « Cela facilite la modernisation simultanée de plusieurs applications et la connexion transparente avec les applications existantes, explique-t-il. Et ce cadre élimine également les obstacles qui limitent la productivité et freinent l'intégration. Il permet de créer de nouvelles expériences pour les utilisateurs et d'améliorer les performances. »
9. Pensez composants
Face à une application legacy complexe que vous devez moderniser, il faut adopter une approche systématique, selon Vasyl Magometa, cofondateur et directeur technique de la société de développement de logiciels Reenbit. « Commencez par analyser l'architecture de votre application et identifiez les domaines susceptibles d'être améliorés, suggère-t-il. Ensuite, décomposez votre application en composants plus petits et indépendants qui peuvent être déployés et passés à l'échelle individuellement. »
Ensuite, Vasyl Magometa recommande d'exploiter les services et technologies cloud-natives, tels que les conteneurs et le serverless, pour optimiser les performances et l'évolutivité de l'app. « Enfin, assurez une transition en douceur en migrant progressivement votre application vers le cloud et en la testant minutieusement. »
10. Misez sur les conteneurs et microservices
La modernisation applicative demeure un défi, en particulier pour les responsables et les équipes informatiques confrontés à cette tâche pour la toute première fois. Sergey Gladun, fondateur et PDG de la société d'ingénierie logicielle Agilie.com, se souvient de la première grande application qu'il a dû moderniser. Un projet difficile qui impliquait un remaniement important de l'architecture existante. « Nous avons choisi de décomposer l'application monolithique en microservices plus petits et plus faciles à gérer », dit-il.
Le processus a pris du temps, mais il a rendu l'application plus évolutive et plus compatible avec le cloud, explique Sergey Gladun. « Les microservices nous ont permis de développer, de tester, de déployer et de faire évoluer les composants de manière indépendante, ce qui a rendu le processus de développement global plus efficace », explique-t-il. En outre, la conteneurisation, grâce à des outils tels que Docker et Kubernetes, a encore amélioré l'évolutivité et la portabilité, rendant l'application indépendante de la plateforme sous-jacente. « Notre processus de modernisation a non seulement amélioré les performances de l'application, mais a également simplifié la maintenance et les mises à jour ».