IBM、Merlin 2.0を頼りにIBM i におけるモダンな開発を活性化
先週、IBMは、春のテクノロジー リフレッシュで発表された新機能のほとんどの一般向け提供を開始しました。その中には、IBM i向けのWebベースのアプリケーション開発およびモダナイゼーション環境、Merlin 2.0も含まれています。IBMは、新規追加および改善されたオファリングによって促される形で、真にモダンなコーディング手法へと向かうIBM iのショップの取り組みが(ようやく)始められると確信しているようです。
6月14日金曜日、 IBM がIBM i 7.5 TR4およびIBM i 7.4 TR10( 5月8日に発表)に含めている機能の大部分の、一般向け提供が開始されました。Merlin(IBMによる正式名称はIBM i Modernization Engine for Lifecycle Integration)のバージョン2.0のリリースは、 IBMが2022年5月に発表した最初のリリースからの大幅なアップグレードとなっていることから、今回のTRにおける大ニュースの1つと言えるでしょう。
Merlinの導入は、IBM iでのアプリケーション開発に対するIBMのアプローチが大きく変わったことを示すものでした。2022年5月までの数十年間のIBMの方針は、自社のファットクライアントである、Javaベースの統合開発環境(IDE)、Rational Developer for IBM i(RDi)を使用することでした。しかし、 Microsoft社のVS CodeのようなWebベースのIDEが、開発者コミュニティ全体にわたって急速に躍進を遂げたことを受けて、IBMは、より軽量なIDEへの移行を受け入れることを余儀なくされました。
IBMがブラウザベースのIDEを採用したのは、Merlin 1.0が初めてでした。VS Code派生のIDEに加えて、Merlinには、GitおよびJenkinsのようなオープンソースのDevOpsツールや、パートナーである ARCAD Software社の数多くのIBM iコーディング ユーティリティが組み込まれました。そして、IBMは、 Red Hat Open Shiftコンテナにすべてをバンドルして、IBM iのショップに販売しました。
Merlin 2.0では、それらのコンポーネントのほぼすべてがアップグレードされています。まず、IDEそのものが、プロプライエタリなVS Codeのオープンソース バージョンを提供する、2つのEclipseプロジェクト(CheおよびTheia)ではなく、本来のVS Codeをベースとするようになりました。IBMの、アプリケーション開発およびシステム管理担当IBM iビジネス アーキテクトのTim Rowe氏は、この変更が重大である理由について『 >span class="italic">IT Jungle 』に説明しています。
「IBMがMerlinを初めてリリースした2022年の時点では、Microsoftは、VS Code開発スペースをオープンソース化していませんでした。すなわち、DevSpaceです」と彼は述べています。「今はそれがあるので、方向転換したというわけです。バックエンドを書き直し、Eclipse Cheサポートを除去しました。そして、今はDevSpaceにいます。ということは、Code for iプロジェクトの一部分であるものはすべて、すぐにそのままMerlinになるということです。開発者エクスペリエンスがさらに素晴らしいものになるため、実に刺激的です。」
Rowe氏が触れたように、Merlinのもうひとつの大きな改善点は、 Code for i プラグインの統合です。2022年7月1日に正式にIBMの一員となる前に、Liam Allan氏はCode for iを開発しています。これにより、IBM i開発者は、Allan氏に大きな不快感をもたらすIDEであるRDiの代わりに、VS CodeでILEプログラムを書くことができるようになりました。
Code for iは、2023年10月にIBMがVS Code向けの Db2 for iデータベース拡張機能をリリース する前に、すでに 急成長を遂げていました 。 IBM iデバッガーでのVS Codeサポートなど、Code for iの真髄がすべて、追加設定なしで、Merlin 2.0に備わるようになりました(もっとも、 2022年秋のTR の出荷時以降は、MerlinはIBM iデバッガーにアクセスできていましたが)。
Db2 for i担当IBMビジネス アーキテクトのScott Forstie氏によれば、データベース拡張機能だけでも、使ってみる価値が十分あるということです。
「私たちは、そうした素晴らしい開発者エクスペリエンスを提供するために、データベース拡張機能でVS Code for i開発者向けのデータベース ツーリングを拡充しているのです」とForstie氏は述べています。「データベース コンポーネントが含まれないとしたら、素晴らしいエクスペリエンスなどあり得ないからです。」
Merlinに対するもうひとつの大きな変更はパッケージングにあります。バージョン1.0では、顧客は、Merlinを稼働する完全なOpenShiftクラスターをプロビジョンする必要がありました。バージョン2.0では、Single Node OpenShift(SNO)と呼ばれる、単一サーバー上でMerlinを稼働するオプションを選べるようになっています。
Rowe氏によれば、SNOを選ぶことで、Open Shiftのフットプリントが減り、より扱いやすくなるということです。これは、大規模な開発環境をプロビジョンするためのリソースを持たない、小規模なIBM iのショップの共感を呼ぶだろうと彼は述べています。
「小型のPowerシステムを使用しているショップからすれば、それは実に興味深いものであることに間違いありません」とRowe氏は述べます。「IBM i上で容易に並行して稼働し、Powerボックス上の他のリソースを活用できるのです。また、クラウド環境にもぴったりフィットします。」
SNOおよびMerlin 2.0をノートPC上で稼働することも可能だとRowe氏は述べます。「もっとも、それなりに大型のノートPCがあればですが」
最後に大事なこととして、Merlin 2.0では、ARCADコンポーネントに対するアップグレードおよび機能強化も行われています。Merlinには、ARCAD社製品、BuilderおよびObserverが組み込まれています。これらは、IBM iと、それぞれソース管理およびCI/CD向けの、オープンソースのGitツールおよびJenkinsツールとの統合を支援します。また、同じくARCAD社製品であるTransformerは、固定長のRPGからフリーフォームRPGへの変換を自動化するユーティリティです。
Merlinの売上は、これまでのところ 記録的なものとは言えません が、多くのIBM iのショップが関心を寄せ、この製品を試してはいるようです。IBMは、顧客がクラウドでアクセスすることができるMerlinのホスティング バージョンと同様に、ツールの連合体であるMerlin 2.0によって、これらの顧客がようやく開発プロセスのアップグレードについて真剣に考えるよう強いられることになると期待しています。
「私たちが公開してきたMerlinの基本方針(モダンな開発。Git、VS Code、モダンなRPGパイプラインを活用。DevOps的な手法(メッセージング))は、幅広く採用されるようになっています」とRowe氏は述べています。「関心は持たれているようです。私は、年がら年中、顧客と話をしています。多くの顧客がMerlinを前向きに検討しており、彼らはPOCを行っています。そのため、私たちが見るところでは、市場はモダンな開発に関心を持ち続けており、Merlinは間違いなく、モダンな開発の構成要素であり、モダンな開発というパズルの重要なピースなのです。」
残念なことに、多くのIBM i開発者は、従来のツール(SEUやPDMなど)や、従来の手法(直接、本番環境へプッシュ)を使用し続けています。サーベンス・オクスリー法などの法規制によって、表向きは、開発とデプロイメントの間での職務の隔離を実装するよう強いられてきたはずですが、多くのIBM iのショップは引き続き、古いやり方を引きずっているようです。
「私は2000年代の初めに、モダナイゼーションについて検討していました」と、ARCAD社バイスプレジデント(南北アメリカ地域セールスおよびオペレーション担当)のAlexandre Codinach氏は、POWERUpカンファレンスの際に『 IT Jungle 』に述べています。「しかし、S/36プログラムを変換するツールはないかとブースで尋ねられることが今でもあります。信じられません。私が新人だった頃には、すでに年代物だったように思います。」
古い習慣を捨てるのは難しいことです。そして、IBM iインストール ベースは、古い習慣をたくさん抱えている人だらけです。Merlinを導入し、継続的に機能強化が行われていることは、IBMがその問題に真剣に取り組んでいることの現われです(ARCAD社とIBMはMerlin 3.0に何を加えるかについてすでに話し合いをしています)。
「今はもう1984年ではないのです」とRowe氏は述べます。「Merlinに問題があるのではありません。ほとんどの顧客にとっての最大の問題は、開発のやり方を変え、開発をモダンなやり方で行おうとする意欲なのです。」