Utilizzare il motore AI per analizzare i dati raccolti e ottenere suggerimenti su come l'applicazione può essere partizionata. Le partizioni sono raggruppamenti di classi Java® monolitiche che possono servire come punti di partenza per i microservizi.
Informazioni su questa attività
Si analizzano i dati raccolti e si generano i suggerimenti di partizione eseguendo il motore AI. Quando il motore AI viene eseguito:
- Associa le parti delle tracce di runtime insieme alle informazioni sul contesto del caso di utilizzo acquisite nell'output JSON generato dal registratore del caso di utilizzo. Per i dettagli, fare riferimento a Raccolta dei dati sui monoliti.
- Le tracce di runtime hanno origine dalle esecuzioni di business case delle applicazioni monolitiche Java strumentate.
- L'output del registratore di casi di utilizzo in formato JSON utilizza le date / ore associate agli scenari di test.
- Esegue il motore IBM® Mono2Micro™ Il motore AI analizza i registri di runtime.
- Esegue l'analisi per creare un report di analisi di richiamo dettagliato per le partizioni consigliate. Per i dettagli, fare riferimento a Elementi della vista grafico.
- Crea una struttura di directory con i file richiesti, utilizzati dal componente di creazione del codice IBM Mono2Micro .
Prima di iniziare
Assicurarsi di soddisfare i requisiti di sistema e i seguenti requisiti del motore AI.
- Il motore AI richiede un file config.ini nella directory di livello più alto per analizzare i dati raccolti. Se il file config.ini non viene fornito, il file viene creato con le impostazioni predefinite. Il motore AI crea automaticamente due cartelle secondarie in questa directory di livello superiore, mono2micro-output e mono2micro-workspace.
- Nel file config.ini , è possibile specificare le ubicazioni relative delle diverse categorie di dati raccolte durante la fase di raccolta dati. La seguente struttura mostra le ubicazioni relative predefinite di tutte e tre le categorie di dati raccolte nel paragrafo
[LogProcessor] del file config.ini .[LogProcessor]
RunlogDir = registri
ContextDir = contesti
TableDir = tabelle
- Nel file config.ini , i valori degli attributi RunlogDir, ContextDire TableDir devono essere impostati sui percorsi dei file di log che contengono i seguenti elementi.
- Le tracce del flusso temporale di runtime.
- I file JSON che il registratore di casi di utilizzo ha generato.
- Tutti i file creati dal programma di analisi del codice durante l'analisi dell'applicazione monolitica Java .
traccia del daytrader
├────── config.ini
contesti ├──────
│ └── daytrader.json
├────── registri
│ └── console.log
tabelle └──────
├── instrumenter-config.json
├── recommender-config.properties
├── refTable.json
└── symTable.json
Ad esempio, il diagramma precedente mostra la struttura di directory predefinita. Questa struttura mostra tutte le tre categorie di contenuto quando tutti i dati raccolti per l'applicazione Daytrader si trovano nella directory daytrader-trace . La directory dei log contiene un file di log corrispondente a Daytrader, l'applicazione di test di esempio ospitata in WebSphere® Application Server Liberty. Per le applicazioni di produzione è possibile avere più di un file di log. Notare che l'ubicazione del file config.ini è la stessa in cui è stato creato un file config.ini predefinito.
Procedura
- Eseguire il motore AI. La sintassi per l'esecuzione del comando mono2micro recommend viene mostrata nell'esempio.
mono2micro recommend -d <collected-data-dir-path>
In questo comando, <collected-data-dir-path> è il percorso della directory che contiene tutti i dati raccolti nel formato specificato per l'applicazione monolitica Java considerata.
Per ottenere ulteriori informazioni sul comando e le relative opzioni, eseguire il comando mono2micro recommend
--help .
Nota: l'utente che esegue il motore AI deve avere accesso in lettura e scrittura alla directory <collected-data-dir-path> . Questo accesso in lettura e scrittura garantisce che il motore AI possa creare nuovi file e directory nella directory <collected-data-dir-path> .
- Mentre il motore AI viene eseguito, emette diversi messaggi informativi sull'avanzamento di vari passi. Per ottenere informazioni più dettagliate, modificare il parametro LoggingLevel da WARN a INFO nel paragrafo
[Global] del file config.ini . È anche possibile eseguire il comando mono2micro recommend con l'indicatore --verbose per ulteriori informazioni.
Nota: l'esecuzione del motore AI è con stato e dispone di un meccanismo di checkpoint integrato. Se si verifica un errore durante l'esecuzione o se si desidera modificare i parametri di configurazione, è possibile riavviare il meccanismo di checkpoint da qualsiasi punto durante l'esecuzione. La riesecuzione del motore AI senza alcuna modifica della configurazione risulta in un no - op. Inoltre, è possibile modificare numerosi parametri nel file config.ini per generare report aggiuntivi. È anche possibile sperimentare un paio di parametri di ottimizzazione AI, che possono modificare le raccomandazioni della partizione per alcune applicazioni monolitiche Java .
Risultati
- Dopo una corretta esecuzione, il motore AI crea una directory di output mono2micro con due directory secondarie mono2micro-output e mono2micro-workspace.
La directory mono2micro-output contiene l'output finale dell'analisi AI e tutte le informazioni necessarie per la generazione del codice.
La directory mono2micro-workspace contiene i risultati intermedi dell'analisi AI; di solito non è necessario esaminare il contenuto di tale directory. Se si desidera sperimentare le funzionalità di raccomandazione della partizione, è possibile ottimizzare i parametri AI selezionati (ad esempio, il parametro MaxNumPartitions ) ed eseguire nuovamente il motore AI. Poiché il motore AI utilizza il contenuto della directory mono2micro-workspace , non rimuoverlo o modificarlo.
L'esecuzione del motore AI crea il file config.ini predefinito e la struttura di directory.
- Struttura di directory prima dell'esecuzione del comando consigliato
traccia del daytrader
contesti ├────────
registri
tabelle
- Struttura di directory dopo l'esecuzione del comando consigliato
traccia del daytrader
├── config.ini
contesti ├────────
registri
├── mono2micro
│ ├── mono2micro-output
│ └── mono2micro-workspace
tabelle
- La figura successiva mostra in dettaglio la struttura e il contenuto della directory mono2micro-output. La directory mono2micro-output contiene tre report html:
- Cardinal-Report.html, che contiene i dettagli dell'analisi del richiamo Java .
- Inheritance-Report.html, che contiene informazioni sulle gerarchie di eredità rilevate nell'analisi di classi di applicazione monolitiche Java .
- Oriole-Report.html, che contiene i dettagli dei suggerimenti della partizione.
Per ulteriori informazioni su questi report, vedere Report Oriole, Cardinal e di ereditarietà.
- I file nella directory cardinal sono necessari per il generatore di codice Mono2Micro . Per ulteriori informazioni, vedere Generazione di codice iniziale per microservizi.
Nota: i file refTable.json e symTable.json , necessari per la creazione del codice, vengono copiati nella directory daytrader-trace/mono2micro/mono2micro-output/cardinal dalla directory daytrader-trace/tables .
La directory oriole contiene il file final_graph.json , che contiene i consigli sulla partizione. Questo file viene visualizzato nella UI del workbench IBM Mono2Micro . Per ulteriori informazioni, vedere Visualizzazione delle raccomandazioni per le partizioni.
mono2micro
├── mono2micro-output
│ ├── Cardinal-Report.html
│ ├── Inheritance-Report.html
│ ├── Oriole-Report.html
│ ├─── cardinale
│ │ ├── app_config.txt
│ │ ├── cardinal_graph.json
│ │ ├── class_run.json
│ │ ├── partition.txt
│ │ ├── refTable.json
│ │ └── symTable.json
│ ├── coverage.txt
│ ├── graph_view.txt
│ └── rigogolo
│ └── final_graph.json
└── mono2micro-workspace