IBM Mono2Micro の概要
IBM® Mono2Micro™ は、 Java® モノリシック・アプリケーションをマイクロサービスにリファクタリングするための半自動ユーティリティです。 WebSphere® Application Server Liberty または Open Liberty. IBM Mono2Micro とそれが提供する推奨事項を使用して、マイクロサービスのビルドとデプロイに必要なコードの大部分を自動的に生成することができます。
静的および動的分析を通じて、 IBM Mono2Micro は、機械学習エンジンと Java モノリシック・アプリケーション・コードの分析を使用して、パーティション推奨を生成します。 パーティション推奨 は、マイクロサービスの開始点として使用できる、モノリスのクラスのグループです。 推奨されるパーティションとその他の関連情報は、直観的なワークベンチ UI に表示されます。 IBM Mono2Micro は、 Java プログラミング言語に関する組み込み知識に基づいて、クラス間呼び出しの深いセマンティック分析も提供します。 ワークベンチ UI と詳細な分析を使用することで、パーティション化の推奨事項を明確に把握できます。この推奨事項は、ビジネス・ニーズに合わせて繰り返し微調整できます。 特定のパーティション化の推奨を決定した後、 IBM Mono2Micro を実行すると、既存のモノリス・コードとともに推奨パーティションをビルドしてデプロイするために必要なコードの大部分を自動的に生成できます。 生成されたコードを検討した後、マイクロサービスがニーズを満たすようになるまで、反復して推奨事項を微調整し、コードを生成することができます。 その後、 WebSphere Application Server Liberty または Open Libertyでマイクロサービスを実行できます。
IBM Mono2Micro の一部として利用できる。 IBM WebSphere Hybrid Edition そして IBM Cloud Pak® for Applications.
IBM Mono2Micro のジャーニー
IBM Mono2Micro コマンドは、以下の機能を提供します。
IBM Mono2Micro がアプリケーションを分析するには、まずそのコードに対して mono2micro analyze コマンドを実行してから、インスツルメンテーションを使用してアプリケーションを実行し、分析対象のすべてのデータを収集します。
- アプリケーション・アーカイブで mono2micro analyze コマンドを実行して、完全クラス名、メソッド・シグニチャー、状態変数、継承関係などのコードに関する情報を含む表 JSON ファイルを生成します。
- (オプション) バイナリー・インスツルメンテーション機能を有効にしてアプリケーションをデプロイします。
- (オプション) ビジネス・ユース・ケースで mono2micro usecase コマンドを実行して、分析用の 1 つ以上のコンテキスト JSON ファイルおよびログ・ファイルを生成します。
IBM Mono2Microから 2 つのリファクタリング・オプションを取得するには、以前に収集したファイルに対して mono2micro recommend コマンドを実行して、パーティション推奨を含むレポートとグラフ JSON を取得します。
- 静的コード分析、およびオプションでコード生成から推奨を取得するために、入力ディレクトリー内の場所にファイルを配置します。
- 静的コード分析の場合のみ、表 JSON ファイル ( mono2micro analyzeから) を入力ディレクトリー内の適切な場所に配置します。
- 静的コード分析およびコード生成の場合、表 JSON ファイル ( mono2micro analyzeから)、ログ・ファイル (ビジネス・ユース・ケースの実行中にアプリケーション・サーバーから)、およびコンテキスト JSON ファイル (ビジネス・ユース・ケースの実行中に mono2micro usecase から) を、入力ディレクトリー内の適切な場所に配置します。
- mono2micro recommend コマンドを実行して、リファクタリング・アプローチを使用してレポートおよびグラフ JSON を生成します。
- 静的コード分析、およびオプションでコード生成から推奨を取得するために、入力ディレクトリー内の場所にファイルを配置します。
mono2micro workbench コマンドを実行してワークベンチ UI を起動すると、アプリケーション用に作成された 2 つのリファクタリング・アプローチを調べることにより、アプリケーションとそのクラスについてより深く理解することができます。 IBM Mono2Micro による 2 つのリファクタリング・アプローチは、ビジネス・ロジックと自然継ぎ目です。 これらの推奨事項は、アプリケーションのランタイム呼び出しと検出されたデータ依存関係の分析から作成されました どちらのアプローチも望ましい方法ではない場合は、独自のカスタム・パーティショニング・ソリューションの計画を作成して保存します。
- mono2micro workbench コマンドを使用して、ワークベンチ UI コンテナー・イメージを起動します。
- ブラウザーで UI にアクセスし、 mono2micro recommend コマンドから生成された JSON ファイルをロードします。
- リファクタリング・アプローチを検討します。
- (オプション) カスタム・リファクタリング・オプション JSON ファイルを作成して保存します。
mono2micro transform コマンドを実行して、マイクロサービスを作成するためのスターター・コードを自動的に生成します。
- (オプション) 自然継ぎ目またはカスタム・リファクタリング・アプローチの使用を選択した場合は、 mono2micro refine コマンドを実行します。
- mono2micro transform コマンドを実行してコードを生成します。
- テスト環境でコードを編集およびデプロイします。
動作の仕組み
以下の図は、 IBM Mono2Microによるワークフローを示しています。 (Action)という用語で始まる青いボックスは、ユーザー・アクションを表します。 (File)という用語で始まる塗りつぶされていないボックスは、ファイルを表します。 実線は次のステップを指しています。 破線は、ファイルの使用を示し、ワークフロー内の次のユーザー・アクションまたはファイルを指します。 ワークフローはアプリケーション・コードで開始し、分析とコード生成の後、パーティション用に生成されたスターター・コードで終了します。
IBM Mono2Micro コンポーネント
IBM Mono2Micro は、前の図に示されている以下の 6 つのコンポーネントで構成されます。
- コード・アナライザー (
mono2micro-bluejayコンテナーまたは binary analyzer .jar) - モノリシック・アプリケーションの Java コードを分析し、オプションでインスツルメントする mono2micro analyze コマンド。
- バイナリー・インスツルメンテーション機能 (minerva-agent-1.0.jar)
- アプリケーション・サーバーにデプロイされた実行中のアプリケーションをインスツルメントする Java エージェント。
- ユース・ケース・レコーダー (Flicker)
- mono2micro usecase コマンドを使用して実行します。これは、ユース・ケースの名前と時刻を記録する Java プログラムです。 これは、 Java モノリシック・アプリケーションのさまざまなビジネス・ユース・ケースに対応するテスト・スイートまたはテスト・ケースを実行する場合に使用します。
- パーティション推奨の AI エンジン (
mono2micro-aiplコンテナー) - mono2micro recommend コマンドは、 IBM Mono2Microの AI エンジンを実行します。 ソース・コード・アナライザーから取得されるユーザー提供のランタイム・トレースおよびメタデータに対して、機械学習技法を使用します。 結果の情報を使用して、最終的にマイクロサービスになる可能性があるパーティション推奨を生成します。 このコマンドは、推奨パーティションの詳細レポートも作成します。
- IBM Mono2Micro ワークベンチ UI
- mono2micro workbench コマンドを使用して起動されたときに AI エンジンからの推奨を表示する
mono2micro-uiコンテナー。 IBM Mono2Micro AI エンジンから取得された推奨事項は、ローカル・ストレージに保持されます。 推奨をワークベンチ UI にロードして、グラフィカル・ビジュアライザーに表示することができます。 UI を使用して、AI 生成のパーティション推奨を変更できます。 - コード・ジェネレーター (
mono2micro-cardinalコンテナー) mono2micro transform コマンドは、 Java プログラミング言語のセマンティクスに関する深い知識を持つコード・ジェネレーターを起動します。 コード・ジェネレーターは、AI エンジンからの推奨事項を使用して、以下のことを行います。
- 最終的にマイクロサービスとして実装できる推奨パーティションの詳細な呼び出し分析を提供します。
- 推奨パーティションの詳細な継承分析を生成します。
- コンテナー内の推奨パーティションを実現するために必要なコードの大部分を生成します。
Mono2Micro ツールをダウンロードし、ローカルコンピュータで実行することができます。
Java モノリシック・アプリケーションのリファクタリングの手順
以下のステップでは、 IBM Mono2Microを使用して Java モノリシック・アプリケーションをリファクタリングする方法について説明します。 これらは、前の図のより詳細なバージョンです。
前のステップの一部は、他の IBM Mono2Micro トピックで詳しく説明されています。
- IBM Mono2Micro のインストール には、リソース要件など、ユーザーの視点から見た IBM Mono2Micro の操作面が含まれています。
- Java モノリシック・アプリケーションに関するデータの収集 では、ステップ 2a および 2bを実行するために必要なステップと関連情報が詳しく説明されています。
- パーティション推奨の取得 では、ステップ 2c と 2dの実行方法、および必要に応じてステップ 3 を実行する方法について説明します。
- マイクロサービスの推奨の表示 の詳細ステップ 2d。これには、 IBM Mono2Micro で生成されたマイクロサービスの推奨を解釈およびカスタマイズする方法が含まれます。
- レポート には、ステップ 2d および 3 で作成されたパーティションおよび継承分析レポートに関する詳細情報が含まれています。
- マイクロサービスのスターター・コードの生成 -マイクロサービス・コードを自動生成するためのステップ 4a について詳しく説明します。