Que faire du legacy ? Trois stratégies pour gérer les applications historiques . Par Mark Cresswell, PDG de LzLabs.
Nombre des plus grandes organisations au monde, y compris les banques, les institutions financières, les sociétés de télécommunications et les gouvernements, ont des applications cruciales qui continuent de tourner sur des mainframes. Dans une étude de 2019 menée par Vanson Bourne, 94 % des grandes organisations interrogées utilisant le mainframe ont déclaré qu’elles envisageaient de moderniser leurs applications d’une manière ou d’une autre.
Trois stratégies clés ont émergé ces dernières années pour soutenir cette modernisation. Dans le langage courant, ces stratégies sont désignées selon les expressions Défaire et remplacer (Rip & Replace), Enlever et changer (Lift & Shift) et Déplacer et améliorer (Move & Improve). Il existe des différences notables entre ces différentes stratégies et leur probabilité de succès, et il est essentiel de comprendre pourquoi les entreprises pourraient entreprendre une combinaison de ces approches à condition de bien choisir la future plateforme sur laquelle moderniser leur portefeuille d’applications historiques.
Les trois stratégies ont un objectif similaire : les exigences métier, actuellement soutenues par les applications historiques, doivent être mises en œuvre dans un modèle informatique moderne qui assure la plus grande disponibilité des collaborateurs, les frais d’exploitation les plus bas et le support maximal pour un développement et une exploitation à venir tout en souplesse.
Défaire et remplacer (Rip & Replace)
Certes, la réécriture d’une application historique au moyen de langages, de méthodes et d’infrastructures modernes peut être une proposition intellectuellement convaincante. Ce modèle est appelé Défaire et remplacer.
Remplacer un système historique écrit il y a plusieurs décennies par un qui est complètement nouveau, pertinent et moderne peut avoir un effet de libération cathartique par rapport aux problèmes d’entretien du système historique. Le recours à des méthodes et pipelines modernes de développement met les entreprises en bonne position eu égard aux initiatives de transformation numérique que, presque toutes parmi elles, entreprennent.
Mais si jamais on peut parler d’une stratégie dans laquelle le « diable est dans les détails », il s’agit bien de Défaire et remplacer. Les applications historiques soutiennent souvent des processus métier importants et complexes. Il n’est pas rare que ces processus reposent sur des millions de lignes de code des applications ciblées par cette stratégie.
Il est très improbable qu’une seule personne ou qu’un seul groupe de personnes soit à même de comprendre comment ces processus fonctionnent effectivement. Le résultat est soit un vaste processus chronophage de découverte dans lequel le code est analysé afin de s’assurer que son comportement est pleinement compris, soit un abandon total des processus existants pour repartir de zéro.
Mener à bien la première approche dans un intervalle de temps raisonnable est extrêmement difficile. À défaut, il suppose qu’il est possible de retrouver le code source de ces anciennes applications. Il est peut-être possible de comprendre certains éléments marginaux, mais ils resteront probablement dépendants d’une suite d’applications qui ne peuvent pas être modernisées, de sorte que la probabilité de réussite est faible.
La deuxième méthode d’abandon total des processus existants est d’autant plus difficile qu’il ne s’agit plus seulement d’un exercice technique. Le processus interne associé de l’entreprise devra être modifié, en supposant qu’il soit possible de s’entendre sur une parfaite compréhension du nouveau processus.
Les deux méthodes correspondant à l’approche Défaire et remplacer souffrent presque toujours de dépassements budgétaires extrêmes avant l’abandon complet.
Sauf dans certains cas particuliers, ou dans le cas de petites applications, la stratégie Défaire et remplacer comme seul modèle de modernisation des applications historiques est celui qui a le moins de chance de réussir.
Enlever et changer (Lift & Shift)
La stratégie Enlever et changer est probablement l’approche de modernisation des applications la plus largement mise en œuvre, ce qui est en grande partie dû au fait qu’elle existe depuis plus longtemps. Elle fonctionne bien pour certaines classes d’applications historiques, mais se heurte rapidement à des problèmes majeurs lorsque les applications concernées sont complexes et critiques, nombre des problèmes relevés étant les mêmes que pour l’approche Défaire et remplacer.
Enlever et changer implique la recompilation et, dans de nombreux cas, la modification du code source de l’application afin qu’elle puisse fonctionner sur une plateforme autre que le mainframe.
Les technologies nécessaires à cette stratégie incluent généralement un compilateur et un runtime spécialement conçus pour prendre en charge les aspects uniques du fonctionnement de l’application mainframe.
Le plus grand inconvénient avec l’approche Enlever et changer est qu’elle requiert que tout le code source et les copies de tous les artefacts de l’application soient disponibles, ce qui peut inclure le code assembleur mainframe écrit il y a de nombreuses années. De même, selon la nature de l’application, une modification importante du code source et des tests de régression peuvent être nécessaires.
En raison des défis propres à l’approche Enlever et changer, la plupart des implémentations réussies ont été destinées aux systèmes non-principaux, aux environnements mainframe petits, aux applications mainframe récemment développées ou aux environnements de test.
Déplacer et améliorer (Move & Improve)
Déplacer et améliorer est le modèle le plus récemment introduit. Il s’agit potentiellement de l’approche la plus globale car elle résout un grand nombre des problèmes associés aux stratégies Enlever et changer et Défaire et remplacer, mais peut bien être utilisée en conjonction avec les deux.
Déplacer et améliorer est une approche qui nécessite un environnement d’exécution binaire compatible (essentiellement une machine virtuelle mainframe) sur l’ordinateur Linux cible qui permet d’exécuter les applications mainframe sans modification ni recompilation. Ces environnements d’exécution sont souvent appelés Software Defined Mainframe (mainframe défini par logiciel)).
Déplacer et améliorer est une approche qui repose sur deux idées fondamentales :
- Il est plus facile et moins risqué d’améliorer progressivement une solution existante que de l’abandonner complètement au profit d’une nouvelle mise en œuvre.
- Les améliorations incrémentielles sont beaucoup plus faciles à réaliser dans un environnement moderne basé sur Linux.
L’environnement d’exécution binaire compatible permet de déplacer l’ensemble de l’application vers l’environnement Linux sans aucune des difficultés associées à l’approche Enlever et changer, c.-à-d. la partie Déplacer de la stratégie. À ce point, tous les outils de développement qui ont émergé ces dernières années peuvent être mis en œuvre afin de garantir que l’amélioration incrémentielle se produit à la même vitesse que pour d’autres applications hors mainframe : l’élément Améliorer de la stratégie.
En tant que telles, les entreprises qui envisagent l’approche Défaire et remplacer ou Enlever et changer peuvent obtenir les avantages combinés des deux dans le cadre d’une stratégie Déplacer et améliorer. Les applications peuvent être exécutées comme elles l’étaient auparavant, mais désormais sur des architectures cloud modernes permettant leur mise à jour ou leur transformation progressive vers d’autres langages, sans compromettre le système dans son ensemble.
Comme Gartner l’a récemment mentionné dans sa note de recherche, le recours à la modernisation continue pour construire des plateformes numériques à partir d’applications historiques, les organisations doivent chercher à « transformer votre application historique en une plateforme en identifiant, hiérarchisant et supprimant un à un les obstacles ».
Cette capacité est au cœur d’une approche Déplacer et améliorer. Les applications historiques peuvent maintenant être améliorées progressivement et graduellement pour répondre aux besoins de la transformation numérique d’aujourd’hui, après leur migration vers un environnement Linux moderne.