IBM Mono2Micro
IBM® Mono2Micro™ est un utilitaire semi-automatique permettant de refondre les applications monolithiques Java® en microservices que vous exécutez sur WebSphere® Application Server Liberty ou sur Open Liberty. Vous pouvez utiliser IBM Mono2Micro et les recommandations qu'il fournit pour générer automatiquement une partie importante du code dont vous avez besoin pour générer et déployer vos microservices.
Grâce à l'analyse statique et dynamique, IBM Mono2Micro utilise son moteur d'apprentissage automatique et une analyse du code d'application monolithique Java pour générer des recommandations de partition. Les recommandations de partition sont des regroupements de classes dans le monolithe qui peuvent servir de points de départ pour les microservices. Les partitions recommandées ainsi que d'autres informations pertinentes sont affichées dans une interface utilisateur intuitive du plan de travail. Sur la base de ses connaissances intégrées du langage de programmation Java , IBM Mono2Micro fournit également une analyse sémantique approfondie des appels de classe à classe. En utilisant l'interface utilisateur du plan de travail et l'analyse détaillée, vous obtenez une image claire des recommandations de partitionnement, que vous pouvez affiner de manière itérative pour répondre à vos besoins métier. Après avoir décidé d'une recommandation de partitionnement spécifique, vous pouvez exécuter IBM Mono2Micro pour générer automatiquement une partie importante du code dont vous avez besoin pour générer et déployer les partitions recommandées avec votre code monolithique existant. Une fois que vous avez examiné le code généré, vous pouvez continuer à affiner itérativement des recommandations et générer du code jusqu'à obtenir les microservices souhaités. Vous pouvez ensuite exécuter les microservices sur WebSphere Application Server Liberty ou Open Liberty.
IBM Mono2Micro est disponible dans le cadre de IBM WebSphere Hybrid Edition et IBM Cloud Pak® for Applications.
Le parcours IBM Mono2Micro
Les commandes IBM Mono2Micro offrent les fonctionnalités suivantes.
Pour que IBM Mono2Micro analyse votre application, exécutez d'abord la commande mono2micro analyze sur son code, puis exécutez votre application avec l'instrumentation pour collecter toutes les données à analyser.
- Exécutez la commande mono2micro analyze sur votre archive d'application pour générer des fichiers JSON de table contenant des informations sur le code, telles que les noms de classe complets, les signatures de méthode, les variables d'état et les relations d'héritage.
- (Facultatif) Déployez votre application avec l'instrumenter binaire activé.
- (Facultatif) Exécutez la commande mono2micro usecase avec vos cas d'utilisation métier pour générer un ou plusieurs fichiers JSON de contexte et des fichiers journaux à des fins d'analyse.
Pour obtenir les deux options de restructuration d' IBM Mono2Micro, exécutez la commande mono2micro recommend sur vos fichiers précédemment collectés pour obtenir des rapports et des graphiques JSON avec les recommandations de partition.
- Placez les fichiers dans des emplacements du répertoire d'entrée pour obtenir les recommandations de l'analyse de code statique et, éventuellement, de la génération de code.
- Pour l'analyse du code statique uniquement, placez les fichiers JSON de table (provenant de mono2micro analyze) à l'emplacement approprié dans le répertoire d'entrée.
- Pour l'analyse de code statique et la génération de code, placez les fichiers JSON de table (à partir de mono2micro analyze), les fichiers journaux (à partir du serveur d'applications lors de l'exécution de cas d'utilisation métier) et le fichier JSON de contexte (à partir de mono2micro usecase lors de l'exécution de cas d'utilisation métier) dans les emplacements appropriés du répertoire d'entrée.
- Exécutez la commande mono2micro recommend pour générer des rapports et un JSON de graphique avec les approches de restructuration.
- Placez les fichiers dans des emplacements du répertoire d'entrée pour obtenir les recommandations de l'analyse de code statique et, éventuellement, de la génération de code.
Exécutez la commande mono2micro workbench pour lancer l'interface utilisateur du plan de travail dans laquelle vous pouvez mieux comprendre votre application et ses classes en examinant les deux approches de restructuration créées pour votre application. Les deux approches de restructuration par IBM Mono2Micro sont la logique métier et les coutures naturelles. Ces recommandations ont été créées à partir de l'analyse des appels d'exécution de votre application et des dépendances de données détectées. Si aucune approche n'est tout à fait ce que vous voulez, créez et sauvegardez un plan pour votre propre solution de partitionnement personnalisée.
- Lancez l'image de conteneur de l'interface utilisateur du plan de travail à l'aide de la commande mono2micro workbench .
- Accédez à l'interface utilisateur dans votre navigateur et chargez le fichier JSON qui est généré à partir de la commande mono2micro recommend .
- Explorez les approches de restructuration.
- (Facultatif) Créez et enregistrez le fichier JSON de l'option de restructuration personnalisée.
Exécutez la commande mono2micro transform pour générer automatiquement le code de démarrage permettant de créer vos microservices.
- (Facultatif) Si vous choisissez d'utiliser les couches naturelles ou l'approche de restructuration personnalisée, exécutez la commande mono2micro refine .
- Exécutez la commande mono2micro transform pour générer du code.
- Editer et déployer le code dans les environnements de test.
Fonctionnement
La figure suivante illustre le flux de travaux via IBM Mono2Micro. Les cases bleues, qui commencent par le terme (Action)
, représentent les actions utilisateur. Les zones non remplies, qui commencent par le terme (File)
, représentent des fichiers. Les traits pleins indiquent les prochaines étapes. Les lignes pointillées indiquent les utilisations des fichiers et les actions ou les fichiers utilisateur suivants dans le flux de travaux. Le flux de travaux commence par le code d'application et, après analyse et génération de code, se termine par le code de démarrage généré pour les partitions.
Composants IBM Mono2Micro
IBM Mono2Micro comprend les six composants suivants, qui sont affichés dans la figure précédente.
- Analyseur de code (conteneur
mono2micro-bluejay
ou binary analyzer .jar) - La commande mono2micro analyze qui analyse et, en option, instrumde le code Java des applications monolithiques.
- Instrumenter binaire (minerva-agent-1.0.jar)
- Agent Java qui instrumet une application en cours d'exécution déployée sur le serveur d'applications.
- Utiliser l'enregistreur de cas (Flicker)
- Exécutez avec la commande mono2micro usecase un programme Java qui enregistre les noms de cas d'utilisation et les heures. Utilisez-le lorsque vous exécutez des suites de tests ou des scénarios de test correspondant à différents cas d'utilisation métier d'une application monolithique Java .
- Moteur d'IA pour les recommandations de partition (conteneur
mono2micro-aipl
) - La commande mono2micro recommend exécute le moteur d'intelligence artificielle d' IBM Mono2Micro. Il utilise des techniques d'apprentissage automatique sur les traces et métadonnées d'exécution fournies par l'utilisateur et obtenues à partir de l'analyseur de code source. Il utilise les informations obtenues pour générer des recommandations de partition qui peuvent éventuellement devenir des microservices. Cette commande génère également un rapport détaillé pour les partitions recommandées.
- IBM Mono2Micro
- Le conteneur
mono2micro-ui
qui affiche les recommandations du moteur d'IA lorsqu'il est lancé avec la commande mono2micro workbench . Les recommandations obtenues à partir du moteur d'intelligence artificielle IBM Mono2Micro sont conservées dans votre stockage local. Vous pouvez charger les recommandations dans l'interface utilisateur du plan de travail pour les afficher dans un visualiseur graphique. Avec l'interface utilisateur, vous pouvez modifier les recommandations de partition générées par l'IA. - Générateur de code (conteneur
mono2micro-cardinal
) La commande mono2micro transform appelle le générateur de code, qui possède une connaissance approfondie de la sémantique du langage de programmation Java . Le générateur de code utilise les recommandations du moteur d'IA pour effectuer les opérations suivantes:
- Fournir des analyses d'appel détaillées des partitions recommandées qui peuvent éventuellement être implémentées en tant que microservices.
- Générez des analyses d'héritage détaillées des partitions recommandées.
- Générez une partie importante du code nécessaire pour réaliser les partitions recommandées dans les conteneurs.
Vous pouvez télécharger les outils Mono2Micro et les exécuter sur votre ordinateur local.
Procédure de restructuration d'une application Java monolithique
Les étapes suivantes expliquent comment restructurer une application monolithique Java à l'aide d' IBM Mono2Micro. Il s'agit d'une version plus détaillée de la figure précédente.
Certaines des étapes précédentes sont expliquées en détail dans d'autres rubriques IBM Mono2Micro .
- Installation d' IBM Mono2Micro inclut les aspects opérationnels d' IBM Mono2Micro du point de vue d'un utilisateur, y compris les besoins en ressources.
- Collecte de données sur les applications monolithiques Java détaille les étapes nécessaires et les informations pertinentes pour effectuer les étapes 2a et 2b.
- La rubrique Obtention de recommandations de partition explique comment exécuter les étapes 2c et 2det, si nécessaire, l'étape 3.
- Affichage des recommandations de microservice -étape 2d, incluant l'interprétation et la personnalisation des recommandations de microservice générées par IBM Mono2Micro .
- Les rapports incluent des informations supplémentaires sur les rapports d'analyse de partition et d'héritage générés lors des étapes 2d et 3.
- Génération du code de démarrage pour les microservices -Etape 4a pour la génération automatique du code de microservice.