Article blog démêler le code spaghetti des applications historiques pour créer des microservices

par Michel Mouchon & l’équipe d’IT Jungle

À ce stade de l’histoire de la programmation, tout le monde sait à peu près ce que sont les microservices et tout le monde est plus que familier avec le code procédural et souvent monolithique – qui a été créé au fil des décennies par d’innombrables programmeurs qui ont fait évoluer les applications d’entreprise pour les adapter à de nouvelles conditions et exigences.

On l’appelle souvent « code spaghetti », et pour cause. Le code est souvent un enchevêtrement de logique d’entreprise, de données et d’interfaces utilisateur – on peut supposer que les données sont les « boulettes de viande » et que l’interface utilisateur est la « sauce » dans cette métaphore. ARCAD Observer peut aider les développeurs IBM i à comprendre l’architecture de ces applications et ARCAD Transformer RPG peut aider à convertir les anciennes applications RPG en RPG free form moderne – dans cette métaphore, ces outils vous aident à déterminer ce que vous allez manger du code spaghetti. Mais un nouvel outil, appelé ARCAD Transformer Microservices, aide maintenant les développeurs à organiser des bouchées de taille adaptée pour savoir où « mordre » en premier lorsqu’ils essaient de manger cette assiette de code spaghetti. Il permet de la transformer en microservices modernes et modulaires, un morceau de spaghetti à la fois sans risque « d’éclabousser les chemises blanches » des utilisateurs avec de la sauce tomate ou des boulettes de viande.

ARCAD Transformer Microservices a été introduit au début du mois de juillet. Quelques clients précurseurs qui ont participé à sa création comment à l’utiliser, mais il est important de noter qu’il est toujours, en développement actif et ARCAD continue à prendre avec enthousiasme les retours des clients pour rendre le processus de changement de code monolithique en microservices plus facile et plus efficace.

L’outil peut être utilisé sur RPG IV et versions ultérieures du langage. Le RPG III peut être pris en charge via une transformation mécanique (la commande CVTRPGSRC de l’OS IBM i) vers le RPG IV. Transformer Microservices aide les développeurs à extraire la logique d’entreprise dans les programmes pour produire du code modulaire. Il pourra ensuite être maintenu plus facilement et réutilisés dans de nouvelles applications. ARCAD Transformer Microservices génère du code RPG free form. Pour l’instant, Transformer Microservices est un plug-in pour l’environnement de développement intégré Rational Developer for IBM i (RDi), mais à terme, il sera également une extension VS Code, qui devient de plus en plus populaire au sein de la base IBM i.

La création des microservices d’ARCAD Transformer témoigne de la difficulté d’identifier le bon niveau de granularité et d’encapsulation des règles métier pour créer un service Web. Si l’encapsulation est trop grossière, on se retrouve avec des blocs plus petits de code monolithique, mais il s’agit toujours de gros blocs qui doivent être maintenus et améliorés dans leur ensemble. Si la granularité est trop fine, l’application sera composée d’un trop grand nombre de microservices, ce qui risque de créer un autre type de complexité dont la maintenance est longue et coûteuse.

Téléchargez la datasheet et voyez comment ARCAD Transformer Microservices transforme vos règles métier IBM i en services web RESTful

L’astuce pour convertir un code RPG monolithique en microservices consiste à trouver le juste équilibre, et c’est ce que propose Transformer Microservices. Il comprend :

  • Des conseils pour la sélection du code à modulariser : Mise en évidence du code pour l’extraction sous forme de procédures externes, aidant le développeur à sélectionner les futurs services web candidats.
  • Vérification du couplage : Identification automatique du « code enchevêtré » pour garantir la cohérence des modules extraits.
  • Création de paramètres : « Les variables d’interface” sont transformées en paramètres pour simplifier le code étroitement couplé.
  • Audit du code : Le développeur est informé de toute anomalie et aidé à ajouter tout code supplémentaire nécessaire.
  • Simulation et explication du code : le développeur garde le contrôle sur la transformation, sans verrouiller le code pendant ces activités d’audit et d’analyse.
  • Extraction automatisée de modules : Une nouvelle procédure est automatiquement générée sur la base des lignes sélectionnées.
  • Automatisation du remplacement du code : Remplacement du bloc de code précédent par un appel à la nouvelle procédure.
  • Détection de la logique dupliquée : Toute fonctionnalité dupliquée ou similaire peut être recherchée et à terme remaniée pour permettra d’aboutir à une seule procédure réutilisable, ce qui améliore la qualité du code et évite une maintenance répétée.

L’objectif de Transformer Microservices est d’isoler les règles métier et technique intégrées dans les applications RPG et de les extraire du code existant pour créer une procédure dans un programme de service pour modulariser le code et qui pourrait être utilisé également comme service Web.

Mais ce n’est pas tout. Comme les applications RPG peut être maintenues par le système de gestion des changements d’ARCAD, Transformer Microservices peut accéder au code existant et remplacer ce morceau de code hérité par un appel à ce programme de service. Cela semble plus facile que cela ne l’est, et dans de nombreux cas, effectuer une telle analyse pour déterminer où extraire la logique métier pour créer le programme de service et résoudre les dépendances et les redondances dans le code de l’application est assez complexe.

Trouver où commencer à sélectionner le code monolithique et travailler sur toutes les variables et dépendances est une activité qui peut prendre la majeure partie d’une journée, mais avec Transformer Microservices, qui a une vue large et profonde de l’application, de ses structures de données et de ses bases de données, cela peut prendre seulement quelques minutes. Ainsi, Transformer Microservices peut drastiquement diminuer le temps nécessaire pour remanier les applications afin de les rendre plus modernes et plus faciles à maintenir.

Transformer Microservices n’emploie aucune sorte d’IA générative pour faire ses recommandations ou pour apporter des changements au code spaghetti – c’est un ensemble strictement déterministe d’algorithmes qui a des résultats répétables et vérifiables, ce qui devrait être un grand réconfort pour les managers et les développeurs IBM i qui le déploient. Cela ne veut pas dire qu’ARCAD ne pourra pas à l’avenir intégrer des capacités d’IA générative dans ARCAD Transformer Microservices (comme pour d’autres produits de la gamme, tels que le module de découverte d’applications, ARCAD Discover, qui est déjà alimenté par l’IA). Jusqu’à présent, dans ARCAD Transformer Microservices, l’IA générative n’a pas été nécessaire, car cette partie du processus de modernisation exige un résultat prévisible à 100 %.

Dans certains cas, le code existant est tellement imbriqué et complexe qu’il est très difficile de le remanier et de le modulariser, les interdépendances étant si nombreuses qu’un programmeur ne pourrait humainement pas les suivre toutes. (Il y a des raisons pour lesquelles les applications deviennent du code spaghetti et il y a d’autres raisons – inertie, coût, temps, etc.) Cela vaut pour les entreprises qui ont des centaines de milliers de lignes de code comme pour celles qui en ont des dizaines de millions. Pour ceux qui ne gèrent que quelques dizaines de milliers de lignes de code, leurs applications sont relativement petites et sont très probablement déjà plus modulaires.

[Webinar] Découvrez comment automatiser la transformation d’applications IBM i complexes avec ARCAD Transformer Microservices

Light picto

Demandez une démo

Discutez avec un expert maintenant !

Contact Us