IBMは5月3日(現地時間)、IBM iの新バージョン「IBM i 7.5」やIBM i 7.4 TR6など多数のIBM i関連製品を発表した。その中で、「IBM i Merlin(マーリン)」と呼ぶ新しいIBM i用統合開発環境が発表されている。DevOpsやCI/CDのためのツールをセットしたWebブラウザで利用可能な統合開発環境で、レガシアプリケーションのモダナイゼーションや新しいIBM iアプリケーションの開発に大きな影響を与えそうである。
IBM i Merlin(以下、Merlin)の開発の背景について、IBM iチーフアーキテクトのスティーブ・ウィル(Steve Will)氏は、「IBM iユーザーの間ではアプリケーションのモダナイゼーションが大きな課題になっている。その状況を打開するために、一部のユーザーは最新のツールや手法を用いてDevOpsを試みているが、従来のプロセスへの適用がかなり複雑になるため、多くの場合、行き詰っている。Merlinはそのようなモダナイゼーションを支援し、次世代のIBM iアプリケーション開発に必要な属性をすべて提供する統合開発環境だ」と説明する。
ウィル氏は今後のIBM iアプリケーション開発には、以下の4つの「属性」が不可欠で、Merlinはそれらすべてに対応するという。
・DevOps、CI/CD、アジャイル開発
・プロセスおよびデータのカプセル化
・さまざまな技術の融合
・新しい技術の容易な取り込み
またMerlinを共同開発したARCAD Softwareのフィリップ・マーニュ(Philippe Magne)CEOは、「IBM iの世界では30年間大きな変化がなく、システムはレガシー化している。それゆえに今こそ標準ベースのDevOpsを導入すべきであり、ビジネスニーズへの対応という面からも必要になっている。レガシーなIBM iアプリケーションをDevOps対応のアプリケーションへと切り替える取り組みは、旧世代の開発者から新世代の開発者へのスキルトランスファーの側面と、レガシーなシステムをデジタル世界のスピードで変化させていくための基盤整備という側面の2つの意味をもつ。Merlinは、そうしたDevOpsへの移行とクラウドへの移行の2つを実現するソリューションだ」と述べている。
Merlinは、OpenShift上で稼働する、DevOpsやCI/CD用ツールをセットした統合開発環境(上図)。ユーザーはWebブラウザで統合開発環境(IDE)にアクセスし、レガシーなIBM iアプリケーションのモダナイゼーションやRPGなどによるプログラム開発が行える。
Merlinでは、IBM iのネイティブ機能をサービス化してRESTful APIとして外部公開することも容易という。サービス化の対象はRPG・COBOL・SQL・CLの各プログラムとDb2 for i上のデータで、IBM iと外部との接続を一元管理する機能も備える。
またMerlinでは、DevOpsやCI/CDの実装を容易にするための各種ツールの利用ガイドも提供する。これによりDevOpsやCI/CD対応アプリケーションの導入が促進される、とIBMではアピールしている。
Merlinがセットしている主なオープンソースツールは、統合開発環境のベースとして「Visual Studio Code」のEclipseディストリビューションである「Che-Theia」、ソースコード管理用の「Git」、DevOps・CI/CD用の自動化ツール「Jenkins」など。これらのツールは、IDE上のGUI環境で操作を行えるため、「個々に利用する際の複雑さは完璧に隠蔽されている」と、ウィル氏は話す。
またIBM iのレガシーコードをMerlin上で展開しモダナイズするための機能については、Merlinの共同開発企業であるARCAD Softwareのツール/技術が採用されている。同社のツール(ARCAD)は、IBM iプログラムの分析・可視化・フリーフォーム化で数多くの実績がある。ARCAD SoftwareではMerlinの開発にあたってARCADをOpenShift対応にし、Jenkins用のプラグインなどを新規開発してMerlin上のDevOps・CI/CDツールとのシームレスな連携を実現したという。
Merlin上でRPGプログラムをモダナイゼーションするには、次のような手順になる。
・Gitリポジトリのセットアップ
・レガシープログラムのあるライブラリからコードをプルして、Gitへ入力
・インテリジェントなメタデータの生成
・完全なフリーフォームRPGへの変換
以上はソース管理をレガシーベースからGitベースへと変換する作業である。
次に、フリーフォーム化したプログラムをARCADベースでビルドし、さらにアプリケーション全体のビルドへと進み、パーツ間をリンクして、ブランチ開発へと進む手順になる。この一連の手続きは、IBM iアプリケーションの複雑さを簡素化するためのもので、標準化・自動化されているツールおよびプロセスにセットし直することによって可能になるという。
そして新たに開発されたプログラムは、ARCADによってアプリケーションの構造やコードのフロー、データの使用状況などが可視化され、次の改修やモダナイゼーションへの準備が整うという流れになる(下図)。
Merlinの稼働環境は、オンプレミス、Power Virtual Server、IBM Cloud、AWS、Azureなどで、OpenShiftが動作する環境であればどこへでも配置できる。対応OSは、IBM i 7.4と7.5。リリースは5月20日の予定。
Merlinは今回発表のバージョンで、DevOps、IDE、IBM i Connectionsの3つの機能を搭載した。これは「初期の目標をDevOps機能の実装にフォーカスして開発を進めたため」と、ウィル氏は説明する。今後、下図の灰色文字の機能を予定しており、デバッグ機能はまもなくリリースされる予定。アプリケーション・カタログやセキュリティ/コンプライアンス機能などは計画中という。
なお、Merlinの正式な製品名は「Modernization Engine for Lifecycle Integration」(ライフサイクル統合のためのモダナイゼーション・エンジン)だが、ウィル氏は“魔法使いMerlin”の名前にあやかって、「Merlin」と呼んでほしいと語っている。
元祖“Merlin”は英国の12世紀の偽史書(ブリタニア列王史)に登場する魔法使いで、テレビドラマになるなど、欧米ではよく知られた名前という。
[i Magazine・IS magazine]