Migration Toolkit for Application Binariesを使ってみた

 IBMから出ているMigration Toolkit for Application Binariesは無料のツールでJavaアプリケーションのバージョン間の移行やLibertyへのマイグレーションを診断してくれるツールです。診断を行うためにはJavaアプリケーションのwar/earファイルが必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59741/83b50e9a-40a6-e785-74d9-ba6c8b3172ed.png)

https://developer.ibm.com/wasdev/downloads/#asset/tools-Migration_Toolkit_for_Application_Binaries

手順は
- JDKのインストール
- このMigration Toolkitのダウンロード、インストール
- war/earファイルの準備
- 診断の実行
* 私はWindows 10の環境でやってみました。JavaがあればMac, Linuxでも同じようにできるはずです。（コマンドはPowerShellで実行）

## マイグレーションオプション
このツールでサポートしているマイグレーション元、ソースのアプリケーションサーバーは
#### JBoss, Liberty, Liberty Core, Apache Tomcat, WebSphere, WebLogic
*  デフォルトはWebSphere Application Server traditional V8.5.5

マイグレーション先、ターゲットのアプリケーションサーバーは
#### Liberty, Liberty Core, WebSphere Application Server traditional V8.5.5, WebSphere Application Server traditional V9.0
* デファルトはWebSphere Application Server Liberty

またJavaのバージョンも指定できるようで。元、ソースのJavaのバージョンは
####　Java (11,14), IBM Java (5,6,7,8), Oracle Java (5,6,7,8)
ターゲットのJavaのバージョンは
####　Java (11,14), IBM Java (7,8), Oracle Java (7,8)

IBM Cloudへのマイグレーションの際の診断もできるようで以下のオプションがあります。
``
    --targetCloud=[containers|cfIBMCloud|thirdParty|vmIBMCloud]
        指定したターゲット・クラウド・ランタイム環境へのマイグレーションに関する規則を
        組み込みます。 デフォルトはありません。 ソースまたはターゲットのアプリケーション・サーバーを
        指定せずにこのオプションを指定した場合、クラウド規則のみが組み込まれます。
        以下のオプションが有効です。
        * containers - コンテナー (IBM Cloud Pak for Applications、Kubernetes)
        * cfIBMCloud - IBM Cloud ランタイム (CF PaaS)
        * thirdParty - サード・パーティー PaaS (CF)
        * vmIBMCloud - 仮想マシン (IBM Cloud)
```

## JDKのインストール
　こちらからJDKをダウンロード、インストールしました。
 https://www.oracle.com/java/technologies/javase-downloads.html
以下のコマンドが動けばいいです。

```
> java --version
```
出力例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59741/8c1fdaee-6810-dbe0-84be-aa5e27286cb9.png)


## Migration Toolkitのダウンロード、インストール
 こちらのページからダウンロードをクリックしてダウンロードしてください。
https://developer.ibm.com/wasdev/downloads/#asset/tools-Migration_Toolkit_for_Application_Binaries
　binaryAppScannerInstaller.jarというファイルがダウンロードされます。PCの任意の場所に保存しました。
次に保存したフォルダーに移動して次のコマンドでインストール

```
> java -jar binaryAppScannerInstaller.jar
```
インストール後にwamtというフォルダーが作成されます。そこで以下のようにコマンドをいれて動作確認してください。

```
> cd wamt
java -jar binaryAppScanner.jar --help --all
```
以下のように使用方法が出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59741/a352c9e3-4db9-ec08-b939-ebae563b18b6.png)


## war/earファイルの準備
 ここらへんを参考にwarファイルを作成しました。
https://techacademy.jp/magazine/23660#:~:text=WAR%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%BD%9C%E6%88%90%E6%96%B9%E6%B3%95,-WAR%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AF&text=%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7,%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E4%BD%9C%E6%88%90%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82

## 診断の実行
 準備したwarファイルに対して以下のコマンドを入れればしばらくすると診断が始まります。そのあとブラウザーが起動して診断結果が表示されます。ここではHelloServelet.warを診断

```
> java -jar binaryAppScanner.jar HelloServlet.war
```
以下のように表示されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59741/b0df8740-eebd-2933-d176-098fdb221a9e.png)

上記アプリは名前の通りHelloを出すだけのものなので問題がないのは当然ですが、ぜひいろいろなアプリで試してみてください。