Artificial Intelligence

Artificial Intelligence, Deep Learning, Machine Learning

GenAI et dette technique…

Août 28, 2023 | Ai | 0 commentaires

Avec watsonx Code Assistant for Z, son IA générative, IBM propose d’aider les développeurs à moderniser les anciennes applications Cobol monolithiques et les entreprises à se départir de la dette technique associée. Et de leur mainframe ?

Une IA générative pour effacer la dette technique. C’est l’ambition de watsonx Code Assistant for Z, assistant a spécialement été entraîné pour aider les entreprises à convertir le code COBOL sur mainframe Z en code Java. Indirectement, une fois le code Java fiabilisé, il devient plus facile de changer de système, de passer sous Linux et, éventuellement, de s’affranchir du mainframe pour partir sur des serveurs x86 ou des infrastructures cloud.

L’objectif immédiat est d’allier le manque de compétences COBOL et faire baisser les coûts de refactorisation. COBOL n’a pas disparu. Selon IBM, plus de 800 milliards de lignes de code sont toujours exécutées dans le monde par ses mainframes. Des lignes qu’il faut maintenir et mettre au goût du jour alors même que les programmeurs COBOL se font de plus en plus rares. Aujourd’hui, les consultants qui maîtrisent un tant soit peu cette technologie née en 1959 monnaient leurs services à prix d’or.

Remanier les applications mainframe

On sait aussi que les projets de refactorisation -proposés notamment par BMC ou LzLABS- peuvent se heurter à un mur. Au fil des décennies, les applications ont évolué sous l’influence de différents développeurs et architectes. À la perte d’un précieux savoir s’ajoute la nécessité de démêler les nœuds dans les entrailles des systèmes logiciels. De manière générale, la modernisation des existants COBOL prend des années… et les projets ne sont pas glorieux.

L’assistant ne se contente pas de traduire du code COBOL en Java. Il est aussi conçu pour aider les entreprises à remanier leurs applications mainframe tout en préservant performances et sécurité. Son analyse prend en compte l’ensemble du processus de modernisation des applications fournissant de nombreuses recommandations pour aider les développeurs à évaluer ce qui doit être modernisé en priorité, à remanier l’architecture monolithique, à valider le code traduit pour une exécution sur des architectures modernes, etc.

Dette technique, des étapes pour passer de COBOL à Java

Concrètement, IBM a inclus dans Code Assistant for Z sa suite ADDI (Application Discovery and Delivery Intelligence. Celle-ci doit permettre d’analyser le code et les structures de données pour identifier les services candidats qui pourront être convertis ultérieurement vers Java. ADDI est ainsi exploité pour découvrir les dépendances de l’application et pour générer un répertoire de métadonnées. Le logiciel lit ces informations pour les rendre visibles aux utilisateurs. Ceux-ci  retracent les liens entre les modules d’un programme et des tables de données. Le code COBOL et les structures de données peuvent être extraits, puis optimisés ou convertis en classes Java.

En résumé, watsonx Code Assistant aide à s’affranchir de la dette technique des mainframes et du COBOL en aidant les entreprises à :
– refondre l’architecture applicative en identifiant les services qui peuvent être individualisés et séparer du reste du code ;
– transformer le code COBOL en Java ;
– valider les transformations réalisées en créant automatiquement les tests qui s’imposent.

1 500 milliards de tokens, 20 milliards de paramètres

En revanche, pas question ici de jeter le bébé z/OS -ni son berceau, le mainframe- avec l’eau du bain. Contrairement à des Microfocus ou BMC qui proposent de convertir du code COBOL vers Java, IBM ne milite pas pour la disparation des applications existantes, ni pour la migration des applications nouvellement converties à Java vers le cloud.

Pour créer watsonx Code Assistant, IBM a développé un modèle GenAI dénommé CodeNet formé avec 1 500 milliards de tokens et doté de 20 milliards de paramètres. Il dispose d’une fenêtre de 32 000 tokens pour appréhender les codes COBOL les plus vastes tout en conservant les contextes dans leur intégralité. CodeNet ne se limite d’ailleurs pas aux langages COBOL et Java puisqu’il a été entraîné sur 80 langages de programmation différents, même si -pour l’instant- la solution WatsonX qui en découle se limite à ces deux langages.