アプリのモダナイゼーションの評価を作成する

Migration Center App Modernization Assessmentcodmod)は、アプリケーションのモダナイゼーション評価プロセスを自動化する AI 搭載ツールです。このページでは、codmod ツールのインストール、使用、トラブルシューティングの手順について説明します。

アプリのモダナイゼーションの評価について

通常、モダナイゼーション評価プロセスには数週間かかり、多くの専門知識が必要です。このプロセスを自動化することで、codmod ツールは時間を数時間に大幅に短縮します。

このツールは、現在のアプリケーションのアーキテクチャ、機能、クラウドへの移行を遅らせる可能性のあるブロッカーに関するエビデンスに基づく情報を提供することを目的としています。

このツールは、次のロールを対象としています。

  • IT アーキテクト
  • 意思決定者
  • アプリケーション オーナー

codmod ツールは、必要な変更と、アプリケーションを Google Cloudに変換することで得られるメリットを明確に把握できるようにすることで、アプリケーションの変換を迅速化することを目的としています。codmod は、Gemini を使用してソースコードを分析し、 Google Cloud ベスト プラクティスに基づいて推奨事項を提供するポータブル CLI ツールです。

始める前に

codmod ツールには次の前提条件があります。

  • Linux または Windows(10 以降)のワークステーション。
  • Vertex AI API が有効になっている Google Cloud プロジェクトへのアクセス権。
  • ワークステーションに gcloud CLI がインストールされていること。詳細については、gcloud CLI CLI をインストールするをご覧ください。

料金

コード評価に Gemini を使用する費用は、主にコードベースのサイズによって決まり、トークン単位で測定されます。次の表に、コード行数と選択したモデルに基づいて表示される費用の見積もりを示します。

コードベース コード行数(LOC) 推定費用
adaptive 2.0-flash 2.5-pro(デフォルト) 2.5-flash
Spring Petclinic 約 6,500 $20 $2 $30 $4
James Project ~ 1,000,000 $60 $30 $500 $40
Elasticsearch ~ 5,000,000 $200 $200 $3,000 $200

これらの値は、次の理由による節約を考慮していないため、過大評価されている可能性があります。

  • 短いクエリの料金が引き下げられました。
  • 暗黙的キャッシュ保存の料金が引き下げられました。
  • 確約利用割引(CUD)。

これらのパラメータの費用は、特に大規模なコードベースの場合、総費用のごく一部になると予想されます。詳細については、Gemini API の料金をご覧ください。

その他の情報

このツールは、Vertex AI API の高度なコード理解と分析機能を使用します。使用可能なモデルとその機能の詳細については、Vertex AI API ドキュメントの Google モデルをご覧ください。

最適なパフォーマンスと費用対効果を維持するため、codmod のコードベースのサイズ上限は約 600 万行のコードです。この上限を超えるコードベースについては、分析のために管理しやすい小さな部分に分割することをおすすめします。セクションを小さくして分析すると、評価の精度が上がり、処理時間を短縮できる可能性があります。

codmod のご設定のお願い

このセクションでは、codmod ツールを使用するためのインストールと認証の手順について説明します。

codmod をインストールします。

Windows

Windows PowerShell で次のコマンドを実行して、codmod の最新バージョンをダウンロードします。

$version=curl.exe -s https://codmod-release.storage.googleapis.com/latest
curl.exe -O "https://codmod-release.storage.googleapis.com/${version}/windows/amd64/codmod.exe"

Linux

次のコマンドを実行して、codmod の最新バージョンをダウンロードします。

version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/linux/amd64/codmod"
chmod +x codmod

Google Cloudに対して認証する

codmod ツールを使用するには、 Google Cloud プロジェクトが必要です。

  1. コンソールまたは CLI を使用して、プロジェクトで Vertex AI API が有効になっていることを確認します。

    gcloud services enable aiplatform.googleapis.com --project <project-id>
    
  2. プロジェクトに roles/aiplatform.user ロールまたは同等のロールがあることを確認します。

  3. 認証を行うには、次のコマンドを実行します。

    gcloud auth application-default login
    

または、サービス アカウントを使用して GOOGLE_APPLICATION_CREDENTIALS 環境変数を設定することもできます。詳細については、アプリケーションのデフォルト認証情報の仕組みをご覧ください。

codmod 構成を管理する

以降のセクションでは、codmod config コマンドを使用して codmod を構成する方法について説明します。

すべての設定を一覧表示する

現在のすべての構成プロパティとその値を表示するには、次のコマンドを実行します。

codmod config list

フラグのデフォルト値を設定する

プロパティのデフォルト値を設定するには、set コマンドを使用します。たとえば、デフォルトのプロジェクト ID を設定するには、次のコマンドを実行します。

codmod config set project "PROJECT_ID"

PROJECT_ID は、 Google Cloud プロジェクト ID に置き換えます。

デフォルトのリージョンを設定するには、次のコマンドを実行します。

codmod config set region "REGION"

REGION: Google Cloud のリージョン。利用可能なリージョンの一覧をご覧ください。使用するリージョンが不明な場合は、us-central1 を使用します。

特定の値を取得する

単一のプロパティの値を取得するには、get コマンドを使用します。たとえば、構成されたプロジェクト ID を取得するには、次のコマンドを実行します。

codmod config get project

デフォルト値を設定解除する

構成済みのデフォルトを削除してツールの元のデフォルト設定に戻すには、unset コマンドを使用します。たとえば、デフォルトのプロジェクト ID を削除するには、次のコマンドを実行します。

codmod config unset project

codmod 評価レポートを作成する

以降のセクションでは、デフォルトの評価を作成する方法と、ニーズに合わせてカスタマイズする方法について説明します。

デフォルト レポートを作成する

評価レポートを作成するには、次のフラグを指定して codmod ツールを実行します。

codmod create -c "CODEBASE" -o "OUTPUT"

次のように置き換えます。

  • CODEBASE: 分析するソースコードを含むディレクトリを指定します。複数回指定できます。
  • OUTPUT: 生成されたレポートが保存されるパスを指定します。レポートは HTML 形式です。

デフォルトのプロジェクトとリージョンは、それぞれ -p "PROJECT_ID" フラグと -r "REGION" フラグでオーバーライドできます。

次のオプションのフラグを指定することもできます。

  • --modelset [2.0-flash|2.5-flash|2.5-pro|adaptive]: 使用する Gemini モデルを指定します。デフォルト値は 2.5-pro です。Adaptive は、2.5-pro と比較してレポートの品質が低下する可能性があるものの、コストを大幅に削減できます。
  • --context <string>: プロジェクトについて提供する追加のコンテキスト。このツールは、レポートを生成する際にこのコンテキストを考慮します。
  • --context-file <path>: --context と同じ。コンテキストは指定されたファイルで提供されます。
  • --format <html|markdown|odt|json>: 生成されたレポートに使用される形式。デフォルトは HTML です。
  • --allow-large-codebase: デフォルトでは、100 万行を超えるコードベースを分析する前に、codmod は確認を求めます。これは、高コストを回避するためです。このオプションは、非インタラクティブな確認として機能します。codmod config set allow_large_codebase true を実行して、デフォルトで有効にすることもできます。
  • --improve-fidelity: 設定すると、codmod はセクションを並行ではなくシリアルに生成します。これにより、最終レポートのさまざまなセクション間の整合性が向上しますが、実行時間が長くなります。
  • --force-include <strings>--force-exclude <strings>: デフォルトでは、codmod は Java、.NET、Python などの一般的なファイル拡張子をスキャンします。これらのフラグを使用して、ファイル拡張子を含めるか除外します。引数は、RE2 構文の正規表現である必要があります。
  • --experiments: codmod で PDF と画像をサポートするには、--experiments=enable_pdf,enable_images を指定します。

レポートを作成します

完全な分析が必要な場合は、create full コマンドを使用してレポートを作成します。

codmod create full -c "~/mycodebase/" -o "report.html"

データレイヤに焦点を当てたレポートを作成する

データレイヤを詳しく分析する必要がある場合は、この領域に焦点を当てたレポートを作成できます。

codmod create data-layer -c "CODEBASE" -o "OUTPUT"

特定の変換インテントのレポートを作成する

レポートを特定のモダナイゼーションの意図に絞り込む場合は、次のいずれかのサポートされているインテントを使用できます。

  • Microsoft ワークロード変換MICROSOFT_MODERNIZATION): Microsoft OS で実行されているアプリケーションで使用します。評価では、.NET ベースのフレームワークを最新バージョンに移行し、Microsoft ライセンスへの依存度を減らす変換ジャーニーに重点が置かれます。
  • Cloud to Cloud Workload TransformationCLOUD_TO_CLOUD): 他のハイパースケーラー インフラストラクチャで実行されているアプリケーションで使用します。評価では、他のクラウド ベンダーのサービスをGoogle Cloud サービスにマッピングするなど、アプリケーションの変換に推奨される変更に重点が置かれます。
  • レガシー Java 変換JAVA_LEGACY_TO_MODERN): Java 8 以降の Java バージョンを実行しているアプリケーションで使用します。評価では、Java 21(現在の LTS)への変更の影響を受けるコード内のアップグレードの依存関係と領域の特定に重点が置かれます。
  • 以前の Java WILDFLY 変換WILDFLY_LEGACY_TO_MODERN): 最新バージョンより前の WildFly アプリケーション サーバー バージョンで実行されている Java EE/Jakarta EE コードベースで使用します。この評価では、API の違いと互換性に必要な変更など、WildFly アプリケーション サーバーのバージョン アップグレードによって影響を受けるコードのアップグレードの依存関係と領域を特定することに重点を置きます。

インテントに焦点を当てたレポートを作成するには、--intent フラグを使用します。

codmod create -c "CODEBASE" -o "OUTPUT" --intent "INTENT"

セクションを追加してレポートを作成する

このツールでは、デフォルトで含まれていない追加のセクションを含めて費用を削減できます。次のセクションがサポートされています。

  • files: プロジェクト ファイルの把握に役立つ、プロジェクト フォルダの構造化された階層ビューと各フォルダの内容の説明。
  • classes: 各クラスとその他のクラスへの依存関係に関する情報を含むコードクラスのカタログ。サポートされている言語は Java と C# です。

追加のセクションを作成するには、--optional-sections フラグを使用します。

codmod create -c "CODEBASE" -o "OUTPUT" --optional-sections "SECTIONS"

SECTIONS は、値のカンマ区切りリストに置き換えます。

カスタム レポートを作成する

特定のカスタム トピックを調べる場合は、次のコマンドを使用して、指定したコンテキストに基づいてカスタム レポートを作成できます。

codmod create custom -c "CODEBASE" -o "OUTPUT" --context "CONTEXT"

デフォルトでは、LLM は提供されたコンテキストを拡張し、一貫性のあるセクションが生成されるように適応させます。--improve-context=false を指定すると、この動作を無効にできます。

その他のフラグ:

  • --from-template <path>: テキストまたは PDF ファイル形式でドキュメント構造を定義するテンプレート ファイルを指定します。codmod は構造を検出し、レポートの生成を続行するための承認を求めます。
  • --skip-template-approval: --from-template フラグを使用する場合に承認リクエストをスキップします。

既存のレポートを変更する

レポートに新しいセクションを作成したり、特定のセクションに基づいて既存のセクションを変更したりできます。たとえば、システムのアーキテクチャの特定の側面や、特定のタイプのセキュリティの脆弱性に焦点を当てたい場合があります。

レポートを変更するコマンドには、次のフラグが必要です。

  • --context または --context-file のいずれか: 変更リクエストを指定します。
  • --from-report: 既存のレポート ファイルのパスを指定します。
  • --from-section: 新しいセクションのベースとして使用するセクションの名前(概要、アーキテクチャなど)。

特定のレポートで使用可能なすべてのセクションを表示するには、次のコマンドを実行します。

codmod list-sections --from-report "REPORT"

レポートのセクションを修正する

次のコマンドを実行して、既存のセクションを変更します。

codmod revise section -c "CODEBASE" --from-report "REPORT" \
  -o "REVISED_REPORT" --from-section "SECTION_NAME" \
  --context "CONTEXT"

新しいレポート セクションを作成する

次のコマンドを使用して新しいセクションを作成します。

codmod create section -c "CODEBASE" --from-report "REPORT" \
  -o "REGENERATED_REPORT" --from-section "SECTION_NAME" \
  --context "CONTEXT"
  • create section コマンドの from-section フラグは省略可能です。
  • デフォルトでは、LLM は、提供されたコンテキストを拡張し、一貫性のあるセクションが生成されるように適応させます。--improve-context=false を指定すると、この動作を無効にできます。

次の点にご注意ください。

  • create sectionrevise sectionhtml レポート形式のみをサポートします。
  • create sectionrevise sectionlist-sections は、--from-report フラグが HTML 形式のレポートを指すことを想定しています。

評価費用を見積もる

codmod ツールを使用すると、レポートの作成にかかる費用の概算を計算できるため、ツールの使用にかかる費用を把握できます。費用見積もりを表示するには、次のコマンドを実行します。

codmod create --estimate-cost -c "CODEBASE"

create section コマンドと create custom コマンドでは、費用の見積もりはサポートされていません。

詳細レベルを設定する

codmod の詳細度は、--verbosity LEVEL フラグを使用して構成されます。ログの詳細レベルは、debuginfowarnerrornone のいずれかです。デフォルト値は warn です。

トラブルシューティング

  • 権限が拒否されました: 「権限が拒否されました」というエラーが発生した場合は、chmod +x codmod コマンドを実行して codmod バイナリに実行権限を付与したことを確認してください。
  • CLI がハングしているように見える: 分析には時間がかかることがありますが、通常は CLI の進行状況バーで進行状況を確認できます。15 分経過しても進行状況バーが 0% のままの場合は、関連するモデルに十分な割り当てがあることを確認します。デフォルトでは、codmodgemini-2.5-pro モデルを使用します。ただし、モデルセットごとに異なるモデルが異なる目的で使用されるため、この点は変更される可能性があります。
  • エラーの報告: 調査が必要なエラーが発生した場合は、デバッグ情報を収集して開発チームをサポートします。ログには、トラブルシューティングに不可欠な詳細情報が記録されます。次のコマンドを実行してログを収集し、結果のアーカイブを zip 圧縮して、codmod-feedback-external@google.com のチームと共有します。

    codmod collect-logs -o "codmod_logs.zip"
    

オープンソース ライセンス

codmod の最新バージョンの依存関係のオープンソース ライセンス条項をダウンロードするには、次のコマンドを実行します。

version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/THIRD_PARTY_NOTICES.txt"

サポートを利用する、フィードバックを送信する

このプロダクトの品質向上に役立てるため、使用状況の仮名化されたデータを収集します。このデータは、Google のプライバシー ポリシー Google Cloud プライバシーに関するお知らせに沿って取り扱われます。設定は、次のコマンドを実行することでいつでも変更できます。

codmod config set disable_usage_reporting true

サポートの利用やフィードバックの送信は、次の方法で行うことができます。

  • codmod のサポートを受けるには、生成された HTML レポートの [サポート] ボタンをクリックするか、codmod-feedback-external@google.com 宛てにメールを送信してください。
  • codmod に関するフィードバックを送信するには、生成された HTML レポートの [フィードバック] ボタンをクリックします。