AI エンジンを使用して、収集されたデータを分析し、アプリケーションをパーティション化する方法に関する推奨情報を取得します。 パーティションは、マイクロサービスの出発点となるモノリス Java® クラスのグループ化です。
このタスクについて
AI エンジンを実行して、収集されたデータを分析し、パーティション推奨を生成します。 AI エンジンが実行されると、以下のようになります。
- ランタイム・トレースの一部を、ユース・ケース・レコーダーによって生成される JSON 出力に取り込まれるユース・ケース・コンテキスト情報と関連付けます。 詳しくは、 モノリシックに関するデータの収集 を参照してください。
- ランタイム・トレースは、インスツルメントされた Java モノリシック・アプリケーションのビジネス・ケース実行から発生します。
- JSON 形式のユース・ケース・レコーダー出力では、テスト・ケースに関連付けられたタイム・スタンプが使用されます。
- を実行する。 IBM® Mono2Micro™ AIエンジンを実行し、ランタイムログを分析する。
- 分析を実行して、推奨パーティションの詳細な呼び出し分析レポートを作成します。 詳しくは、 グラフ・ビューのエレメント を参照してください。
- 必要なファイルを含むディレクトリー構造を作成します。これらのファイルは、 IBM Mono2Micro コード生成コンポーネントによって使用されます。
開始前に
システム要件 および以下の AI エンジン要件を満たしていることを確認してください。
- AI エンジンでは、収集されたデータを分析するために、最上位ディレクトリーに config.ini ファイルが必要です。 config.ini ファイルが指定されていない場合は、デフォルト設定でファイルが作成されます。 AI エンジンは、この最上位ディレクトリーに mono2micro-output と mono2micro-workspaceの 2 つのサブフォルダーを自動的に作成します。
- config.ini ファイルでは、データ収集フェーズ中に収集されるデータのさまざまなカテゴリーの相対的な場所を指定できます。 以下の構造は、 config.ini ファイルの
[LogProcessor] 段落にある、収集されたデータの 3 つのカテゴリーすべてのデフォルト相対ロケーションを示しています。[LogProcessor]
RunlogDir = ログ
ContextDir = コンテキスト
TableDir = テーブル
- config.ini ファイルでは、 RunlogDir、 ContextDir、および TableDir 属性の値を、以下の項目を含むログ・ファイルの場所に設定する必要があります。
- ランタイム・テンポラル・フロー・トレース。
- ユース・ケース・レコーダーが生成した JSON ファイル。
- Java モノリシック・アプリケーションの分析中にコード・アナライザーによって作成されたすべてのファイル。
デイトレーダー・トレース
├────── config.ini
├────────────────────────────────
│ └── daytrader.json
過去ログ
│ └── console.log
テーブル
├── instrumenter-config.json
├── recommender-config.properties
refTable ├─00.json
symTable └─00.json
例えば、前の図はデフォルトのディレクトリー構造を示しています。 この構造は、Daytrader アプリケーション用に収集されます。であるデータ全体がdaytrader-traceディレクトリーの下にある場合に、3 つのすべてのコンテンツ・カテゴリーを表示します。 logs ディレクトリーには、 WebSphere® Application Server Libertyでホストされるサンプル・テスト・アプリケーションである Daytrader に対応するログ・ファイルが含まれています。 実稼働アプリケーションの場合は、複数のログ・ファイルを持つことができます。 config.ini ファイルのロケーションは、デフォルトの config.ini ファイルが作成されるロケーションと同じ場所になることに注意してください。
手順
- AI エンジンを実行します。 mono2micro recommend コマンドを実行するための構文を例に示します。
mono2micro recommend -d <collected-data-dir-path>
このコマンドで、 <collected-data-dir-path> は、対象となっている Java モノリシック・アプリケーションについて指定された形式で収集されたすべてのデータが含まれているディレクトリーのパス名です。
コマンドとそのオプションに関する詳細情報を取得するには、 mono2micro recommend
--help コマンドを実行します。
注: AI エンジンを実行するユーザーには、 <collected-data-dir-path> ディレクトリーに対する読み取り権限と書き込み権限が必要です。 この読み取り権限と書き込み権限により、AI エンジンが <collected-data-dir-path> ディレクトリーに新しいファイルとディレクトリーを作成できるようになります。
- AI エンジンが実行されると、さまざまなステップの進行状況に関するいくつかの通知メッセージが発行されます。 より詳細な情報を得るには、 config.ini ファイルの
[Global] 段落で、 LoggingLevel パラメーターを WARN から INFO に変更します。 --verbose フラグを指定して mono2micro recommend コマンドを実行して、詳細情報を表示することもできます。
注: AI エンジンの実行はステートフルであり、チェックポイント・メカニズムが組み込まれています。 実行中に障害が発生した場合、または構成パラメーターを変更したい場合は、実行中の任意のポイントからチェックポイント・メカニズムを再始動することができます。 AI エンジンを構成変更なしで再実行すると、ノーオペレーションになります。 また、 config.ini ファイル内のさまざまなパラメーターを変更して、追加のレポートを生成することもできます。 いくつかの AI チューニング・パラメーターを試すこともできます。これにより、一部の Java モノリシック・アプリケーションのパーティション推奨が変更される可能性があります。
結果
- 正常に実行されると、AI エンジンは、2 つのサブディレクトリー mono2micro-output および mono2micro-workspaceを持つ mono2micro 出力ディレクトリーを作成します。
mono2micro-output ディレクトリーには、AI 分析の最終出力と、コード生成に必要なすべての情報が含まれています。
mono2micro-workspace ディレクトリーには、AI 分析の中間結果が含まれています。通常、このディレクトリーの内容を調べる必要はありません。 パーティション推奨機能を試してみたい場合は、選択した AI パラメーター (例えば、 MaxNumPartitions パラメーター) をチューニングしてから、AI エンジンを再実行することができます。 AI エンジンは mono2micro-workspace ディレクトリーの内容を使用するため、その内容を削除したり変更したりしないでください。
AI エンジンを実行すると、デフォルトの config.ini ファイルとディレクトリー構造が作成されます。
- 推奨コマンド実行前のディレクトリー構造
デイトレーダー・トレース
文脈
ログ
テーブル
- 推奨コマンド実行後のディレクトリー構造
デイトレーダー・トレース
├── config.ini
文脈
ログ
├── mono2micro
│ ├── mono2micro-output
│ └── mono2micro-workspace
テーブル
- 次の図は、mono2micro-outputディレクトリーの構造と内容を詳細に示しています。 mono2micro-outputディレクトリーには、以下の 3 つの HTML レポートが含まれます。
- Cardinal-Report.html。 Java 呼び出し分析の詳細が含まれます。
- Inheritance-Report.html。 Java モノリシック・アプリケーション・クラスの分析で検出された継承階層に関する情報が含まれます。
- Oriole-Report.html。これには、パーティションの推奨事項の詳細が含まれます。
これらのレポートについて詳しくは、 Oriole 、 Cardinal 、および Inheritance レポートを参照してください。
- cardinal ディレクトリー内のファイルは、 Mono2Micro コード・ジェネレーターに必要です。 詳細については、 マイクロサービス用のスターターコードを生成するを参照してください。
注: コード生成に必要な refTable.json ファイルと symTable.json ファイルは、 daytrader-trace/mono2micro/mono2micro-output/cardinal ディレクトリーの daytrader-trace/tables ディレクトリーにコピーされます。
oriole ディレクトリーには、 final_graph.json ファイルが含まれています。このファイルには、パーティション推奨が含まれています。 このファイルは、 IBM Mono2Micro ワークベンチ UI に表示されます。 詳しくは、 パーティションに関する推奨事項をご覧ください。
mono2micro
├── mono2micro-output
│ ├── Cardinal-Report.html
│ ├── Inheritance-Report.html
│ ├── Oriole-Report.html
カーディナル
│ │ ├── app_config.txt
│ │ ├── cardinal_graph.json
│ │ ├── class_run.json
│ │ ├── partition.txt
refTable │ ├─00.json
symTable │ └─00.json
│ ├── coverage.txt
│ ├── graph_view.txt
オリオール
│ └── final_graph.json
└── mono2micro-workspace