Ejecución del motor de IA para analizar los datos recopilados

Utilice el motor de IA para analizar los datos recopilados y obtener recomendaciones sobre cómo se puede particionar la aplicación. Las particiones son agrupaciones de clases Java® monolíticas que pueden servir como puntos de partida para microservicios.

Acerca de esta tarea

Analice los datos recopilados y genere las recomendaciones de partición ejecutando el motor de IA. Cuando se ejecuta el motor de IA:
  1. Asocia las partes de los rastreos de tiempo de ejecución junto con la información de contexto de caso de uso que se captura en la salida JSON generada por el grabador de casos de uso. Consulte Recopilación de datos sobre monolitos para obtener detalles.
    • Los rastreos de tiempo de ejecución se originan en las ejecuciones de caso de negocio de las aplicaciones monolíticas Java instrumentadas.
    • La salida del grabador de casos de uso en formato JSON utiliza las indicaciones de fecha y hora que están asociadas con los casos de prueba.
  2. Ejecuta el motor de IBM® Mono2Micro™ Motor de IA para analizar los registros de tiempo de ejecución.
  3. Ejecuta el análisis para crear un informe de análisis de invocación detallado para las particiones recomendadas. Consulte Elementos de la vista gráfica para obtener detalles.
  4. Crea una estructura de directorios con los archivos necesarios, que utiliza el componente de generación de código IBM Mono2Micro .

Antes de empezar

Asegúrese de cumplir los requisitos del sistema y los siguientes requisitos del motor de IA.

  • El motor de IA requiere un archivo config.ini en el directorio de nivel más alto para que se analicen los datos recopilados. Si no se proporciona el archivo config.ini , el archivo se crea con los valores predeterminados. El motor de IA crea automáticamente dos subcarpetas en este directorio de nivel superior, mono2micro-output y mono2micro-workspace.
  • En el archivo config.ini , se pueden especificar las ubicaciones relativas de las diferentes categorías de los datos que se recopilan durante la fase de recopilación de datos. La estructura siguiente muestra las ubicaciones relativas predeterminadas de las tres categorías de datos recopilados en el párrafo [LogProcessor] del archivo config.ini .
    [LogProcessor]
    RunlogDir = registros
    ContextDir = contextos
    TableDir = tablas
  • En el archivo config.ini , los valores de los atributos RunlogDir, ContextDiry TableDir deben establecerse en las ubicaciones de los archivos de registro que contienen los elementos siguientes.
    • Los rastreos de flujo temporal de tiempo de ejecución.
    • Los archivos JSON que ha generado el grabador de casos de uso.
    • Todos los archivos creados por el analizador de código durante el análisis de la aplicación monolítica Java .
    daytrader-trace
      ├────── config.ini
      ├────── contextos
      │  └── daytrader.json
      ├────── registros
      │  └── console.log
      └────── tablas
         ├── instrumenter-config.json
         ├── recommender-config.properties
    ├── refTable.json
    └── symTable.json

    Por ejemplo, el diagrama anterior muestra la estructura de directorios predeterminada. Esta estructura muestra todas las tres categorías de contenido cuando los datos completos que recopila la aplicación Daytrader se encuentran bajo el directorio daytrader-trace. El directorio de registros contiene un archivo de registro correspondiente a Daytrader, la aplicación de prueba de ejemplo alojada en WebSphere® Application Server Liberty. Para las aplicaciones de producción, puede tener más de un archivo de registro. Tenga en cuenta que la ubicación del archivo config.ini es la misma en la que se crea un archivo config.ini predeterminado.

Procedimiento

  1. Ejecute el motor de IA. La sintaxis para ejecutar el mandato mono2micro recommend se muestra en el ejemplo.
    mono2micro recommend -d <collected-data-dir-path>

    En este mandato, <collected-data-dir-path> es el nombre de vía de acceso del directorio que contiene todos los datos recopilados en el formato especificado para la aplicación monolítica Java que se está considerando.

    Para obtener más información sobre el mandato y sus opciones, ejecute el mandato mono2micro recommend --help .

    Nota: El usuario que ejecuta el motor de IA debe tener acceso de lectura y escritura al directorio <collected-data-dir-path> . Este acceso de lectura y escritura garantiza que el motor de IA pueda crear nuevos archivos y directorios en el directorio <collected-data-dir-path> .
  2. A medida que se ejecuta el motor de IA, emite varios mensajes informativos sobre el progreso de varios pasos. Para obtener información más detallada, cambie el parámetro LoggingLevel de WARN a INFO en el párrafo [Global] del archivo config.ini . También puede ejecutar el mandato mono2micro recommend con el distintivo --verbose para obtener más información.
    Nota: La ejecución del motor de IA es con estado y tiene un mecanismo de punto de comprobación incorporado. Si se produce una anomalía durante la ejecución, o si desea cambiar los parámetros de configuración, puede reiniciar el mecanismo de punto de comprobación desde cualquier punto durante su ejecución. Volver a ejecutar el motor de IA sin ningún cambio de configuración da como resultado una operación no operativa. Además, puede modificar varios parámetros en el archivo config.ini para generar informes adicionales. También puede experimentar con un par de parámetros de ajuste de IA, que pueden cambiar las recomendaciones de partición para algunas aplicaciones monolíticas de Java .

Resultados

  • Después de una ejecución satisfactoria, el motor de IA crea un directorio de salida mono2micro con dos subdirectorios mono2micro-output y mono2micro-workspace.

    El directorio mono2micro-output contiene la salida final del análisis de IA y toda la información necesaria para la generación de código.

    El directorio mono2micro-workspace contiene resultados intermedios del análisis de IA; normalmente no es necesario examinar el contenido de este directorio. Si desea experimentar con las prestaciones de recomendación de partición, puede ajustar los parámetros de IA seleccionados (por ejemplo, el parámetro MaxNumPartitions ) y, a continuación, volver a ejecutar el motor de IA. Puesto que el motor de IA utiliza el contenido del directorio mono2micro-workspace , no elimine ni modifique su contenido.

  • La ejecución del motor de IA crea el archivo config.ini predeterminado y la estructura de directorios.

    Estructura de directorios antes de ejecutar el mandato recomendado
    daytrader-trace
    ├── contextos
    registros
    └── mesas
    Estructura de directorios después de que se ejecute el mandato recomendado
    daytrader-trace
        ├── config.ini
    ├── contextos
    registros
        ├── mono2micro
        │   ├── mono2micro-output
        │   └── mono2micro-workspace
    └── mesas
  • La siguiente figura muestra la estructura y el contenido del directorio mono2micro-output en detalle. El directorio mono2micro-output contiene tres informes html:
    • Cardinal-Report.html, que contiene los detalles del análisis de invocación de Java .
    • Inheritance-Report.html, que contiene información sobre las jerarquías de herencia que se detectan en el análisis de las clases de aplicación monolítica Java .
    • Oriole-Report.html, que contiene los detalles de las recomendaciones de partición.

    Para obtener más información sobre estos informes, consulte Informes Oriole, Cardinal e Inheritance.

  • Los archivos del directorio cardinal son necesarios para el generador de código Mono2Micro . Para obtener más información, consulte Generación de código de inicio para microservicios.
    Nota: Los archivos refTable.json y symTable.json , que son necesarios para la generación de código, se copian en el directorio daytrader-trace/mono2micro/mono2micro-output/cardinal desde el directorio daytrader-trace/tables .

    El directorio oriole contiene el archivo final_graph.json , que contiene las recomendaciones de partición. Este archivo se visualiza en la interfaz de usuario del entorno de trabajo de IBM Mono2Micro . Para más información, consulte Ver recomendaciones de particiones.

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