La modernisation de l’application est le processus de mise à jour des applications héritées en tirant parti des technologies modernes, en améliorant la performance, en les rendant adaptables aux vitesses évolutives de l’entreprise en intégrant des principes cloud natifs comme le DevOps, l’infrastructure en tant que code, etc.
Le traitement des applications héritées pourrait aller de la réécriture complète au réhébergement en fonction de la valeur, de la criticité et des objectifs. Il est également connu que les avantages de la réécriture sont les plus importants, car cela permet d’accéder à un véritable modèle cloud natif avec un haut degré d’agilité et de rapidité. De nombreux DSI et directeurs techniques hésitent à investir en raison des coûts et des délais nécessaires pour rentabiliser leur investissement, tout en essayant de trouver un équilibre entre des initiatives de réécriture coûteuses et des approches de réhébergement à faible valeur ajoutée. Les fournisseurs de services et les éditeurs d’outils tentent de répondre à ce besoin en développant des accélérateurs personnalisables pour les entreprises, permettant d’accélérer des domaines spécifiques de la modernisation : Evolvware, IBM Consulting Cloud Accelerators et outils spécifiques aux fournisseurs de service cloud.
Tout en essayant d’accélérer et d’optimiser le coût de la modernisation, l’IA générative est devenue un facteur critique pour faire évoluer la façon dont nous accélérons les programmes de modernisation. Cet article se concentre sur les possibilités d’IA générative dans le processus de modernisation des applications.
Newsletter sectorielle
Obtenez des informations sur les actualités les plus importantes et les plus intrigantes en matière d’intelligence artificielle. Abonnez-vous à notre newsletter hebdomadaire Think. Lire la Déclaration de confidentialité d’IBM.
Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.
La modernisation des applications consiste à mettre à jour les applications existantes en tirant parti des technologies modernes, à améliorer leurs performances et à les adapter à l’évolution rapide des activités commerciales en y intégrant des principes natifs du cloud tels que DevOps, l’infrastructure en tant que code, etc. La modernisation des applications commence par l’évaluation des applications, des données et de l’infrastructure existantes, puis par l’application de la stratégie de modernisation appropriée (réhébergement, refonte de la plateforme, refactorisation ou reconstruction) afin d’obtenir le résultat souhaité. Si la reconstruction offre un maximum d’avantages, elle nécessite toutefois un investissement important, tandis que le réhébergement consiste à transférer les applications et les données telles quelles vers le cloud sans aucune optimisation, ce qui nécessite moins d’investissements mais offre une valeur ajoutée moindre. Les applications modernisées sont déployées, surveillées et maintenues, avec des itérations continues pour suivre le rythme des progrès technologiques et commerciaux. Les avantages typiques réalisés vont d’une agilité, d’une rentabilité et d’une compétitivité accrues, tandis que les défis comprennent la complexité et les besoins en ressources. De nombreuses entreprises se rendent compte que le passage au cloud ne leur apporte pas la valeur souhaitée ni l’agilité et la rapidité au-delà de l’automatisation de base au niveau de la plateforme. Le véritable problème réside dans l’organisation de l’informatique, qui se reflète dans la manière dont leurs applications/services actuels sont conçus et gérés (voir la loi de Conway). Cela entraîne à son tour les défis suivants :
Ainsi, les initiatives de modernisation des applications doivent se concentrer davantage sur la valeur pour l’entreprise, ce qui implique un élément significatif de transformation des applications vers des composants et services alignés sur les capacités métier. Le plus grand défi en la matière est le montant de l’investissement nécessaire, et de nombreux DSI et directeurs techniques hésitent à investir en raison des coûts et des délais liés à la rentabilisation. Beaucoup abordent cette question en créant des accélérateurs pouvant être personnalisés pour les entreprises, ce qui contribue à accélérer certains domaines spécifiques de la modernisation. IBM Consulting Cloud Accelerators est un exemple de ce type d’accélérateur proposé par IBM. Tout en essayant d’accélérer et d’optimiser le coût de la modernisation, l’IA générative devient un catalyseur essentiel pour faire évoluer la façon dont nous accélérons les programmes de modernisation. Dans cet article, nous découvrirons les domaines clés de l’accélération à l’aide d’un exemple.
Un cycle de vie simplifié des programmes de modernisation des applications (non censé être exhaustif) est présenté ci-dessous. La découverte se concentre sur la compréhension de l’application héritée, de l’infrastructure, des données, de l’interaction entre les applications, les services et les données, ainsi que sur d’autres aspects tels que la sécurité. La planification décompose le portefeuille complexe d’applications en itérations à moderniser pour établir une feuille de route itérative et établir un plan d’exécution pour mettre en œuvre la feuille de route.
Les activités de la phase de design/planification varient en fonction de la stratégie de modernisation (de la décomposition de l’application et l’utilisation d’une conception orientée domaine à l’établissement d’une architecture cible basée sur les nouvelles technologies pour créer des conceptions exécutables). Les phases suivantes sont le développement, le test et le déploiement en production. Découvrons les possibilités de l’IA générative dans ces domaines du cycle de vie.
La capacité à comprendre les applications existantes avec une implication minimale des experts est un point crucial pour accélérer le processus. En effet, les experts sont généralement occupés par des initiatives visant à maintenir les systèmes opérationnels, tandis que leurs connaissances peuvent être limitées en fonction de la durée pendant laquelle ils ont pris en charge ces systèmes. Collectivement, la découverte et le design sont les étapes qui prennent le plus de temps lors de la modernisation, tandis que le développement est beaucoup plus facile une fois que l’équipe a décodé les fonctionnalités, les aspects d’intégration, la logique et la complexité des données de l’application héritée.
Les équipes de modernisation effectuent leur analyse de code et examinent plusieurs documents (pour la plupart anciens) ; c’est là que leur recours à des outils d’analyse de code devient essentiel. De plus, pour les initiatives de réécriture, il est nécessaire de cartographier les capacités fonctionnelles dans le contexte des applications existantes afin de réaliser efficacement des exercices de conception/décomposition orientés domaine. L’IA générative s’avère très utile dans ce cas, grâce à sa capacité à corréler les capacités fonctionnelles/de domaine au code et aux données, et à établir une vue des capacités métier et du code et des données applicatifs connectés. Bien entendu, les modèles doivent être ajustés/contextualisés pour un modèle de domaine d’entreprise ou une carte des capacités fonctionnelles donnés. Le mappage d’API assisté par l’IA générative évoqué dans cet article en est un exemple à petite échelle. Si ce qui précède concerne la décomposition/conception d’applications, l’event storming nécessite des cartes de processus, et c’est là que l’IA générative aide à contextualiser et à mapper les extraits provenant des outils de process mining. L’IA générative aide également à générer des cas d’utilisation basés sur les informations tirées du code et le mappage fonctionnel. Dans l’ensemble, l’IA générative contribue à réduire les risques liés aux programmes de modernisation en garantissant une visibilité adéquate sur les applications existantes et leurs dépendances.
L’IA générative contribue également à générer une conception cible pour un cadre spécifique de fournisseur de services cloud en ajustant les modèles sur la base d’un ensemble de modèles standardisés (entrée/sortie, services d’application, services de données, modèles composites, etc.). De même, il existe plusieurs autres cas d’utilisation de l’IA générative, notamment la génération de modèles de code spécifiques à l’infrastructure technologique cible pour les contrôles de sécurité. L’IA générative contribue à générer des spécifications de conception détaillées, par exemple des récits d’utilisateurs, des maquettes fonctionnelles de l’expérience utilisateur, des spécifications API (par exemple, des fichiers Swagger), des diagrammes de relations entre les composants et des diagrammes d’interaction entre les composants.
L’une des tâches complexes d’un programme de modernisation consiste à établir une feuille de route macro tout en équilibrant les efforts parallèles et les dépendances séquentielles, et en identifiant les scénarios de coexistence à traiter. Bien que cela soit généralement effectué dans le cadre d’une tâche ponctuelle (réalignement continu via des incréments de programme (PI)), les exercices de planification intégrant des données au niveau de l’exécution sont beaucoup plus complexes. L’IA générative s’avère utile pour générer des feuilles de route basées sur des données historiques (applications aux cartes de domaine, facteurs d’effort et de complexité, modèles de dépendance, etc.), en les appliquant aux applications dans le cadre d’un programme de modernisation, pour un secteur ou un domaine donné.
La seule façon d’y parvenir est de la rendre utilisable via une suite d’actifs et d’accélérateurs capables de gérer la complexité de l’entreprise. C’est là que l’IA générative joue un rôle important en corrélant les détails du portefeuille d’applications avec les dépendances découvertes.
La génération de code est l’un des cas d’utilisation les plus connus de l’IA générative, mais il est essentiel de pouvoir générer un ensemble d’artefacts de code connexes, allant de l’IAC (Terraform ou Cloud Formation Template) au code/aux configurations de pipeline, en passant par l’intégration de points de conception de sécurité (chiffrement, intégrations IAM, etc.), la génération de code d’application à partir de swaggers ou d’autres informations sur le code (provenant d’anciennes versions) et les configurations de pare-feu (sous forme de fichiers de ressources basés sur les services instanciés, par exemple).L’IA générative permet de générer chacun des éléments ci-dessus grâce à une approche orchestrée basée sur des architectures de référence d’applications prédéfinies construites à partir de modèles, tout en combinant les résultats des outils de conception.
Les tests sont un autre domaine clé : l’IA générative peut générer le bon ensemble de cas de test et de code de test ainsi que des données de test afin d’optimiser les cas de test exécutés.
De nombreuses activités critiques dites du « dernier kilomètre » dans les programmes de modernisation prennent généralement plusieurs jours, voire plusieurs semaines, selon la complexité de l’entreprise. L’un des cas d’utilisation essentiels de l’IA générative est sa capacité à tirer des conclusions pour la validation de la sécurité en analysant les journaux des applications et des plateformes, les points de conception, l’infrastructure en tant que code, etc. Cette capacité accélère considérablement les processus d’examen et d’approbation de la sécurité. En outre, l’IA générative joue un rôle déterminant dans la génération d’entrées pour la gestion de la configuration (CMDB) et la gestion des changements, en s’appuyant sur les notes de mise à jour générées par les éléments de travail de l’outil Agility réalisés pour chaque mise à jour.
Bien que les cas d’utilisation susmentionnés soient extrêmement prometteurs tout au long du parcours de modernisation, il est crucial de reconnaître que les complexités de l’entreprise exigent une approche orchestrée pour tirer parti de bon nombre de ces accélérateurs d’IA générative. Le développement de modèles contextuels spécifiques à l’entreprise est un effort continu pour accélérer les programmes de modernisation. Nous avons constaté des avantages substantiels en investissant du temps et des efforts dès le départ et en personnalisant continuellement ces accélérateurs d’IA générative pour s’aligner sur des modèles spécifiques qui présentent une répétabilité au sein de l’entreprise.
Examinons maintenant un exemple potentiel qui a fait ses preuves :
Le problème : une grande banque mondiale possède plus de 30 000 API (internes et externes) développées au fil du temps dans différents domaines (par exemple, vente au détail, banque de gros, banque ouverte et banque d’entreprise). Il existe un énorme potentiel d’API dupliquées dans les domaines, ce qui entraîne un coût total de possession plus élevé pour la gestion du vaste portefeuille d’API et des défis opérationnels liés à la duplication et au chevauchement des API. Le manque de visibilité et de découverte des API pousse les équipes de développement API à développer les mêmes API ou des API similaires plutôt que de trouver des API pertinentes à réutiliser. L’impossibilité de visualiser le portefeuille d’API du point de vue du modèle du secteur bancaire empêche les équipes commerciales et informatiques de comprendre les capacités déjà disponibles et les nouvelles capacités dont la banque a besoin.
Approche de solution basée sur l’IA générative : la solution exploite le modèle linguistique BERT Large Language Model, Sentence Transformer, la fonction Multiple Negatives Ranking Loss Function et les règles de domaine, affinées grâce aux connaissances BIAN Service Landscape afin d’apprendre le portefeuille d’API de la banque et de fournir la capacité de découvrir des API avec un mappage automatique vers BIAN. Elle mappe la méthode API Endpoint Method au niveau 4 de la hiérarchie BIAN Service Landscape, c’est-à-dire BIAN Service Operations.
Les fonctions essentielles de la solution sont la capacité à :
Interface utilisateur pour la découverte d’API avec modèle industriel :
Principaux avantages La solution a aidé les développeurs à trouver facilement des API réutilisables, basées sur les domaines métier BIAN ; ils disposaient de plusieurs options de filtre/recherche pour localiser les API. En outre, les équipes ont pu identifier les principales catégories d’API pour développer la bonne résilience opérationnelle. La prochaine révision de la recherche sera basée sur le langage naturel et sera un cas d’utilisation conversationnel.
La capacité à identifier les API dupliquées sur la base des domaines de service BIAN a permis d’établir une stratégie de modernisation qui gère les capacités dupliquées tout en les rationalisant.
Ce cas d’utilisation a été réalisé en six à huit semaines, alors qu’il aurait fallu un an à la banque pour parvenir au même résultat (car il y avait plusieurs milliers d’API à découvrir).
Le problème : alors que les équipes actuelles s’efforçaient de moderniser les API MuleSoft vers Java Spring Boot, le volume considérable d’API, le manque de documentation et la complexité du projet ralentissaient le processus.
Approche de solution basée sur l’IA générative : La modernisation de l’API Mule vers Java Spring Boot a été automatisée de manière significative via un accélérateur basé sur l’IA générative que nous avons créé. Nous avons commencé par acquérir une compréhension approfondie des API, des composants et de la logique des API, puis nous avons finalisé les structures de réponse et le code. Cela a été suivi par la création de prompts à l’aide de la version d’IBM de Sidekick IA pour générer du code de démarrage Spring Boot, qui satisfait aux spécifications de l’API de MuleSoft, aux cas de tests unitaires, au document de conception et à l’interface utilisateur.
Les composants de l’API Mule ont été intégrés un par un à l’outil à l’aide de prompts et ont généré l’équivalent Spring Boot correspondant, qui a ensuite été connecté pour résoudre les erreurs qui se sont présentées. L’accélérateur a généré une interface utilisateur pour le canal souhaité qui pourrait être intégré aux API, aux cas de tests unitaires, aux données de test et à la documentation de conception. La documentation de conception générée comprend des diagrammes de séquence et de classe, des requêtes, des réponses, des détails sur les points de terminaison, des codes d’erreur et des considérations architecturales.
Principaux avantages : Sidekick IA améliore le travail quotidien des consultants en application en associant une stratégie technique d’IA générative multi-modèles, contextualisée par une connaissance approfondie du domaine et la technologie. Les principaux avantages sont les suivants :
Le PoC de l’accélérateur a été réalisé avec quatre scénarios différents de migration de code, de cas de tests unitaires, de documentation de conception et de génération d’interface utilisateur en trois sprints sur six semaines.
De nombreux DSI et directeurs techniques ont exprimé des réserves lorsqu’ils envisagent des initiatives de modernisation, invoquant une multitude de défis exposés dès le départ. Il s’agit notamment des préoccupations liées à l’implication importante requise des experts, aux perturbations potentielles de l’activité dues au changement et à la nécessité de modifier le modèle opérationnel dans diverses fonctions organisationnelles, notamment la sécurité et la gestion du changement. S’il est important de reconnaître que l’IA générative n’est pas une solution universelle à ces défis complexes, elle contribue indéniablement au succès des programmes de modernisation. Elle y parvient en accélérant le processus, en réduisant le coût global de la modernisation et, surtout, en atténuant les risques en veillant à ce qu’aucune fonctionnalité critique ne soit négligée. Toutefois, il est essentiel de reconnaître que l’introduction de grands modèles linguistiques (LLM) et de bibliothèques connexes dans l’environnement de l’entreprise nécessite un investissement considérable en temps et en efforts. Cela inclut des contrôles rigoureux en matière de sécurité et de conformité, ainsi que des procédures de scan. De plus, l’amélioration de la qualité des données utilisées pour affiner ces modèles est un effort ciblé qui ne doit pas être sous-estimé. Bien que les accélérateurs de modernisation cohérents basés sur l’IA générative ne soient pas encore omniprésents, on s’attend à ce que, avec le temps, des boîtes à outils intégrées apparaissent pour faciliter l’accélération de modèles de modernisation spécifiques, voire d’une série de modèles.
Découvrez ce que vous pouvez faire avec l’IA générative avec IBM Consulting.
Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.
Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.
Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.