Migration Toolkit for Applicationsを使用した、既存アプリケーションのQuarkusへの移行
Javaの進化
Javaという言語には、いつも驚かされます。その構想から、「write once run anywhere」を前提とした最初のJava仮想マシン、Tomcat、あるいはEnterprise Editionの規格(J2EEでもJava EEでも)に至るまで、常に進化し続ける言語です。コンテナ化が進み、マイクロサービスを効果的に管理できるようになり、「リアクティブ」な方法でロードできるコンポーネントを実行し、起動速度と効率性が求められるようになったことで、QuarkusはクラウドネイティブJavaプログラマーの選択肢として登場しました。
ブラウンフィールドでの活用
しかし、何年もかけて何行ものコードを書いた後、これらのJavaワークロードをこの一連の新しいパラダイムに移行するにはどうすればよいのでしょうか?Red HatのModernization and Migration Solutionsチームは、 Migration Toolkit forApplications (MTA)というツールを提供することで、このステップに必要な労力を簡略化し、削減することを支援します。実は、Javaと同様にMTAも新しいツールではなく、時間をかけて進化してきたものなのです。
その始まりは、開発者がコードを更新して JBoss EAPの新バージョンで実行できるようにすることを簡単にするためでした。そのため、このツールは2012年に「JBoss Cake」と呼ばれることから始まりました。その後、JavaコードをモダナイズしてWebLogicやWebSphereからJBoss EAPや JBoss Web Server(TomcatのRed Hatがサポートするビルド)に移行する際に使用できるように進化を続け、Red Hat Application Migration Toolkitとなりました。このツールは、開発者やコンサルタントによって改良され続けています。開発者やコンサルタントは、本番コードの第一線で働いた経験を生かして、より良いルールを書き、対象となるケースを増やしていきました。
MTA 5.1.2以降
最新の進化の中で、このツールは現在の名前であるMigration Toolkit for Applications(MTA)と呼ばれるようになりました。5.0.0のリリースでは、Spring BootフレームワークからQuarkusへのアプリケーションの移行を支援する最初のルールの提供が開始されました。これは、最新のJavaパターンを使用し、Kubernetesにデプロイする開発者チームが興味を持っているというフィードバックを受けたことなどによります。これらのチームは、Spring Bootを使用していましたが、スピード、必要なリソース、生産性を向上させる方法として、すぐにQuarkusに興味を持つようになりました。MTAはバージョン5.1.1で120ルールの壁を突破し、このトランスフォーメーションの道を容易にしました。そして、今後MTAのリリース5.1.3(2021年3月中旬までに予定)では、Quarkus 1.11向けに書かれたコードをアップグレードするためのルールが含まれており、1.12への移行を効率的に行うことができます。簡単ですね!
関連リソース
もっと知りたいですか?ここでは、MTA関連のリソースをご紹介します。
-
MTAのWebページ(ダウンロード、デモビデオあり)
-
MTAによるSpring BootからQuarkusへの移行(developers.redhat.com 内)
-
Spring Boot「Pet-Clinic」(REST版)のQuarkusへの移行 (konveyor.io のミートアップレコーディング)