CLI ガイド


Migration Toolkit for Applications 7.2

Migration Toolkit for Applications CLI を使用してアプリケーションを移行する方法

Red Hat Customer Content Services

概要

このガイドでは、Migration Toolkit for Applications CLI を使用して Java アプリケーションの移行を単純化する方法を説明します。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

第1章 概要

1.1. CLI ガイドについて

このガイドは、Migration Toolkit for Applications (MTA) を使用して Java アプリケーション、.NET アプリケーション、またはその他のコンポーネントを移行するエンジニア、コンサルタント、その他のユーザーを対象としています。MTA 7.1 以降では、MTA を使用して Java 以外の言語で記述されたアプリケーションを分析できます。Java 以外の言語で記述されたアプリケーションに対して分析を実行するには、カスタムルールセットを追加し、ターゲット言語を指定しないでください。このガイドでは、CLI のインストールおよび実行方法、生成されたレポートの確認方法、追加機能を活用方法を説明します。

重要

.NET の移行は開発者プレビュー機能です。開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。本番環境またはビジネスクリティカルなワークロードには、開発者プレビュー機能を使用しないでください。開発者プレビュー機能は、Red Hat 製品オファリングに含まれる可能性がある前に、今後の製品機能への早期アクセスを提供し、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにします。これらの機能にはドキュメントがない可能性があり、いつでも変更または削除される可能性があり、テストは制限されています。Red Hat は、関連する SLA なしで、開発者プレビュー機能に関するフィードバックを送信する方法を提供する場合があります。

重要

Java 以外の言語で記述されたアプリケーションの分析は、開発者プレビュー機能です。開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。本番環境またはビジネスクリティカルなワークロードには、開発者プレビュー機能を使用しないでください。開発者プレビュー機能は、Red Hat 製品オファリングに含まれる可能性がある前に、今後の製品機能への早期アクセスを提供し、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにします。これらの機能にはドキュメントがない可能性があり、いつでも変更または削除される可能性があり、テストは制限されています。Red Hat は、関連する SLA なしで、開発者プレビュー機能に関するフィードバックを送信する方法を提供する場合があります。

1.2. Migration Toolkit for Applications の概要

Migration Toolkit for Applications とは

Migration Toolkit for Applications (MTA) は、Red Hat OpenShift 上のハイブリッドクラウド環境全体で大規模なアプリケーションモダナイゼーションに対する取り組みを促進します。このソリューションは、導入プロセス全体を通じて、ポートフォリオレベルとアプリケーションレベルの詳細情報を提供します。ユーザーインターフェイスを使用して、アプリケーションのインベントリー作成、評価、分析、および管理を行い、OpenShift Container Platform への移行をより短期間で行うことができます。

MTA 7.1 以降では、アプリケーションを Application Inventory に追加すると、MTA が言語検出タスクとテクノロジー検出タスクを自動的に作成して実行します。言語の検出では、アプリケーションで使用されているプログラミング言語が識別されます。テクノロジーの検出では、Enterprise Java Beans (EJB)、Spring などのテクノロジーが識別されます。その後、各タスクによってアプリケーションに適切なタグが割り当てられるため、アプリケーションに手動でタグを付ける時間と労力が削減されます。

MTA は、アプリケーションを評価するための基礎として広範にわたるデフォルトの質問リストを使用します。または、独自のカスタム質問リストを作成して、アプリケーションのコンテナー化の準備に必要な難易度、時間、およびその他のリソースを見積もることもできます。ステークホルダー間の議論の基礎として評価の結果を使用して、どのアプリケーションがコンテナー化に適しているか、どのアプリケーションが最初に多大な作業を必要とするか、どのアプリケーションがコンテナー化に適していないかを判断できます。

MTA は、対象のアプリケーションごとに 1 つ以上のルールセットを適用してアプリケーションを分析し、モダナイゼーションする前に、そのアプリケーションに含まれるどの行を変更するかを判断します。

MTA は、プロジェクトソースディレクトリーやアプリケーションアーカイブを含むアプリケーションアーティファクトを検査し、変更を必要とするエリアを強調表示する HTML レポートを作成します。

Migration Toolkit for Applications による移行を単純化する方法

Migration Toolkit for Applications は一般的なリソースを探し、アプリケーションを移行する際の既知の問題点を明らかにします。アプリケーションで使用されるテクノロジーの概要を示します。

MTA は、移行またはモダナイゼーションパスの評価に関する詳細なレポートを生成します。このレポートは、大規模なプロジェクトに必要な作業を見積もり、関係する作業を減らすのに役立ちます。

1.2.1. サポートされている Migration Toolkit for Applications の移行パス

Migration Toolkit for Applications (MTA) は、次の移行をサポートしています。

  • サードパーティーのエンタープライズアプリケーションサーバー (Oracle WebLogic Server など) から JBoss Enterprise Application Platform (JBoss EAP) への移行。
  • JBoss EAP の最新リリースへのアップグレード。
  • Windows 専用の .NET 4.5+ Framework からクロスプラットフォームの .NET 8.0 への移行。(開発者プレビュー)

MTA は、Red Hat OpenShift Container Platform (RHOCP) でのコンテナー化およびデプロイメントのアプリケーションの適合性を評価するための包括的なルールセットを提供します。MTA 分析を実行して、複数のターゲットプラットフォームに移行するアプリケーションの適切性を評価できます。

表1.1 サポートされている Java 移行パス: ソースプラットフォーム ⇒ ターゲットプラットフォーム
ソースプラットフォーム ⇒JBoss EAP 7、8 への移行OpenShift (クラウド対応)OpenJDK 11、17、21Jakarta EE 9Camel 3、4Spring Boot in Red Hat RuntimesQuarkusOpen Liberty

Oracle WebLogic Server

-

-

-

-

-

IBM WebSphere Application Server

-

-

-

-

JBoss EAP 4

[a]

-

-

-

-

-

JBoss EAP 5

-

-

-

-

-

JBoss EAP 6

-

-

-

-

-

JBoss EAP 7

-

-

-

-

Thorntail

[b]

-

-

-

-

-

-

-

Oracle JDK

-

-

-

-

-

-

Camel 2

-

-

-

-

-

Spring Boot

-

-

-

すべての Java アプリケーション

-

-

-

-

-

-

任意の Java EE アプリケーション

-

-

-

-

-

-

-

[a] 現在 MTA はこの移行パスのルールを提供していませんが、Red Hat コンサルティングはソースプラットフォームから JBoss EAP 7 への移行を支援します。
[b] JBoss Enterprise Application Platform expansion pack 2 (EAP XP 2) が必要
  1. .NET 移行パス: ソースプラットフォーム ⇒ ターゲットプラットフォーム (開発者プレビュー)
ソースプラットフォーム ⇒OpenShift (クラウド対応).NET 8.0 への移行

.NET Framework 4.5+ (Windows 専用)

ユースケースおよび移行パスの詳細は、開発者向け MTA Web ページを参照してください。

1.3. MTA の CLI

CLI は、Migration Toolkit for Applications のコマンドラインツールです。アプリケーションの移行とモダナイゼーションの取り組みを評価し、優先順位を付けるために使用できます。他のツールを使用せずに、分析内容を示す多数のレポートを提供します。CLI には、幅広いカスタマイズオプションがあります。CLI を使用すると、MTA の分析オプションを調整したり、外部自動ツールと統合したりできます。

第2章 CLI のインストールおよび実行

2.1. CLI のインストール

CLI は、ダウンロード可能な .zip ファイルを使用して、Linux、Windows、または macOS オペレーティングシステムにインストールできます。

重要

MTA 7.2.0 以降では、コンテナーレスモードで Java アプリケーションのアプリケーション分析を実行できます。

コンテナーレスモードはデフォルトで設定されており、すべての要件が満たされている場合は自動的に使用されます。詳細は、コンテナーレス CLI の実行 を参照してください。

ただし、Java 以外の言語でアプリケーションを分析 (例: 変換コマンド を使用) する場合は、コンテナーを使用する必要があります。

コンテナー化された CLI の前提条件

Migration Toolkit for Applications (MTA) CLI インストール (コンテナー) の前提条件は次のとおりです。

  • registry.redhat.io の Red Hat コンテナーレジストリーの認証。Red Hat は、認証を必要とする registry.redhat.io からコンテナーイメージを配布します。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。
  • Podman がインストールされている。
  • MTA CLI には 8 GB のメモリーが割り当てられている。

コンテナーレス CLI の前提条件

MTA CLI を コンテナーレス CLI モードで実行する場合の前提条件は次のとおりです。

  • Java Development Kit (JDK) がインストールされている。

    MTA がサポートしているのは以下の JDK です。

    • Oracle JDK 17 以降
    • Eclipse Temurin™ JDK 17 以降
    • OpenJDK 17 以降

      JDK に devel パッケージが提供するコンパイラーもインストールされている。これは、OpenJDK を Red Hat Enterprise Linux (RHEL) または Fedora にインストールする場合、Java ランタイム (JRE) のみがインストールされていると分析中に問題が発生するためです。Red Hat Enterprise Linux (RHEL) に Red Hat build of OpenJDK 17 をインストールする方法の詳細は、yum を使用した RHEL への Red Hat build of OpenJDK のインストール を参照してください。

  • JAVA_HOME および PATH 環境変数を設定する。
  • Maven 3.9.9 がインストールされ、bin ディレクトリーが PATH 環境変数に追加されます。パスと環境変数の設定は、使用しているオペレーティングシステムによって異なります。Maven のインストールに関する詳細は、Apache Maven インストール を参照してください。
  • macOS のインストールには以下が必要です。

    • maxproc の値が 2048 以上である。

2.1.1. CLI .zip ファイルのインストール

手順

  1. MTA Download page に移動し、OS 固有の CLI ファイルまたは src ファイルをダウンロードします。

    • MTA-7.2.3-cli-linux-amd64.zip
    • MTA-7.2.3-cli-linux-arm64.zip
    • MTA-7.2.3-cli-darwin-amd64.zip
    • MTA-7.2.3-cli-darwin-arm64.zip
    • MTA-7.2.3-cli-windows-amd64.zip
    • MTA-7.2.3-cli-windows-arm64.zip
    • MTA-7.2.3-cli-src.zip
  2. .zip ファイルを $HOME ディレクトリー内の .kantra ディレクトリーに展開します。この .zip ファイルには、mta-cli バイナリーとその他の必要なディレクトリーおよびファイルが含まれます。

    このガイドで <MTA_HOME> が出てきた場合は、MTA インストールへの実際のパスに置き換えます。

2.1.2. Podman を使用した CLI のインストール

podman pull を使用してコンテナー化された CLI をインストールできます。

注記

この手順には .zip ファイルに含まれる依存関係のプルと展開が含まれていないため、Podman を使用してコンテナーレス CLI をインストールできません。

前提条件

  • registry.redhat.io の Red Hat コンテナーレジストリーの認証。Red Hat は、認証を必要とする registry.redhat.io からコンテナーイメージを配布します。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。
  • Podman がインストールされている。
注記

Podman は、Open Containers Initiative (OCI) コンテナーとコンテナーイメージを使用してアプリケーションを簡単に検索、実行、ビルド、共有、デプロイするために設計された、オープンソースのデーモンレス Linux ネイティブツールです。Podman は、Docker Container Engine の使用経験があれば馴染みのあるコマンドラインインターフェイス (CLI) を提供します。Podman のインストールと使用の詳細は、Podman installation instructions を参照してください。

手順

  1. 次のコマンドを実行して、Podman を使用して registry.redhat.io に認証します。

    $ podman login registry.redhat.io
    Copy to Clipboard

    ユーザー名とパスワードを入力します。

    Username: <username>
    Password: <***********>
    Copy to Clipboard
  2. 次のコマンドを実行して、バイナリーの PATH をコピーし、システム全体で使用できるようにします。

    $ podman cp $(podman create registry.redhat.com/mta-toolkit/mta-mta-cli-rhel9:{ProductVersion}):/usr/local/bin/mta-cli ./
    Copy to Clipboard
    警告

    Podman を使用したインストールも可能ですが、.zip ファイルをダウンロードしてインストールすることが推奨されます。

注記

Podman のセットアップと設定には多数の変数を利用しますが、このドキュメントの範囲外です。Podman の詳細は、Podman の概要 を参照してください。

Podman のトラブルシューティングの詳細は、A list of common issues and solutions for Podman を参照してください。

2.1.3. Windows 上の Docker で使用するための CLI のインストール (開発者プレビュー)

CLI は、Windows 上の Docker で使用するためにインストールできます。これは、Windows 上で .NET Framework 4.5 以降を使用して構築されたアプリケーションを、クロスプラットフォームの .NET 8.0 に移行する場合に必要な手順です。

前提条件

  • Windows 11+ 64 ビットバージョン 21H2 以降を搭載したホスト。
  • Docker Desktop for Windows インストーラーをダウンロードした。詳細は、Install Docker Desktop on Windows を参照してください。

手順

  1. 管理者権限で PowerShell を開きます。
  2. Hyper-V がインストールされ、有効になっていることを確認します。

    PS C:\Users\<your_user_name>> Enable-WindowsOptionalFeature -Online `
       -FeatureName Microsoft-Hyper-V-All
    Copy to Clipboard
    PS C:\Users\<your_user_name>> Enable-WindowsOptionalFeature -Online `
       -FeatureName Containers
    Copy to Clipboard
    注記

    場合によっては Windows を再起動する必要があります。

  3. Windows に Docker Desktop をインストールします。

    1. Docker_Desktop_Installer.exe をダブルクリックしてインストーラーを実行します。デフォルトでは、Docker Desktop は C:\Program Files\Docker\Docker にインストールされます。
    2. 設定ページで Use WSL 2 instead of Hyper-V オプションの選択を解除して、Docker が Linux コンテナーではなく Windows コンテナーをバックエンドとして実行するようにします。
  4. PowerShell で、MTA 用のフォルダーを作成します。

    PS C:\Users\<your_user_name>> mkdir C:\Users\<your_user_name>\MTA
    Copy to Clipboard

    <your_user_name> は、ホームディレクトリーのユーザー名に置き換えます。

  5. mta-7.2.3-cli-windows.zip ファイルを MTA フォルダーに展開します。

    PS C:\Users\<your_user_name>> cd C:\Users\<your_user_name>\Downloads
    Copy to Clipboard

    <your_user_name> は、ホームディレクトリーのユーザー名に置き換えます。

    PS C:\Users\<your_user_name>> Expand-Archive `
       -Path "{ProductShortNameLower}-{ProductVersion}-cli-windows.zip" `
       -DestinationPath "C:\Users\<your_user_name>\MTA"
    Copy to Clipboard

    <your_user_name> は、ホームディレクトリーのユーザー名に置き換えます。

  6. Docker が Windows コンテナーを実行していることを確認します。

    PS C:\Users\<your_user_name>> docker version
    Copy to Clipboard
    Client:
     Version:           27.0.3
     API version:       1.46
     Go version:        go1.21.11
     Git commit:        7d4bcd8
     Built:             Sat Jun 29 00:03:32 2024
     OS/Arch:           windows/amd64 
    1
    
     Context:           desktop-windows
    Server: Docker Desktop 4.32.0 (157355)
     Engine:
      Version:          27.0.3
      API version:      1.46 (minimum version 1.24)
      Go version:       go1.21.11
      Git commit:       662f78c
      Built:            Sat Jun 29 00:02:13 2024
      OS/Arch:          windows/amd64 
    2
    
      Experimental:     false
    Copy to Clipboard
    1 2
    OS/Arch 設定が windows/amd64 であることを確認します。
  7. Docker を使用するように PODMAN_BIN 環境変数を設定します。

    PS C:\Users\<your_user_name>> $env:PODMAN_BIN="C:\Windows\system32\docker.exe"
    Copy to Clipboard
  8. アップストリームの dotnet-external-provider を使用するように DOTNET_PROVIDER_IMG 環境変数を設定します。

    PS C:\Users\<your_user_name>> $env:DOTNET_PROVIDER_IMG="registry.redhat.io/mta/mta-dotnet-external-provider-rhel9:7.1.0"
    Copy to Clipboard
  9. アップストリームイメージを使用するように RUNNER_IMG 環境変数を設定します。

    # double-check reference
    PS C:\Users\<your_user_name>> $env:RUNNER_IMG="registry.redhat.io/mta/mta-cli-rhel9:7.1.0"
    Copy to Clipboard

2.2. 非接続環境への MTA のインストール

MTA 7.2.0 以降では、コンテナーレスモードで Java アプリケーションのアプリケーション分析を実行できます。

重要

コンテナーレスモードはデフォルトで設定されており、すべての要件が満たされている場合は自動的に使用されます。詳細は、コンテナーレス CLI の実行 を参照してください。

ただし、Java 以外の言語でアプリケーションを分析 (例: 変換コマンド を使用) する場合は、コンテナーを使用する必要があります。

インターネットに接続されたデバイスで、まず MTA バイナリーをダウンロードして保存します。次に、必要な Podman イメージ、MTA CLI イメージ、プロバイダーイメージをダウンロードして保存します。

  • Migration Toolkit for Applications Red Hat Developer ページ から、必要な MTA CLI バイナリーをダウンロードします。

    • CLI for Linux x86_64
    • CLI for Linux aarch64
    • CLI for MacOS x86_64
    • CLI for MacOS aarch64
    • CLI for Windows x86_64
    • CLI for Windows aarch64
  • インターネットに接続されたデバイスでイメージをダウンロードして保存します。
  • 非接続のデバイスにバイナリーをコピーします。
  • さらに、Podman を使用して関連するコンテナーイメージを保存およびインポートする必要があります。

2.2.1. Podman イメージのダウンロード

前提条件

  • Podman がインストールされている。詳細は、Podman を参照してください。

手順

  1. Podman を使用して、registry.redhat.io への認証を行います。

    $ podman login registry.redhat.io
    Copy to Clipboard
  2. ユーザー名と、registry.redhat.io のパスワードを入力します。

    Username: <registry_service_account_username>
    Password: <registry_service_account_password>
    Copy to Clipboard

    以下の出力が表示されるはずです。

    Login Succeeded!
    Copy to Clipboard
  3. Podman を使用してレジストリーからイメージを取得します。

    $ podman pull registry.redhat.io/mta/mta-cli-rhel9:7.1.0
    Copy to Clipboard
  4. Podman を使用して、レジストリーから必要なプロバイダーイメージを取得します。

    1. Java の場合は、次を実行します。

      $ podman pull registry.redhat.io/mta/mta-java-external-provider-rhel9:7.1.0
      Copy to Clipboard
    2. .NET の場合は、次を実行します。

      $ podman pull registry.redhat.io/mta/mta-dotnet-external-provider-rhel9:7.1.0
      Copy to Clipboard
  5. イメージを保存します。

    $ podman save <image> -o <my_image.image>
    Copy to Clipboard
  6. .image ファイルとバイナリーを USB にコピーするか、非接続のデバイスのファイルシステムに直接コピーします。
  7. 非接続のデバイスで、次のコマンドを実行します。

    $ podman load --input <my_image.image>
    Copy to Clipboard

2.2.2. CLI の既知の問題

Microsoft Windows における Podman の制限

CLI は、Microsoft Windows をサポートするように構築および配布されます。

ただし、Red Hat Enterprise Linux 9 (RHEL9) または Universal Base Image 9 (UBI9) に基づくコンテナーイメージを実行する場合、コンテナーの起動時に次のエラーが返されることがあります。

Fatal glibc error: CPU does not support x86-64-v2
Copy to Clipboard

このエラーは、Red Hat Enterprise Linux 9 または Universal Base Image 9 コンテナーイメージを x86-64-v2 をサポートする CPU アーキテクチャーで実行する必要があるために発生します。

詳細は、(Running Red Hat Enterprise Linux 9 (RHEL) or Universal Base Image (UBI) 9 container images fail with "Fatal glibc error: CPU does not support x86-64-v2") を参照してください。

CLI はコンテナーランタイムを正しく実行します。ただし、異なるコンテナーランタイム設定はサポートされていません。

サポートされていませんが、Podman の代わりに Docker を使用して CLI を実行すると、この問題は解決されます。

これを実現するには、PODMAN_BIN パスを Docker へのパスに置き換えます。

たとえば、この問題が発生した場合は、次のコマンドを発行する代わりに、

PODMAN_BIN=/usr/local/bin/docker mta-cli analyze
Copy to Clipboard

PODMAN_BIN を Docker へのパスに置き換えます。

<Docker Root Dir>=/usr/local/bin/docker mta-cli analyze
Copy to Clipboard

これはサポートされていませんが、ハードウェアをアップグレードしたり、x86_64-v2 をサポートするハードウェアに移行したりするときに、CLI を調べることができます。

2.3. CLI の実行

シナリオに応じて、Migration Toolkit for Applications (MTA) CLI を使用して、次の方法で分析を実行できます。

重要

MTA 7.2.0 以降では、コンテナーレスモードでアプリケーション分析を実行できます。このオプションはデフォルトで設定されており、すべての要件が満たされている場合は自動的に使用されることに注意してください。詳細は、コンテナーレス CLI の実行 を参照してください。

2.3.1. 1 つのアプリケーションに対して MTA CLI を実行する

Migration Toolkit for Applications (MTA) CLI は、1 つのアプリケーションに対して実行できます。

手順

  1. ターミナルを開き、<MTA_HOME>/ ディレクトリーに移動します。
  2. mta-cli スクリプト (Windows の場合は mta-cli.exe) を、適切な引数を指定して実行します。

    $ ./mta-cli analyze --input <path_to_input> \
        --output <path_to_output> --source <source_name> --target <target_source> \
    Copy to Clipboard
    • --input: 評価されるアプリケーション。
    • --output: 生成されたレポートの出力ディレクトリー。
    • --source: アプリケーション移行元のテクノロジー。たとえば、weblogic です。
    • --target: アプリケーション移行先のテクノロジー。たとえば、eap8 です。
  3. レポートにアクセスします。
2.3.1.1. MTA コマンドの例
アプリケーションアーカイブでの MTA の実行

次のコマンドでは、JBoss EAP 5 から JBoss EAP 7 に移行するために、jee-example-app-1.0.0.ear という名前のサンプル EAR アーカイブを分析します。

$ <MTA_HOME>/mta-cli analyze \
    --input <path_to_jee-example-app-1.0.0.ear> \
    --output <path_to_report_output> --source eap5 --target eap7 \
Copy to Clipboard
ソースコードに対する MTA の実行

次のコマンドでは、JBoss EAP 8 に移行するために、customer-management というサンプルアプリケーションのソースコードを分析します。

$ <MTA_HOME>/mta-cli analyze --mode source-only --input <path_to_customer-management>
--output <path_to_report_output> --target eap8
Copy to Clipboard
cloud-readiness ルールの実行

次のコマンドでは、JBoss EAP 7 に移行するために、jee-example-app-1.0.0.ear という名前のサンプル EAR アーカイブを分析します。また、アーカイブがクラウド対応しているかどうかも評価します。

$ <MTA_HOME>/mta-cli analyze --input <path_to_jee-example-app-1.0.0.ear> \
    --output <path_to_report_output> \
    --target eap7
Copy to Clipboard

2.3.2. 複数のアプリケーションに対して MTA CLI を実行し、1 つのレポートを生成する (開発者プレビュー)

複数のアプリケーションに対して Migration Toolkit for Applications (MTA) CLI を実行し、1 つに結合されたレポートを生成できるようになりました。これにより、時間を節約でき、移行に向けて一連のアプリケーションを準備する方法をより適切に把握できます。

この機能は現在、開発者プレビュー機能です。

重要

1 つ以上のアプリケーションに対する CLI の実行は、開発者プレビュー機能です。開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。本番環境またはビジネスクリティカルなワークロードには、開発者プレビュー機能を使用しないでください。開発者プレビュー機能は、Red Hat 製品オファリングに含まれる可能性がある前に、今後の製品機能への早期アクセスを提供し、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにします。これらの機能にはドキュメントがない可能性があり、いつでも変更または削除される可能性があり、テストは制限されています。Red Hat は、関連する SLA なしで、開発者プレビュー機能に関するフィードバックを送信する方法を提供する場合があります。

手順

  1. ターミナルを開き、<MTA_HOME>/ ディレクトリーに移動します。
  2. mta-cli スクリプト (Windows の場合は mta-cli.exe) を、適切な引数を指定して実行します。analyze コマンドごとに 1 つの入力を指定しますが、すべての入力に対して同じ出力ディレクトリーを指定します。たとえば、アプリケーション A、B、C を分析するには、次のように指定します。

    1. 入力 A について、次のコマンドを指定します。

      $ ./mta-cli analyze --bulk --input=<path_to_input_A> --output=<path_to_output_ABC> --source <source_A> --target <target_A>
      Copy to Clipboard
      • --input: 評価されるアプリケーション。
      • --output: 生成されたレポートの出力ディレクトリー。
      • --source: アプリケーション移行元のテクノロジー。たとえば、weblogic です。
      • --target: アプリケーション移行先のテクノロジー。たとえば、eap8 です。
    2. 入力 B について、次のコマンドを指定します。

      $ ./mta-cli analyze --bulk --input=<path_to_input_B> --output=<path_to_output_ABC>  --source <source_B> --target <target_B>
      Copy to Clipboard
    3. 入力 C について、次のコマンドを指定します。

      $ ./mta-cli analyze --bulk --input=<path_to_input_C> --output=<path_to_output_ABC>  --source <source_C> --target <target_C>
      Copy to Clipboard

      MTA によって、アプリケーションを移行する前に解決する必要があるすべての問題をリストした 1 つのレポートが生成されます。

  3. レポートにアクセスします。

2.3.3. コマンドラインを使用して分析を実行する

Analyze は、analyzer-lsp ツールを使用してソースコードとバイナリー分析の実行をサポートします。analyzer-lsp はプロバイダーのルールを評価し、ルールの一致を判断します。

注記

特に依存関係がバイナリー内に組み込まれていない場合は、分析中に依存関係のリストを、コンパイルされた Java バイナリーから常に展開できるわけではありません。

アプリケーションのソースコード分析を実行するには、次のコマンドを実行します。

mta-cli analyze --input=<path_to_source_code> --output=<path_to_output_directory>
Copy to Clipboard

すべてのフラグ:

Analyze application source code

Usage:
  mta-cli analyze [flags]

Flags:

      --analyze-known-libraries           Analyze known open-source libraries.
      --context-lines (int)               Number of lines of source code to
                                          include in the output for each
                                          incident (default: `100`).
  -d, --dependency-folders (stringArray)  Directory for dependencies.
      --enable-default-rulesets           Run default rulesets with analysis
                                          (default: `true`).
  -h, --help                              Help for analyze.
      --http-proxy (string)               HTTP proxy string URL.
      --https-proxy (string)              HTTPS proxy string URL.
      --incident-selector (string)        An expression to select incidents
                                          based on custom variables.
                                          Example:
                                          !package=io.demo.config-utils
  -i, --input (string)                    Path to application source code or
                                          a binary.
      --jaeger-endpoint (string)          Jaeger endpoint to collect traces.
      --json-output                       Create analysis and dependency
                                          output as JSON.
      --list-sources                      List available migration sources.
      --list-targets                      List available migration targets.
  -l, --label-selector (string)           Run rules based on specified label
                                          selector expression.
      --maven-settings (string)           Path to the custom maven
                                          settings file to use.
      --overwrite                         Overwrite output directory.
      --skip-static-report                Do not generate the static report.
  -m, --mode (string)                     Analysis mode, must be one of
                                          `full` or `source-only`
                                          (default: `full`).
      --no-proxy (string)                 Proxy-excluded URLs
                                          (relevant only with proxy).
  -o, --output (string)                   Path to the directory for analysis
                                          output.
      --overwrite                         Overwrite output directory.
      --rules (stringArray)               Filename or directory containing
                                          rule files.
      --run-local                         Run analysis directly on
                                          local system without containers
                                          (for Java and Maven).
                                          Starting from MTA 7.2.0,
                                          containerless CLI is the default
                                          mode (`--run-local=true`).
                                          You can enable container runtime
                                          usage by setting `--run-local` to `false`.
      --skip-static-report                Do not generate the static report.
  -s, --source (string)                   Source technology to consider
                                          for analysis.
                                          To specify multiple sources,
                                          repeat the parameter:
                                          `--source <source_1>
                                          --source <source_2>` etc.
  -t, --target (string)                   Target technology to consider
                                          for analysis.
                                          To specify multiple targets,
                                          repeat the parameter:
                                          `--target <target_1>
                                          --target <target_2>` etc.


Global Flags:
      --log-level uint32                  Log level (default: 4).
      --no-cleanup                        Do not cleanup temporary resources.
Copy to Clipboard
注記

上記のフラグのリストには --bulk フラグは含まれていません。このフラグは開発者プレビュー機能の一部として提供されているためです。この機能については、CLI で複数のアプリケーションを分析するときに 1 つのレポートを提供するためのサポート で説明されています。

使用例:

  1. 分析を実行するサンプルアプリケーションを取得します。
  2. 利用可能なターゲットテクノロジーをリストします。

    mta-cli analyze --list-targets
    Copy to Clipboard
  3. 指定したターゲットテクノロジー (例: cloud-readiness) を使用して分析を実行します。

    mta-cli analyze --input=<path-to/example-applications/example-1> --output=<path-to-output-dir> --target=cloud-readiness
    Copy to Clipboard
  4. 指定した出力パスに、いくつかの分析レポートが作成されます。

    $ ls ./output/ -1
    analysis.log
    dependencies.yaml
    dependency.log
    output.yaml
    static-report
    Copy to Clipboard
    • output.yaml は、Issues レポートが含まれるファイルです。
    • static-report には、静的 HTML レポートが含まれています。
    • dependencies.yaml には、依存関係レポートが含まれています。

2.3.4. コンテナーレス CLI の実行

MTA 7.2.0 以降では、コンテナーランタイムのインストールを必要としない MTA CLI を使用して、Java アプリケーションのアプリケーション分析を実行できます。

重要

MTA 7.2.0 以降では、コンテナーレス CLI がデフォルトモードです。コンテナーランタイムの使用を有効にするには、--run-local フラグを false に設定する必要があります。

--run-local=false
Copy to Clipboard

前提条件

  • システムに OpenJDK バージョン 17 以降がインストールされている。
  • システムに Maven バージョン 3.9.9 以降がインストールされている。
  • CLI では、mvn バイナリーへのパスがシステム変数に正しく登録されていることを前提としている。したがって、次の変数に mvn が追加されていることを確認してください。

    • Windows の Path
    • Linux および macOS の PATH
  • JAVA_HOME 環境変数が設定されている。
  • JVM_MAX_MEM システム変数が設定されている。

    注記

    JVM_MAX_MEM を設定しないと、分析がハングする可能性があります。

Linux の手順

zip ファイル全体を ~/.kantra に展開した後、そのパスを $PATH 変数に追加します。

注記

mta-cli バイナリーを /usr/bin に移動するには root 権限が必要ですが、そのパスを $PATH 変数に追加するには root 権限は必要ありません。

  1. 依存関係の zip ファイルを ~/.kantra に抽出するには、次のコマンドを実行します。

    unzip $HOME/mta-cli.<os>.<arch>.zip -d $HOME/.kantra
    Copy to Clipboard
  2. システム全体のバイナリーとして追加するか、グローバル $PATH 変数に追加します。

    1. たとえば、sudo を使用して、mta-cli バイナリーをシステム全体のバイナリーとして /usr/bin に追加するには、次を実行します。

      sudo mv ~/.kantra/mta-cli /usr/bin/
      Copy to Clipboard
    2. たとえば、グローバル $PATH 変数に追加するには、次を実行します。

      export PATH=$HOME/.kantra:$PATH
      Copy to Clipboard
    注記

    CLI は、分析を実行するディレクトリーに要件を移動して実行できます。分析中、CLI は最初にこのディレクトリーで要件をチェックし、要件が見つからない場合は $HOME/.kantra ディレクトリーで検索します。

  3. オプション: すべての mta-cli analyze コマンドオプションを表示します。

    mta-cli analyze --help
    Copy to Clipboard
  4. アプリケーション分析を実行します。

    $ mta-cli analyze --overwrite --input <path_to_input>  --output <path_to_output> --target <target_source>
    Copy to Clipboard

    コマンド引数は次のものを表します。

    • --overwrite: 出力フォルダーが存在する場合は上書きします。
    • --input: 分析するアプリケーション。
    • --output: 生成されたレポートの出力ディレクトリー。
    • --target: アプリケーション移行のターゲットテクノロジー (例: eap8)。

2.3.5. コマンドラインを使用して変換を実行する

変換を使用して、以下のアクションを実行できます。

  • transform openrewrite コマンドを使用して、Java アプリケーションのソースコードを変換します。
  • transform rules コマンドを使用して、XML ルールを YAML ルールに変換します。
重要

変換を実行するには、コンテナーランタイムを設定する必要があります。詳細は、Podman を使用して CLI をインストールする を参照してください。

Transform application source code or mta XML rules

Usage:
  mta-cli transform [flags]
  mta-cli transform [command]

Available Commands:
  openrewrite Transform application source code using OpenRewrite recipes
  rules       Convert XML rules to YAML

Flags:
  -h, --help   help for transform

Global Flags:
      --log-level uint32   log level (default 4)
      --no-cleanup         do not clean up temporary resources

Use "mta-cli transform [command] --help" for more information about a command.
Copy to Clipboard
2.3.5.1. OpenRewrite

openrewrite サブコマンドを使用すると、ソースコードに対して OpenRewrite レシピを実行できます。

Transform application source code using OpenRewrite recipes

Usage:
  mta-cli transform openrewrite [flags]

Flags:
  -g, --goal string     target goal (default "dryRun")
  -h, --help            help for openrewrite
  -i, --input string    path to application source code directory
  -l, --list-targets    list all available OpenRewrite recipes
  -s, --maven-settings string   path to a custom maven settings file to use
  -t, --target string   target openrewrite recipe to use. Run --list-targets to get a list of packaged recipes.

Global Flags:
      --log-level uint32   log level (default 4)
      --no-cleanup         do not clean up temporary resources
Copy to Clipboard

アプリケーションのソースコードに対して transform openrewrite を実行するには、次のコマンドを実行します。

mta-cli transform openrewrite --input=<path/to/source/code> --target=<exactly_one_target_from_the_list>
Copy to Clipboard

注記

transform overwrite コマンドの実行に使用できるターゲットは 1 つだけです。

2.3.5.2. ルール

transform コマンドの rules サブコマンドを使用して、mta XML ルールを analyzer-lsp YAML ルールに変換できます。ルールを変更するために、rules サブコマンドは windup-shim ツールを使用します。

注記

analyzer-lsp はプロバイダーのルールを評価し、ルールの一致を判断します。

Convert XML rules to YAML

Usage:
  mta-cli transform rules [flags]

Flags:
  -h, --help                help for rules
  -i, --input stringArray   path to XML rule file(s) or directory
  -o, --output string       path to output directory

Global Flags:
      --log-level int   log level (default 5)
Copy to Clipboard

アプリケーションのソースコードで transform rules を実行するには、以下を実行します。

mta-cli transform rules --input=<path/to/xmlrules> --output=<path/to/output/dir>
Copy to Clipboard

使用例:

  1. ソースコードを変換するサンプルアプリケーションを取得します。
  2. 利用可能な OpenRewrite レシピを表示します。

    mta-cli transform openrewrite --list-targets
    Copy to Clipboard
  3. サンプルアプリケーションでレシピを実行します。

    mta-cli transform openrewrite --input=<path-to/jakartaee-duke> --target=jakarta-imports
    Copy to Clipboard

    jakartaee-duke アプリケーションのソースコードの差分を調べて、変換を確認します。

2.3.5.3. 利用可能な OpenRewrite レシピ
表2.1 利用可能な OpenRewrite レシピ
移行パス目的rewrite.configLocationactiveRecipes

Java EE から Jakarta EE

javax パッケージのインポートを同等の jakarta パッケージに置き換える

pom.xml ファイル内で宣言された javax アーティファクトを jakarta と同等のものに置き換える

<MTA_HOME>/rules/openrewrite/jakarta \ /javax/imports/rewrite.yml

org.jboss.windup.JavaxToJakarta

Java EE から Jakarta EE

ブートストラップファイルの名前を変更する

<MTA_HOME>/rules/openrewrite/jakarta \ /javax/bootstrapping/rewrite.yml

org.jboss.windup.jakarta.javax. \ BootstrappingFiles

Java EE から Jakarta EE

persistence.xml 設定を変換する

<MTA_HOME>/rules/openrewrite/jakarta \ /javax/xml/rewrite.yml

org.jboss.windup.javax-jakarta. \ PersistenceXML

Spring Boot から Quarkus

application*.properties に一致するファイル内の spring.jpa.hibernate.ddl-auto プロパティーを置き換える

<MTA_HOME>/rules/openrewrite/quarkus \ /springboot/properties/rewrite.yml

org.jboss.windup.sb-quarkus.Properties

2.4. レポートへのアクセス

Migration Toolkit for Applications を実行すると、コマンドラインの --output 引数を使用して指定する <OUTPUT_REPORT_DIRECTORY> にレポートが生成されます。

output ディレクトリーには、以下のファイルおよびサブディレクトリーが含まれます。

<OUTPUT_REPORT_DIRECTORY>/
├── index.html          // Landing page for the report
├── <EXPORT_FILE>.csv   // Optional export of data in CSV format
├── archives/           // Archives extracted from the application
├── mavenized/          // Optional Maven project structure
├── reports/            // Generated HTML reports
├── stats/              // Performance statistics
Copy to Clipboard

手順

  1. MTA の実行後に表示される出力から、レポートの index.html ファイルのパスを取得します。

    Report created: <OUTPUT_REPORT_DIRECTORY>/index.html
                  Access it at this URL: file:///<OUTPUT_REPORT_DIRECTORY>/index.html
    Copy to Clipboard
  2. ブラウザーを使用して index.html ファイルを開きます。

    生成されたレポートが表示されます。

2.5. CLI を使用した多言語アプリケーションの分析

MTA 7.1.0 以降では、複数の言語で書かれたアプリケーションでアプリケーション分析を実行できます。分析は次のいずれかの方法で実行できます。

  • 分析の実行対象とするサポートされている言語プロバイダーを選択する。
  • サポートされている既存の言語プロバイダーを、サポートされていない独自の言語プロバイダーでオーバーライドし、このサポートされていないプロバイダーの分析を実行する。

2.5.1. 選択したサポートされている言語プロバイダーに対して多言語アプリケーションを分析する

Migration Toolkit for Applications (MTA) CLI を使用して多言語アプリケーションを分析する場合、分析の実行対象とするアプリケーション言語に応じて、サポートされている言語プロバイダーを明示的に設定できます。

前提条件

  • 最新バージョンの MTA CLI が実行中である。

手順

  1. 分析対象としてサポートされている言語プロバイダーをリスト表示します。

    $ mta-cli analyze --list-providers
    Copy to Clipboard
  2. 選択した言語プロバイダーに対してアプリケーション分析を実行します。

    $ mta-cli analyze --input <_path_to_the_source_repository_> --output <_path_to_the_output_directory_> --provider <_language_provider_> --rules <_path_to_custom_rules_>
    Copy to Clipboard

    --provider オプションを設定しないと、サポートされていないプロバイダーが検出されるため、分析が失敗する可能性があることに注意してください。--provider を設定しなくても分析が完了するのは、検出されたすべてのプロバイダーがサポートされている場合だけです。

2.5.2. サポートされていない言語プロバイダーに対して多言語アプリケーションを分析する

Migration Toolkit for Applications (MTA) CLI を使用して多言語アプリケーションを分析する場合、サポートされていない言語プロバイダーに対して分析を実行できます。これを行うには、--override-provider-settings オプションを使用して、サポートされている既存の言語プロバイダーを、サポートされていない独自の言語プロバイダーでオーバーライドする必要があります。

重要

サポートされているプロバイダーをオーバーライドする前に、サポートされていない言語プロバイダーの設定ファイルを作成する必要があります。

前提条件

  • サポートされていない言語プロバイダー用の設定ファイルを作成した。

手順

  • サポートされている既存の言語プロバイダーを、サポートされていないプロバイダーでオーバーライドします。

    $ mta-cli analyze --override-provider-settings <path_to_configuration_file> --output=<path_to_the_output_directory> --rules <path_to_custom_rules>
    Copy to Clipboard

第3章 レポートの確認

ブラウザーを使用して、レポート出力ディレクトリーにある index.html ファイルを開きます。これにより、処理されたアプリケーションのリストが表示されます。各行には、ストーリーポイント、インシデントの数、アプリケーションで発生したテクノロジーの概要が含まれます。

図3.1 アプリケーションリスト

アプリケーションリスト
注記

新しいルールが MTA に追加されると、インシデントと予測されるストーリーポイントが変わります。この値は、このアプリケーションをテストする際に表示される値と一致しない場合があります。

以下の表は、このメインの MTA ランディングページからアクセスできるレポートおよびページのリストです。アプリケーションの名前 jee-example-app-1.0.0.ear をクリックして、アプリケーションレポートを表示します。

ページアクセス方法

アプリケーション

アプリケーションの名前をクリックします。

Technologies レポート

ページ上部にある Technologies リンクをクリックします。

複数のアプリケーションで共有されるアーカイブ

Archives shared by multiple applications リンクをクリックします。このリンクは、複数のアプリケーションに共有アーカイブがある場合にのみ利用できることに注意してください。

ルールプロバイダー実行の概要

ページの下部にある Rule providers execution overview リンクをクリックします。

アプリケーションが、他の分析済みアプリケーションとアーカイブを共有している場合は、共有アーカイブからのストーリーポイントの数と、このアプリケーションに固有のストーリーポイントの数が表示されることに注意してください。

図3.2 共有アーカイブ

共有アーカイブ

アプリケーション間で共有されるアーカイブに関する情報は、複数のアプリケーションで共有されるアーカイブレポートを参照してください。

3.1. アプリケーションレポート

3.1.1. ダッシュボード

Application List でアプリケーション名をクリックして、レポートランディングページからこのレポートにアクセスします。

ダッシュボードでは、アプリケーションの移行作業全体の概要が表示されます。つまり、以下のようになります。

  • カテゴリー別のインシデントおよびストーリーポイント
  • 提案された変更の作業レベル別のインシデントおよびストーリーポイント
  • パッケージ別のインシデント

図3.3 ダッシュボード

ダッシュボード

上部のナビゲーションバーには、このアプリケーションの移行に関する追加の詳細を含むさまざまなレポートがリスト表示されます。現在のアプリケーションに適用可能なレポートのみが利用できることに注意してください。

レポート説明

Issues

注意が必要なすべての問題を簡潔に説明します。

Insights

アプリケーションで使用されているテクノロジーと、コード内でのその使用状況に関する情報を提供します。ただし、Insights は移行には影響しません。

Application Details

移行時に注意する必要がある可能性のあるアプリケーション内で見つかったすべてのリソースの詳細を説明します。

Technologies

機能を基にグループ化されたすべての埋め込みライブラリーを表示します。これにより、各アプリケーションで使用されるテクノロジーを迅速に表示できます。

Dependencies

アプリケーション内にある Java パッケージの依存関係をすべて表示します。

Unparsable

MTA が想定される形式で解析できなかったすべてのファイルを示しています。たとえば、.xml または .wsdl 接尾辞が含まれるファイルは XML ファイルであると仮定します。XML パーサーが失敗すると、問題はここに報告され、また個々のファイルがリストされている場所も報告されます。

Remote Services

アプリケーション内で見つかったすべてのリモートサービス参照を表示します。

EJB

アプリケーション内の EJB のリストが含まれます。

JBPM

分析中に見つかった JBPM 関連のリソースすべてが含まれます。

JPA

アプリケーションで見つかったすべての JPA 関連リソースの詳細が含まれます。

Hibernate

アプリケーションで検出されたすべての Hibernate 関連リソースの詳細が含まれています。

Server Resources

入力アプリケーションですべてのサーバーリソース (JNDI リソースなど) を表示します。

Spring Beans

分析中に見つかった Spring Bean の一覧が含まれます。

Hard-Coded IP Addresses

アプリケーションで見つかったすべてのハードコーディングされた IP アドレスの一覧を提供します。

Ignored Files

特定のルールおよび MTA 設定に基づいてアプリケーションに含まれるファイルを一覧表示し、処理されませんでした。詳細は、--userIgnorePath オプションを参照してください。

About

現在のバージョンの MTA を説明し、詳細なヘルプリンクを提供します。

3.1.2. Issues レポート

Issues リンクをクリックして、Dashboard からこのレポートにアクセスします。

このレポートには、選択した移行パスによって発生したすべての問題に関する詳細情報が含まれます。発生した問題ごとに以下の情報が提供されます。

  • 問題を要約するタイトル。
  • インシデントの合計数、または問題の発生回数。
  • 問題の 1 つのインスタンスを解決するルールのストーリーポイント。
  • この問題を解決するための推定作業量レベル。
  • 発生したすべてのインスタンスを解決するための全ストーリーポイント。これは、インシデントごとのストーリーポイントで検出されたインシデントの数を掛けて計算されます。

図3.4 Issues レポート

Issues レポート

報告された各問題は、タイトルをクリックして追加情報を取得することで拡張できます。以下の情報が含まれています。

  • インシデントが発生したファイルの一覧と、各ファイル内のインシデントの数。ファイルが Java ソースファイルの場合は、ファイル名をクリックすると、対応するソースレポートが表示されます。
  • 問題の詳細情報。この説明は問題の概要を示し、既知の解決策を提供し、問題または解決策に関するサポートドキュメントを参照します。
  • 問題を生成したルールへの Show Rule というタイトルの直接リンク。

図3.5 問題の拡張

問題レポートのルールの拡張

デフォルトでは、問題は 4 つのカテゴリーに分類されます。これらのカテゴリーに関する情報は、カテゴリーを参照してください。

3.1.3. Insights

重要

Insights はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

以前は、作業量がゼロのルールによって生成された違反が、静的レポートに問題としてリストされていました。このような違反は、Insights としてリストされるようになりました。問題は一般的なルールによって生成されますが、文字列タグはタグ付けルールによって生成されます。文字列タグは、テクノロジーが存在することは示しますが、コードの場所は示しません。Insights の導入により、アプリケーションで使用されているテクノロジーと、コード内でのその使用状況を確認できるようになりました。

たとえば、今回の移行には影響しない、コード内の非推奨の API の使用を検索するルールなどがあります。そのような API を追跡し、将来必要になったときに修正できます。

Insights は、問題とは異なり、移行を正常に実行するために修正する必要はありません。Insights は、正の作業量値とカテゴリーが割り当てられていないルールによって生成されます。Insights には、メッセージやタグがある場合があります。

注記

Insights は、該当または存在する場合、自動的に生成されます。現在、MTA は、CLI を使用したアプリケーション分析実行時の Insights 生成をサポートしています。

Insights は、静的レポートの Insights タブで表示できます。

静的レポートの Insights タブ

例: 作業量が未定義のタグ付けルールによって生成された Insights

- customVariables: []
  description: Embedded library - Apache Wicket
  labels:
  - konveyor.io/include=always
  links: []
  ruleID: mvc-01000
  tag:
  - Apache Wicket
  - Embedded library - Apache Wicket
  when:
    builtin.file:
      pattern: .*wicket.*\.jar
Copy to Clipboard

例: 作業量がゼロのタグ付け以外のルールによって生成された Insights

- category: potential
  customVariables: []
  description: RESTful Web Services @Context annotation has been deprecated
  effort: 0
  message: Future versions of this API will no longer support `@Context` and related
    types such as `ContextResolver`.
  ruleID: jakarta-ws-rs-00001
  when:
    java.referenced:
      location: ANNOTATION
      pattern: jakarta.ws.rs.core.Context
Copy to Clipboard

3.1.4. Application Details レポート

Application Details リンクをクリックして、ダッシュボードからこのレポートにアクセスします。

レポートには、ストーリーポイント、パッケージごとの Java インシデント、およびアプリケーションで見つかったテクノロジーの発生回数が記載されます。以下は、移行プロセス中に生成されたアプリケーションメッセージの表示です。最後に、プロセス中に分析される各アーカイブにこの情報の内訳が表示されます。

図3.6 Application Details レポート

Application Details レポート

jee-example-app-1.0.0.ear/jee-example-services.jar をデプロイメントして、ストーリーポイント、パッケージごとの Java インシデント、およびこのアーカイブで見つかったテクノロジーの発生数を確認します。この概要は、移行に割り当てられたストーリーポイントの合計で始まり、アーカイブ内の各ファイルに必要な変更の詳細を示す表が続きます。レポートには以下のコラムが含まれます。

列名説明

Name

分析されるファイルの名前。

Technology

分析するファイルのタイプ (例: Decompiled Java File または Properties)。

Issues

レビューまたは変更が必要なコードのエリアに関する警告。

Story Points

ファイルの移行に必要な作業レベル。

アーカイブがアプリケーションに複数回複製されると、そのアーカイブはレポートで 1 回だけリスト表示され、[Included multiple times] でタグ付けされます。

図3.7 アプリケーションでのアーカイブの重複

アーカイブの重複

アプリケーション内で重複するアーカイブのストーリーポイントは、そのアプリケーションの合計ストーリーポイント数に 1 回だけカウントされます。

3.1.5. Technologies レポート

Technologies リンクをクリックして、ダッシュボードからこのレポートにアクセスします。

レポートには、解析されたアプリケーションで機能別にグループ化されたテクノロジーがリスト表示されます。これは、アプリケーションに含まれるテクノロジーの概要であり、各アプリケーションの目的を素早く理解できるように設計されています。

以下の図は、jee-example-app で使用されるテクノロジーを示しています。

図3.8 アプリケーションのテクノロジー

テクノロジーレポートアプリケーションビュー

3.1.6. ソースレポート

ソースレポートには、移行の問題が検出されたソースファイルのコンテキストで表示されます。

図3.9 ソースレポート

ソースレポート

3.2. Technologies レポート

Technologies リンクをクリックして、レポートランディングページからこのレポートにアクセスします。

このレポートは、解析されたアプリケーションに使用されたテクノロジーを機能別にまとめたリストを提供します。これは、テクノロジーがどのように分散されているかを示し、通常は、多数のアプリケーションを分析してアプリケーションをグループ化し、パターンを特定した後にレビューされます。また、各アプリケーションのサイズ、ライブラリー数、およびストーリーポイントの合計も表示されます。

Markup などの任意のヘッダーをクリックすると、結果が降順に並べ替えられます。同じヘッダーを再度選択すると、結果が昇順になります。現在選択されているヘッダーは、並べ替えの方向を示す方向矢印の横に太字で示されます。

図3.10 複数のアプリケーションで使用されるテクノロジー

複数のアプリケーションで使用されるテクノロジー

第4章 MTA パフォーマンスの最適化

MTA のパフォーマンスは、ハードウェア設定、アプリケーション内のファイルの数と種類、評価するアプリケーションのサイズと数、アプリケーションにソースコードとコンパイル済みコードのどちらが含まれているかなど、多くの要因に依存します。たとえば、10 MB を超えるファイルは、処理に時間がかかる場合があります。

一般に、MTA はクラスの逆コンパイルに約 40%、ルールの実行に 40% の時間を費やし、残りの時間は他のタスクの処理とレポートの生成に費やします。本セクションでは、MTA のパフォーマンスを改善するために実行できる内容を説明します。

4.1. アプリケーションのデプロイおよび実行

ハードウェアをアップグレードする前に、これらの提案を試してください。

  • 可能であれば、アーカイブではなくソースコードに対して MTA を実行します。これにより、追加の JAR およびアーカイブをコンパイルする必要がなくなります。
  • 大規模なアプリケーションを分析する際に ulimit を増やします。Red Hat Enterprise Linux でこれを行う方法は、この Red Hat ナレッジアーティクル を参照してください。
  • ラップトップまたはデスクトップマシンよりも優れたリソースを持つサーバーにアクセスできる場合は、そのサーバーで MTA を実行することを検討してください。

4.2. ハードウェアのアップグレード

上記のアプリケーションとコマンドラインの提案がパフォーマンスを改善しない場合は、ハードウェアをアップグレードが必要な場合があります。

  • ラップトップまたはデスクトップよりも優れたリソースを持つサーバーにアクセスできる場合は、そのサーバーで MTA を実行することを検討してください。
  • 逆コンパイルが必要な非常に大規模なアプリケーションには、大容量のメモリーが必要です。8 GB の RAM が推奨されます。これにより、3 ~ 4 GB の RAM が JVM で使用できるようになります。
  • シングルコアまたはデュアルコアからクアッドコアの CPU プロセッサーへのアップグレードにより、パフォーマンスが向上します。
  • ディスク領域と断片化はパフォーマンスに影響を及ぼす可能性があります。高速ディスク、特にソリッドステートドライブ (SSD) で、4 GB を超える最適化されたディスク領域があると、パフォーマンスが向上します。

付録A 参考資料

A.1. MTA コマンドライン引数

以下は、利用可能な MTA コマンドライン引数の詳細な説明です。

注記

スクリプトから実行した場合など、プロンプトを表示せずに MTA コマンドを実行するには、以下の引数を使用する必要があります。

  • --overwrite
  • --input
  • --target

例A.1 MTA CLI 引数

コマンド説明

--analyze-known-libraries

 

既知のオープンソースライブラリーを分析するフラグ。

--bulk

 

複数の分析コマンドを一括で実行するためのフラグ。これにより、静的なレポートが結合されます。

--context-lines

Integer

各インシデントの出力に追加するソースコードの行数を定義するフラグ (デフォルト: 100)。

-d--dependency-folders

String Array

依存関係のディレクトリーのフラグ。

--enable-default-rulesets

Boolean

分析でデフォルトのルールセットを実行するためのフラグ (デフォルト: true)。

-h--help

 

分析のヘルプを出力するフラグ

--http-proxy

String

Hyper Text Transfer Protocol (HTTP) プロキシー文字列 URL のフラグ

--https-proxy

String

Hypertext Transfer Protocol Secure (HTTPS) プロキシー文字列 URL のフラグ

--incident-selector

String

カスタム変数に基づきインシデントを選択するためのフラグ (例: !package=io.konveyor.demo.config-utils)

-i--input

String

アプリケーションのソースコードまたはバイナリーへのパスのフラグ。詳細は、入力の指定 を参照してください。

--jaeger-endpoint

String

トレースを収集するための jaeger エンドポイントのフラグ。

--json-output

 

分析と依存関係の出力を JSON として作成するためのフラグ。

-l--label-selector

String

指定されたラベルセレクター式に基づきルールを実行するためのフラグ。

--list-providers

 

サポートされている使用可能なプロバイダーをリスト表示するフラグ。

--list-sources

 

使用可能な移行ソースのルールをリスト表示するフラグ。

--list-targets

 

使用可能な移行ターゲットのルールをリスト表示するフラグ。

--maven-settings

string

使用するカスタム Maven 設定ファイルへのパスのフラグ

-m--mode

String

分析モードのフラグ。full (sourcedependencies の場合) または source-only のいずれか (デフォルトは full) である必要があります。

--no-proxy

String

プロキシーを通過させない URL のフラグ (プロキシーにのみ関連)

-o--output

String

分析出力のディレクトリーへのパスのフラグ。詳細は、出力ディレクトリーの指定 を参照してください。

--override-provider-settings

String

プロバイダー設定をオーバーライドするためのフラグ。分析 Pod はホストネットワーク上で実行され、プロバイダーは起動されません。

--overwrite

 

出力ディレクトリーを上書きするためのフラグ。この引数を指定せず、-output ディレクトリーが存在する場合は、内容を上書きするかどうかを選択するように求められます。

--provider

String Array

実行するプロバイダーを指定するためのフラグ。

--rules

String Array

ルールファイルを格納するファイル名またはディレクトリーを指定するためのフラグ。追加のルールがある場合は複数回使用します (例: --rules --rules …)。

--run-local

 

コンテナーを使用せずにローカルシステムで直接分析を実行するためのローカルフラグ (Java および Maven 用)

--skip-static-report

 

静的レポートを生成しないためのフラグ。

-s--source

String Array

分析で考慮するソーステクノロジーのフラグ。追加のソースがある場合は複数回使用します (例: --source --source …)。詳細は、ソーステクノロジーの設定 を参照してください。

-t--target

String Array

分析で考慮するターゲットテクノロジーのフラグ。追加のターゲットがある場合は複数回使用します (例: --target --target …)。詳細は、ターゲットテクノロジーの設定 を参照してください。

A.1.1. 入力の指定

分析する 1 つ以上のアプリケーションを含むファイルまたはディレクトリーへのパスのスペースで区切られたリスト。この引数は必須です。

使用方法

--input <INPUT_ARCHIVE_OR_DIRECTORY> [...]
Copy to Clipboard

--input 引数に指定された入力ファイルタイプがファイルであるかディクショナリーであるかに応じて、指定された追加の引数に応じて次のように評価されます。

ディレクトリー
  • --sourceMode: ディレクトリーは単一のアプリケーションとして評価されます。
ファイル
  • --sourceMode: ファイルは圧縮されたプロジェクトとして評価されます。

A.1.2. 出力ディレクトリーの指定

MTA が生成したレポート情報を出力するディレクトリーへのパスを指定します。

使用方法

--output <OUTPUT_REPORT_DIRECTORY>
Copy to Clipboard

  • 省略すると、レポートは <INPUT_ARCHIVE_OR_DIRECTORY>.report ディレクトリーに生成されます。
  • 出力ディレクトリーが存在する場合は次の質問が表示され、デフォルトの回答は N になります。

    Overwrite all contents of "/home/username/<OUTPUT_REPORT_DIRECTORY>" (anything already in the directory will be deleted)? [y,N]
    Copy to Clipboard

ただし、--overwrite 引数を指定すると、MTA はディレクトリーの削除と再作成を続行します。詳細は、この引数の説明を参照してください。

A.1.3. ソーステクノロジーの設定

移行元の 1 つ以上のソーステクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りのリスト。この引数を --target 引数と組み合わせて使用することで、使用するルールセットを決定できます。--listSourceTechnologies 引数を使用して、利用可能なソースをリスト表示します。

使用方法

--source <SOURCE_1> <SOURCE_2>
Copy to Clipboard

--source 引数は、Maven バージョン範囲の構文 に続くバージョンサポートを提供するようになりました。これは、指定されたバージョンに一致するルールセットのみを実行するように MTA に指示します (例: --source eap:5)。

警告

JBoss EAP に移行する場合は、バージョン (例: eap:6) を指定してください。eap のみを指定すると、移行パスに関連しないものを含め、すべてのバージョンの JBoss EAP にルールセットが実行されます。

適切な JBoss EAP バージョンは、Migration Toolkit for Applications の概要サポートされる移行パス を参照してください。

A.1.4. ターゲットテクノロジーの設定

移行先の 1 つ以上のターゲットテクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りのリスト。この引数を --source 引数と組み合わせて使用することで、使用するルールセットを決定できます。このオプションを指定しないと、ターゲットを選択するように求められます。--listTargetTechnologies 引数を使用して、利用可能なターゲットをリスト表示します。

使用方法

--target <TARGET_1> <TARGET_2>
Copy to Clipboard

--target 引数は、Maven バージョン範囲の構文 に続くバージョンサポートを提供するようになりました。これは、指定されたバージョンに一致するルールセットのみを実行するように MTA に指示します (例: --target eap:7)。

A.2. サポート対象のテクノロジータグ

MTA 7.2.3 では、以下のテクノロジープレビュータグがサポートされています。

  • 0MQ Client
  • 3scale
  • Acegi Security
  • AcrIS Security
  • ActiveMQ library
  • Airframe
  • Airlift Log Manager
  • AKKA JTA
  • Akka Testkit
  • Amazon SQS Client
  • AMQP Client
  • Anakia
  • AngularFaces
  • ANTLR StringTemplate
  • AOP Alliance
  • Apache Accumulo Client
  • Apache Aries
  • Apache Commons JCS
  • Apache Commons Validator
  • Apache Flume
  • Apache Geronimo
  • Apache Hadoop
  • Apache HBase Client
  • Apache Ignite
  • Apache Karaf
  • Apache Mahout
  • Apache Meecrowave JTA
  • Apache Sirona JTA
  • Apache Synapse
  • Apache Tapestry
  • Apiman
  • Applet
  • Arquillian
  • AspectJ
  • Atomikos JTA
  • Avalon Logkit
  • Axion Driver
  • Axis
  • Axis2
  • BabbageFaces
  • Bean Validation
  • BeanInject
  • Blaze
  • Blitz4j
  • BootsFaces
  • Bouncy Castle
  • ButterFaces
  • Cache API
  • Cactus
  • Camel
  • Camel Messaging Client
  • Camunda
  • Cassandra Client
  • CDI
  • Cfg Engine
  • Chunk Templates
  • Cloudera
  • Coherence
  • Common Annotations
  • Composite Logging
  • Composite Logging JCL
  • Concordion
  • CSS
  • Cucumber
  • Dagger
  • DbUnit
  • Demoiselle JTA
  • Derby Driver
  • Drools
  • DVSL
  • Dynacache
  • EAR Deployment
  • Easy Rules
  • EasyMock
  • Eclipse RCP
  • EclipseLink
  • Ehcache
  • EJB
  • EJB XML
  • Elasticsearch
  • Entity Bean
  • EtlUnit
  • Eureka
  • Everit JTA
  • Evo JTA
  • Feign
  • File system Logging
  • FormLayoutMaker
  • FreeMarker
  • Geronimo JTA
  • GFC Logging
  • GIN
  • GlassFish JTA
  • Google Guice
  • Grails
  • Grapht DI
  • Guava Testing
  • GWT
  • H2 Driver
  • Hamcrest
  • Handlebars
  • HavaRunner
  • Hazelcast
  • Hdiv
  • Hibernate
  • Hibernate Cfg
  • Hibernate Mapping
  • Hibernate OGM
  • HighFaces
  • HornetQ Client
  • HSQLDB Driver
  • HTTP Client
  • HttpUnit
  • ICEfaces
  • Ickenham
  • Ignite JTA
  • Ikasan
  • iLog
  • Infinispan
  • Injekt for Kotlin
  • Iroh
  • Istio
  • Jamon
  • Jasypt
  • Java EE Batch
  • Java EE Batch API
  • Java EE JACC
  • Java EE JAXB
  • Java EE JAXR
  • Java EE JSON-P
  • Java Transaction API
  • JavaFX
  • JavaScript
  • Javax Inject
  • JAX-RS
  • JAX-WS
  • JayWire
  • JBehave
  • JBoss Cache
  • JBoss EJB XML
  • JBoss logging
  • JBoss Transactions
  • JBoss Web XML
  • JBossMQ Client
  • JBPM
  • JCA
  • Jcabi Log
  • JCache
  • JCunit
  • JDBC
  • JDBC datasources
  • JDBC XA datasources
  • Jersey
  • Jetbrick Template
  • Jetty
  • JFreeChart
  • JFunk
  • JGoodies
  • JMock
  • JMockit
  • JMS Connection Factory
  • JMS Queue
  • JMS Topic
  • JMustache
  • JNA
  • JNI
  • JNLP
  • JPA entities
  • JPA Matchers
  • JPA named queries
  • JPA XML
  • JSecurity
  • JSF
  • JSF Page
  • JSilver
  • JSON-B
  • JSP Page
  • JSTL
  • JTA
  • Jukito
  • JUnit
  • Ka DI
  • Keyczar
  • Kibana
  • KLogger
  • Kodein
  • Kotlin Logging
  • KouInject
  • KumuluzEE JTA
  • LevelDB Client
  • Liferay
  • LiferayFaces
  • Lift JTA
  • Log.io
  • Log4J
  • Log4s
  • Logback
  • Logging Utils
  • Logstash
  • Lumberjack
  • Macros
  • Magicgrouplayout
  • Mail
  • Management EJB
  • MapR
  • MckoiSQLDB Driver
  • Memcached
  • Message (MDB)
  • Micro DI
  • Micrometer
  • Microsoft SQL Driver
  • MiGLayout
  • MinLog
  • Mixer
  • Mockito
  • MongoDB Client
  • Monolog
  • Morphia
  • MRules
  • Mule
  • Mule Functional Test Framework
  • MultithreadedTC
  • Mycontainer JTA
  • MyFaces
  • MySQL Driver
  • Narayana Arjuna
  • Needle
  • Neo4j
  • NLOG4J
  • Nuxeo JTA/JCA
  • OACC
  • OAUTH
  • OCPsoft Logging Utils
  • OmniFaces
  • OpenFaces
  • OpenPojo
  • OpenSAML
  • OpenWS
  • OPS4J Pax Logging Service
  • Oracle ADF
  • Oracle DB Driver
  • Oracle Forms
  • Orion EJB XML
  • Orion Web XML
  • Oscache
  • OTR4J
  • OW2 JTA
  • OW2 Log Util
  • OWASP CSRF Guard
  • OWASP ESAPI
  • Peaberry
  • Pega
  • Persistence units
  • Petals EIP
  • PicketBox
  • PicketLink
  • PicoContainer
  • Play
  • Play Test
  • Plexus Container
  • Polyforms DI
  • Portlet
  • PostgreSQL Driver
  • PowerMock
  • PrimeFaces
  • Properties
  • Qpid Client
  • RabbitMQ Client
  • RandomizedTesting Runner
  • Resource Adapter
  • REST Assured
  • Restito
  • RichFaces
  • RMI
  • RocketMQ Client
  • Rythm Template Engine
  • SAML
  • Santuario
  • Scalate
  • Scaldi
  • Scribe
  • Seam
  • Security Realm
  • ServiceMix
  • Servlet
  • ShiftOne
  • Shiro
  • Silk DI
  • SLF4J
  • Snippetory Template Engine
  • SNMP4J
  • Socket handler logging
  • Spark
  • Specsy
  • Spock
  • Spring
  • Spring Batch
  • Spring Boot
  • Spring Boot Actuator
  • Spring Boot Cache
  • Spring Boot Flo
  • Spring Cloud Config
  • Spring Cloud Function
  • Spring Data
  • Spring Data JPA
  • spring DI
  • Spring Integration
  • Spring JMX
  • Spring Messaging Client
  • Spring MVC
  • Spring Properties
  • Spring Scheduled
  • Spring Security
  • Spring Shell
  • Spring Test
  • Spring Transactions
  • Spring Web
  • SQLite Driver
  • SSL
  • Standard Widget Toolkit (SWT)
  • Stateful (SFSB)
  • Stateless (SLSB)
  • Sticky Configured
  • Stripes
  • Struts
  • SubCut
  • Swagger
  • SwarmCache
  • Swing
  • SwitchYard
  • Syringe
  • Talend ESB
  • Teiid
  • TensorFlow
  • Test Interface
  • TestNG
  • Thymeleaf
  • TieFaces
  • tinylog
  • Tomcat
  • Tornado Inject
  • Trimou
  • Trunk JGuard
  • Twirl
  • Twitter Util Logging
  • UberFire
  • Unirest
  • Unitils
  • Vaadin
  • Velocity
  • Vlad
  • Water Template Engine
  • Web Services Metadata
  • Web Session
  • Web XML File
  • WebLogic Web XML
  • Webmacro
  • WebSocket
  • WebSphere EJB
  • WebSphere EJB Ext
  • WebSphere Web XML
  • WebSphere WS Binding
  • WebSphere WS Extension
  • Weka
  • Weld
  • WF Core JTA
  • Wicket
  • Winter
  • WSDL
  • WSO2
  • WSS4J
  • XACML
  • XFire
  • XMLUnit
  • Zbus Client
  • Zipkin

A.3. ルールのストーリーポイントについて

A.3.1. ストーリーポイントとは

ストーリーポイント は、アジャイルソフトウェア開発で一般的に使用される抽象メトリックで、機能や変更を実装するのに必要な 作業量 を予測します。

Migration Toolkit for Applications はストーリーポイントを使用して、特定のアプリケーションコンストラクトとアプリケーション全体を移行するために必要な作業のレベルを表現します。必ずしも工数に変換される訳ではありませんが、この値はタスク全体で一貫性を持たせる必要があります。

A.3.2. ルールにおけるストーリーポイントの見積方法

ルールのストーリーポイントの作業レベルを見積もることは複雑です。以下は、ルールに必要な作業レベルを見積もる際に MTA が使用する一般的なガイドラインです。

作業レベルStory Points説明

Information

0

移行の優先度が非常に低いか、優先度のない情報警告。

Trivial

1

移行は簡単な変更、または API の変更がないか最小限の変更を伴う単純なライブラリーの交換です。

Complex

3

移行タスクに必要な変更は複雑ですが、解決策が文書化されています。

Redesign

5

移行タスクでは、API が大幅に変更され、再設計または完全なライブラリーの変更が必要になります。

Rearchitecture

7

移行には、コンポーネントまたはサブシステムの完全な再アーカイブが必要です。

Unknown

13

移行ソリューションは不明なため、完全な再書き込みが必要になる場合があります。

A.3.3. タスクカテゴリー

作業量レベルに加えて、移行タスクを分類してタスクの重大度を示すことができます。次のカテゴリーは、移行作業の優先順位を行えるように、問題をグループ化するために使用されます。

Mandatory
移行を成功させるには、タスクを完了する必要があります。変更が行われないと、生成されるアプリケーションはビルドまたは実行に成功しません。たとえば、ターゲットプラットフォームでサポートされないプロプライエタリー API の置き換え例が含まれます。
Optional
移行タスクが完了しない場合、アプリケーションは動作しますが、結果が最適になるとは限りません。移行時に変更が行われない場合は、移行の完了後すぐにスケジュールに配置することが推奨されます。
Potential
移行プロセス中にタスクを調べる必要があります。しかし、移行を成功させるためにタスクが必須かどうかを判断するのに十分な詳細情報がありません。これの例は、直接互換性のあるタイプがないサードパーティーのプロプライエタリータイプの移行です。
Information
タスクは、特定のファイルの存在を通知するために含まれています。これらは、モダナイゼーション作業の一部として検証または変更する必要がある場合がありますが、通常は変更は必要ありません。

タスクの分類に関する詳細は、カスタムルールカテゴリーの使用 を参照してください。

A.4. 関連情報

A.4.1. プロジェクトへの貢献

Migration Toolkit for Applications がほとんどのアプリケーション設定とサーバー設定 (お客様のものを含む) に対応できるように、次の項目にご協力をお願いします。

  • jboss-migration-feedback@redhat.com にメールを送信し、MTA 移行ルールが対象とする必要がある内容を知らせる。
  • 移行ルールをテストするためのアプリケーションの例を指定する。
  • 移行が困難なアプリケーションコンポーネントおよび問題の領域を特定する。

    • 問題がある移行領域について簡単な説明を記入する。
    • 移行領域の問題を解決する方法の簡単な説明を記入する。
  • アプリケーションで Migration Toolkit for Applications を試行する。問題が発生した場合は必ず報告してください。
  • Migration Toolkit for Applications ルールリポジトリーに貢献する。

    • Migration Toolkit for Applications ルールを記述して、移行プロセスを識別または自動化する。
    • 新規ルールのテストを作成します。

    詳細は、ルール開発ガイド を参照してください。

  • プロジェクトのソースコードに貢献する。

    • コアルールを作成する。
    • MTA のパフォーマンスまたは効率が向上する。

どのレベルの参加でも大歓迎です。

A.4.3. 問題の報告

MTA は Jira を問題追跡システムとして使用します。MTA の実行で問題が発生した場合は、Jira issue を作成してください。


改訂日時: 2025-06-24

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat