Exécution du moteur d'intelligence artificielle pour analyser les données collectées

Vous utilisez le moteur d'IA pour analyser les données collectées et obtenir des recommandations sur la façon dont l'application peut être partitionnée. Les partitions sont des regroupements de classes Java® monolithiques qui peuvent servir de points de départ à des microservices.

À propos de cette tâche

Vous analysez les données collectées et générez les recommandations de partition en exécutant le moteur d'IA. Lorsque le moteur d'IA est exécuté:
  1. Associe les parties des traces d'exécution avec les informations de contexte de cas d'utilisation capturées dans la sortie JSON générée par l'enregistreur de cas d'utilisation. Pour plus d'informations, voir Collecte de données sur les monolithes.
    • Les traces d'exécution proviennent des exécutions de cas métier des applications monolithiques Java instrumentées.
    • La sortie de l'enregistreur de cas d'utilisation au format JSON utilise les horodatages associés aux scénarios de test.
  2. Exécute le IBM® Mono2Micro™ Le moteur d'intelligence artificielle analyse les journaux d'exécution.
  3. Exécute l'analyse pour créer un rapport d'analyse d'appel détaillé pour les partitions recommandées. Pour plus d'informations, voir Eléments de la vue graphique.
  4. Crée une structure de répertoire avec les fichiers requis, qui sont utilisés par le composant de génération de code IBM Mono2Micro .

Avant de commencer

Assurez-vous de respecter la configuration système requise et les exigences de moteur d'IA suivantes.

  • Le moteur d'IA requiert un fichier config.ini dans le répertoire de niveau le plus élevé pour que les données collectées soient analysées. Si le fichier config.ini n'est pas fourni, il est créé avec les paramètres par défaut. Le moteur d'IA crée automatiquement deux sous-dossiers dans ce répertoire de niveau supérieur, mono2micro-output et mono2micro-workspace.
  • Dans le fichier config.ini , les emplacements relatifs des différentes catégories des données collectées lors de la phase de collecte de données peuvent être spécifiés. La structure suivante montre les emplacements relatifs par défaut des trois catégories de données collectées dans le paragraphe [LogProcessor] du fichier config.ini .
    [LogProcessor]
    RunlogDir = logs
    ContextDir = contextes
    TableDir = tables
  • Dans le fichier config.ini , les valeurs des attributs RunlogDir, ContextDiret TableDir doivent être définies sur les emplacements des fichiers journaux qui contiennent les éléments suivants.
    • Traces de flux temporel d'exécution.
    • Fichiers JSON générés par l'enregistreur de cas d'utilisation.
    • Tous les fichiers créés par l'analyseur de code lors de l'analyse de l'application monolithique Java .
    daytrader-trace
      ├────── config.ini
      ├────── contextes
      │  └── daytrader.json
      ├────── journaux
      │  └── console.log
      └────── tables
         ├── instrumenter-config.json
         ├── recommender-config.properties
    ├── refTable.json
    └── symTable.json

    Par exemple, le diagramme précédent illustre la structure de répertoire par défaut. Cette structure affiche les trois catégories de contenu lorsque toutes les données qui sont collectées pour l'application Daytrader se trouvent dans le répertoire daytrader-trace. Le répertoire logs contient un fichier journal correspondant à Daytrader, l'exemple d'application de test hébergé dans WebSphere® Application Server Liberty. Pour les applications de production, vous pouvez avoir plusieurs fichiers journaux. Notez que l'emplacement du fichier config.ini est le même que celui où un fichier config.ini par défaut est créé.

Procédure

  1. Exécutez le moteur d'IA. La syntaxe d'exécution de la commande mono2micro recommend est illustrée dans l'exemple.
    mono2micro recommend -d <collected-data-dir-path>

    Dans cette commande, <collected-data-dir-path> est le nom de chemin du répertoire qui contient toutes les données collectées dans le format spécifié pour l'application monolithique Java considérée.

    Pour plus d'informations sur la commande et ses options, exécutez la commande mono2micro recommend --help .

    Remarque: L'utilisateur qui exécute le moteur d'IA doit disposer d'un accès en lecture et en écriture au répertoire <collected-data-dir-path> . Cet accès en lecture et en écriture garantit que le moteur d'IA peut créer de nouveaux fichiers et répertoires dans le répertoire <collected-data-dir-path> .
  2. Lorsque le moteur d'intelligence artificielle s'exécute, il émet plusieurs messages d'information sur la progression des différentes étapes. Pour obtenir des informations plus détaillées, remplacez le paramètre LoggingLevel WARN par INFO dans le paragraphe [Global] du fichier config.ini . Vous pouvez également exécuter la commande mono2micro recommend avec l'indicateur --verbose pour plus d'informations.
    Remarque: L'exécution du moteur d'IA est avec état et comporte un mécanisme de point de contrôle intégré. Si un incident se produit au cours de l'exécution ou si vous souhaitez modifier les paramètres de configuration, vous pouvez redémarrer le mécanisme de point de contrôle à partir de n'importe quel point au cours de l'exécution. La réexécution du moteur d'intelligence artificielle sans modification de la configuration entraîne une absence d'opération. Vous pouvez également modifier divers paramètres dans le fichier config.ini pour générer des rapports supplémentaires. Vous pouvez également tester quelques paramètres d'optimisation de l'IA, qui peuvent modifier les recommandations de partition pour certaines applications monolithiques Java .

Résultats

  • Après une exécution réussie, le moteur d'IA crée un répertoire de sortie mono2micro avec deux sous-répertoires mono2micro-output et mono2micro-workspace.

    Le répertoire mono2micro-output contient la sortie finale de l'analyse d'IA et toutes les informations nécessaires à la génération de code.

    Le répertoire mono2micro-workspace contient les résultats intermédiaires de l'analyse de l'intelligence artificielle. Il n'est généralement pas nécessaire d'examiner le contenu de ce répertoire. Si vous souhaitez expérimenter les fonctions de recommandation de partition, vous pouvez optimiser les paramètres d'IA sélectionnés (par exemple, le paramètre MaxNumPartitions ), puis réexécuter le moteur d'IA. Etant donné que le moteur d'IA utilise le contenu du répertoire mono2micro-workspace , ne supprimez pas ou ne modifiez pas son contenu.

  • L'exécution du moteur d'IA crée le fichier config.ini par défaut et la structure de répertoire.

    Structure de répertoire avant l'exécution de la commande de recommandation
    daytrader-trace
    ├── contextes
    ├─── logs
    └─── tables
    Structure de répertoire après l'exécution de la commande de recommandation
    daytrader-trace
        ├── config.ini
    ├── contextes
    ├─── logs
        ├── mono2micro
        │   ├── mono2micro-output
        │   └── mono2micro-workspace
    └─── tables
  • La figure suivante présente en détail la structure et le contenu du répertoire mono2micro-output. Le répertoire mono2micro-output contient trois rapports html :
    • Cardinal-Report.html, qui contient les détails de l'analyse d'appel Java .
    • Inheritance-Report.html, qui contient des informations sur les hiérarchies d'héritage détectées dans l'analyse des classes d'application monolithique Java .
    • Oriole-Report.html, qui contient les détails des recommandations de partition.

    Pour plus d'informations sur ces rapports, voir Rapports Oriole, Cardinal et Inheritance.

  • Les fichiers du répertoire cardinal sont nécessaires pour le générateur de code Mono2Micro . Pour plus d'informations, voir Générer du code de démarrage pour les microservices.
    Remarque: Les fichiers refTable.json et symTable.json , nécessaires à la génération de code, sont copiés dans le répertoire daytrader-trace/mono2micro/mono2micro-output/cardinal à partir du répertoire daytrader-trace/tables .

    Le répertoire oriole contient le fichier final_graph.json , qui contient les recommandations de partition. Ce fichier est affiché dans l'interface utilisateur du plan de travail IBM Mono2Micro . Pour plus d'informations, voir Affichage des recommandations de partition.

    mono2micro
           ├── mono2micro-output
           │   ├── Cardinal-Report.html
           │   ├── Inheritance-Report.html
           │   ├── Oriole-Report.html
           │ ├─── cardinal
           │   │   ├── app_config.txt
           │   │   ├── cardinal_graph.json
           │   │   ├── class_run.json
           │   │   ├── partition.txt
           │ │ ├── refTable.json
           │ │ └─── symTable.json
           │   ├── coverage.txt
           │   ├── graph_view.txt
           │ └─── oriole
           │       └── final_graph.json
           └── mono2micro-workspace