Migration Toolkit for Applicationsを使って組織のシステムのクラウドへの移行を促進させる 1.概要編

OpenShift AppDev SSAの瀬戸です。

Migration Toolkit for Applications(以下MTA)という製品をご存知でしょうか?Red Hatが出している静的解析ツールで、古いバージョンのJBoss EAPやOpenJDKなどのミドルウェアで動いているアプリケーションを最新のミドルウェア上で動作させるために必要な修正を洗い出してくれます。

実は、それだけではなく、組織のアプリケーションのモダナイゼーションのサポートもしてくれます。この記事では3回にわけて、どういった機能があるのかから実際の使い方をご紹介したいと思います。

ちなみに、MTAは無償でお使いいただくことが可能です。

Red Hatの6R

Red Hatはモダナイゼーションの移行戦略として6Rを提唱しています。次のようなものです。

Red Hatの6R

モダナイゼーションの移行戦略といったときに単一のシステムの移行を想像されるでしょうか?

このツールは単一のシステムを移行させるのに必要な情報を提供するだけではなく、企業内の複数のシステムを移行する際にどのシステムから移行するべきかを検討する判断材料を提供してくれます。

現在の企業システムは複雑に絡み合っています。新しく作るシステムをクラウド上にデプロイすることは簡単ですが、古くから動作しているシステムをクラウドに移行しようとする場合は、システムの状態や依存関係を把握したうえで、優先順位をつけて順序良くクラウドに移行する必要が出てきます。

まれにすべての基盤システムを一度に更改し、数年かけて基盤入れ替えを行ってしまうような企業もありますが、多くの企業にとっては現実的ではありません。 また、移行を検討する中では、実は移行をする必要がないシステム(数年後には不要になるシステム等)が見つかることもあります。少なくとも、何も考えずに全部のシステムをクラウドに移行するべきというわけではありません。移行するための費用の無駄となります。

MTAの機能

MTAの全機能を使うためにはOpenShift上で動作させる必要があります。 。 OpenShift上で動作させるMTAには次の機能が含まれます。

  • 移行対象の管理 - 組織がクラウドに移行しようとしているアプリケーションを一覧化し、どのアプリケーションの移行が必要なのかを管理できます。
  • 移行対象の優先順位付け - アプリケーションの利用状況や開発、運用の情報をまとめ、状況に基づいた意思決定を行えるようにし、移行と最新化の優先順位をつけます。
  • アプリケーションの静的解析 - 複数のオープンソースツールに込められた知見を活用し、事前にどのような修正が必要なのか一覧を作成し、移行方法を解析します。

このうちアプリケーションの静的解析に関しては以前から持っている機能となり、以前もJBoss EAPの最新化の記事でご紹介をさせていただいたことがあります。

移行対象の管理

企業は複数のアプリケーションを保持しています。単一のアプリケーションしか持っていない企業はごく少数でしょう。どのようなアプリケーションがあるのかを一覧として管理することができます。それぞれのアプリケーションには依存関係があるはずです、依存関係や、そのアプリケーションが持っている特性をメタデータとして管理することができます。どのビジネスサービスからどのアプリケーションを使用しているのかをリンクすることもできます。

移行対象の管理

移行対象の優先順位付け

アプリケーションの状態をアンケートとして入力することにより、アプリケーションを取り巻く環境がクラウド化に適しているのかを評価します。 アプリケーションの使用状況や、クラウド上でベストプラクティスとされている手法が運用上すでに行われているのかを評価し、クラウドへの移行優先度、移行難易度を推定します。

その中で、移行が簡単だと思われるものや、ビジネス価値が高いものについては移行の優先順位が高くなりますし、どれだけビジネス価値が高かろうとも、移行難易度が極限まで高ければ移行しないという判断を行うことができます。

移行対象の優先順位付け

このアンケートは組み込みのものを使う事もできますし、お客様でカスタマイズすることも可能です。お客様固有の事情がある場合、例えば、レガシーな社内フレームワークを使っており、リプレイスが必要となっている場合、などはアンケートに項目を追加する事で社内システムの評価項目に加えることもできます。その他、どのような質問が必要なのかについては弊社コンサルタントがお手伝いすることもできますので、必要に応じてお問い合わせください。

アプリケーションの静的解析

第三者目線によるアプリケーションの解析を行い、アプリケーションにどういった修正が必要なのかを洗い出してくれます。すべてを洗い出してくれるわけではありませんが、主だった修正を簡単に潰しこむことが出来るようになります。アンケートはどうしても担当者の思い込みが入り込みますが、この機能の場合は思い込みが入り込むことはありません。移行が簡単だと思ってたけれども実は大変だったといったことを防ぐことができます。

また、クラウドに移行したいけれども、移行順序の評価までは必要がないが、具体的にどういう修正が必要なのかがわからないという方はこちらを動作させるだけでも助けになります。 ただし、現時点ではJava言語のみサポートされております。他言語についても逐次対応予定なので、少々お待ちください。*1

静的解析

この機能のみコマンドライン版で動作させることができます。実際にクラウドへの移行のためのアプリケーションの修正を始めた後はOpenShift上から動作させるのに比べてコマンドラインから動作させる方が簡単なので、そちらから使用する事が推奨です。

まとめ

ここまででMTAが持っている機能を一通り紹介しました。 次回は、MTAをインストールして実際に使える状態にします。

次回の記事はこちらから。

rheb.hatenablog.com

*1:Go言語がtech preview中、.NET、TypeScript、Pythonのサポートがマイナーアップデートで提供予定

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。