Au fur et à mesure qu’une organisation développe une approche de gestion de son portefeuille d’applications supportant son activité, l’analyse du besoin de sa modernisation devient essentielle. Tandis que les possibilités technologiques s’accroissent et que les modèles d’entreprise évoluent, la nécessité du renouvellement de l’infrastructure informatique d’une entreprise s’accroit. Mais lorsqu’il est question de modernisation des environnements mainframe, malgré une bonne volonté évidente, la mise en œuvre se révèle souvent trop ardue : les investissements précédents sont irrécupérables, les applications fonctionnent (mais avec un rythme d’évolution très limité), le coût de la modernisation semble trop élevé et les risques de migration sont souvent perçus comme étant trop importants.

En en quoi consiste la modernisation des systèmes historiques ?

Les applications, développées pour soutenir les exigences métier, ne sont jamais figées. Elles doivent évoluer avec l’entreprise et son métier. L’innovation technologique fulgurante de ces dernières années, quasiment absente sur les systèmes mainframe historiques, a permis aux environnements distribués, infrastructures et processus DevOps de développement représentant l’état de l’art, de faire évoluer plus rapidement les applications permettant de soutenir ces nouvelles exigences métier.

Par conséquent, on se trouve aujourd’hui confronté à un besoin de plus en plus pressant de moderniser les applications exploitées sur les systèmes mainframe, désignées sous le terme évocateur « d’applications historiques », avec un objectif premier : tirer parti des innovations réalisées dans les environnements les plus actuels et ainsi de répondre plus rapidement aux besoins de l’entreprise. Ces innovations entrent dans deux grandes catégories :

La première catégorie concerne les innovations de l’infrastructure : celles-ci comprennent le large éventail des solutions Open-Source qui réduisent de manière significative la charge du développement et offrent un accès immédiat , et souvent gratuit, à des logiciels de pointe ; les matériels de base ; les infrastructures cloud et d’autres modèles rentables permettant de renforcer la scalabilité ; les services d’analyses et d’apprentissage automatique ; les environnements de développement et les processus de tests et de production hautement optimisés; et la conteneurisation, pour ne citer que quelques exemples.

La seconde catégorie d’innovation se situe dans les méthodes et langages de programmation : loin de l’époque où il fallait développer avec des langages procéduraux archaïques comme Cobol ou PL/1 sur des « écrans verts », les langages de développement d’aujourd’hui orientés objet, comme Java, complétés par des environnements de développement modernes, permettent aux programmateurs d’être bien plus productifs.

La modernisation des systèmes historiques se répartit par conséquent dans deux catégories similaires. D’un côté, la modernisation de l’infrastructure informatique qui consiste à installer les applications dans un environnement où elles peuvent facilement être intégrées et de manière rentable, exploiter les solutions Open-Source et tirer parti des chaines d’outils DevOps. D’un autre côté, la modernisation des applications où il est nécessaire de réécrire ou transcoder en langages modernes les applications ou les programmes historiques qui ont le plus besoin d’être modernisés.

Modernisation de l’infrastructure

Les fondements de la modernisation de l’infrastructure reposent sur le déplacement des applications historiques, écrites et compilées pour fonctionner sur des ordinateurs IBM Z, vers l’environnement d’exploitation Linux sur des ordinateurs d’architecture matérielle x86, soit auto-hébergé, soit dans le cloud. Le recours à des méthodes classiques visant à réhéberger ces applications historiques en x86/Linux nécessite que tous les programmes qui les constituent soient à nouveau compilés et bien souvent modifiés.

Une fois déployées dans un environnement Linux, ces applications historiques peuvent tirer parti d’un large éventail d’outils leur permettant d’optimiser leurs fonctions et leur exploitation. Elles peuvent tirer profit d’options d’intégration peu coûteuses, d’une surveillance moderne, de services de haute disponibilité, et de bien d’autres fonctionnalités disponibles sur Linux sous x86. En outre, en ce qui concerne les applications historiques qui sont conservées, les processus DevOps et environnements de développement modernes sont désormais disponibles. Réhéberger les applications historiques sur Linux sous x86 permet à l’informatique de répondre plus rapidement aux nouvelles exigences métier.

Modernisation des applications

Le Saint Graal pour la plupart des entreprises est d’avoir l’intégralité de leur portefeuille d’applications basée sur des langages de programmation modernes. Lorsque ces applications historiques sont concernées, l’accession à ce Graal signifie la conversion des programmes de COBOL ou PL/1 (et dans certains cas de langages encore plus obscurs) en langages modernes comme Java. En procédant ainsi, une organisation peut avoir accès à un vivier de talents et une palette d’outils de développement bien plus vaste. Par ailleurs, la porte de tout un monde d’innovation en open-source s’ouvre, ce qui modifie entièrement la trajectoire du développement d’applications pour ces applications auparavant désignées « historiques ».

Pourtant, moderniser les applications de cette manière est une tâche colossale lorsqu’on utilise les méthodes classiques.

Infrastructure ou application : par quoi commencer ?

Lorsqu’une organisation cherche à moderniser une application, elle doit tout d’abord décider s’il s’avère judicieux de commencer par l’infrastructure ou directement par l’application.

L’organisation peut tenter de moderniser les applications sans les déplacer, sur la plate-forme où elles résident déjà. Au premier abord, cette méthode semble causer le moins de perturbations et reste la plus flexible, mais très rapidement, ces initiatives font face à de nombreuses difficultés (précédemment soulignées) ayant auparavant entraîné l’abandon du mainframe comme plateforme actuelle au profit de la modernisation des applications sur d’autres plates-formes. L’utilisation de COBOL objet est le seul moyen visant à permettre l’interopération avec les programmes en cours de modernisation et recompilation. L’intégralité du processus étant réalisée sur le mainframe, les coûts et les contraintes sur le matériel soulèvent alors des questions pratiques. Les organisations qui exploitent les mainframes contrôlent soigneusement l’accès à leurs ressources en raison des coûts prohibitifs liés au dépassement de la capacité sous licence. En réalité, cet aspect relatif aux conflits pour le matériel est une autre raison couramment évoquée par les entreprises pour migrer le développement du mainframe vers les environnements modernes.

Envisagés de manière globale, il est aisé de comprendre comment ces facteurs ont contribué à entraver la plupart des initiatives de modernisation qui s’attachaient à moderniser les applications en premier.

En modernisant prioritairement l’infrastructure, les problèmes identifiés précédemment sont contournés.

Bien que le chemin vers la modernisation ne soit pas aisé, continuer de dépendre de compétences en déclin et d’une communauté d’experts recrutables et de fournisseurs tiers qui s’amenuise n’est plus une option acceptable. C’est en fractionnant la voie de la modernisation que la progression sur la durée, en vue d’atteindre le résultat final souhaité, constitue l’approche la plus réaliste.

 

__________
Dale Vecchio est Directeur Marketing chez LzLabs