IBM i はLinux化するのか
先日、次世代IBM iアプリケーション作成のためのLinuxベースのツール コレクションであるMerlinがリリースされたことで、IBM i の将来についての疑問がいくつか浮かび上がることとなりました。そうした疑問の1つは、IBM i とLinuxとの関係に関するものであり、生き残りのためには、IBM i はよりLinuxのようになる必要があるかどうかということです。生き残りのために、IBM i が、多くの点で、よりUnixおよびWindows Serverのようになる必要があったのと同じです。
Merlinは、 IBM が通常、出荷しているものとは異なるタイプの製品です。まず、Merlinは、 正確な意味においてはモダナイゼーション ツールというわけではなく、むしろ、IBM i 顧客が、モダンなDevOpsの手法を使用してIBM i アプリケーションの開発を始められるようにするツールのコレクションのようなものです。Merlinは、言うなれば、WebベースのIDE、GitおよびJenkins向けのコネクタ、および ARCAD Software社からOEM供給された影響分析およびコード変換ソフトウェアが現時点で組み込まれているフレームワークということです。そして、今後、Merlinには、 さらに多くの機能が加わる予定です。おそらくは、アプリ カタログ、PTF管理、セキュリティ機能、およびサードパーティ ベンダー製ツールとのさらなる統合機能などが加えられることになるようです。
また、Merlinは、IBMがそのデリバリーのために選んだ方法という点でも独特です。このソフトウェアを完全にネイティブなものにする代わりに、IBMは、より広いITの世界でソフトウェアを稼働するのに用いられているのと同じモダンな方式で、Merlinが稼働することを望みました。すなわち、コンテナです。
Merlinはコンテナ内でのみ稼働します。実際、Merlinは、Kubernetesによって管理されるコンテナ内でのみ稼働し、また、MerlinがサポートするKubernetesディストリビューションは、IBM自身の Red Hat OpenShiftのみです。そして、すべてのKubernetesはLinux上で稼働します。つまり、結果としてMerlinはLinuxアプリケーションということになります。 Google社は、同社のクラウド データセンターで稼働している膨大なワークロードを単純化するために、Borgワークロードおよびコンテナ スケジューラー(Kubernetesの原点)を作成し、2014年にはBorgのレイヤーをKubernetesとしてオープンソース化しましたが、Kubernetesを他のオペレーティング システムで稼働できるように開発したわけではありませんでした(Windows、Unix、もちろんIBM i でも稼働できません)。
IBMは、Merlinのデリバリー メカニズムとしてOpenShiftを使用する必要はありませんでしたが、そうしたのには、いくつか理由があります。まず最も重要な理由は、クラウドでのコンテナの稼働(具体的には、これらのコンテナがどのようにしてポッドされ、管理されるかをKubernetesコンテナ コントローラーが管理)は、最近では他の多くのITビジネスが行っている方式であるからです。そうすることによって、Merlinは真にモダンになります。そして、モダンであるというのは、Merlinにとって最も大切なことです。2つ目の理由としては、IBMの関係者たちも、それらがOpenShiftのちょっとした需要創出をもたらしていることを認めているということです。IBMでは、OpenShiftを、 AWS、 Microsoft Azure、 Google Cloudで稼働していないコンテナ ワークロード向けの、戦略的なKubernetesの代替製品として位置付けようとしているからです。これには、IBMロチェスターのRed Hatチームの同僚たちも喜ぶに違いありません。ただし、「K8S」と綴ろうとさえしないミッドレンジの頑固者にとってはイライラの素になるでしょうが(ちなみに、「K8S」はKubernetesの略称です)。
こうしたMerlin、Kubernetes、Linux、IBM i 間の関係性からは、興味深いいくつかの疑問が持ち上がります。すなわち、MerlinがモダンなIBM i 開発の将来像だとしたら、Kubernetes(したがってLinux)がこのプラットフォームの将来像ということにもなるのでしょうか。IBM i が、よりLinux化したり、Linux互換になったりすることはあるのでしょうか。そもそも、Kubernetesは、IBM i 上で稼働するようになるのでしょうか。コンテナは、IBM i 上で稼働できるのでしょうか。できるとしたら、それは、どのような形になるのでしょうか。
IBM i とKubernetes
IBM i チーフ アーキテクト、CTO、DE(Distinguished Engineer: 技術理事)であり、Merlinの立案者でもあるSteve Will氏は、初めてMerlinのアイデアを報告したときに、IBM幹部からもいくつか疑問が上がったことを認めています。
「Merlinについて初めて打ち明けた相手は、私の話の主旨は、IBM i 上でコンテナを稼働させるプロジェクトだと思ったようです」と、数週間前に COMMONの年次POWERUp 2022カンファレンスで行われた、Merlinに関する基調講演でWill氏は述べています。
コンテナおよびKubernetesがIBM i 上で稼働できるのかという疑問は、多少、議論の余地があります。簡単な答えはこうです。すなわち、IBM i 上でコンテナおよびKubernetesを稼働することを実質的に不可能にしている、根本的な技術上の非互換性がある、ということです。ただし、もっと長く、もっと複雑な答えもあります。おそらく、それにより、より多くのことが明らかになるはずです。
Merlinが素晴らしいのは、「IBM i を直接、Red Hat OpenShiftの会話に加える」からだとWill氏はPOWERUpの参加者に述べています。「今日の世界では、プログラマーは、コンテナベースのものを扱うように迫られたり、促されたりしています。それが最新のトレンドだからです。」
「しかし、現在、IBM i 上で稼働するコンテナ管理システムはありません」と彼は続けます。「そのことは、IBM i がコンテナをサポートしていないということではありません。それは、IBM i 上でコンテナを構築する方法を知っているコンテナ管理システムがないということです。」
コンテナが便利なのは、一連のサービスおよびコードをカプセル化し、すべてをまとめる手段を提供してくれるからだとWill氏は述べます。実際、IBM i には、すでにそれに似た手段はあります。「今でも、そうすることができます」と彼は述べます。「今でも、コンテナに非常によく似た環境を構築することができます。できないのは、コンテナ管理システムを管理することです。コンテナはLinuxしか配慮していないからです。」
コンテナに歩調を合わせる
IBMの幹部がMerlinにゴーサインを出したのには、Will氏がKubernetesおよびコンテナに関して取ろうとしている方針を気に入ったこともあるようです( Merlinという名前は気に入らなかったようですが)。IBM i とコンテナの世界を隔てている根本的な不整合があるという事実は、彼らの目には見逃せないというほどのものではなかったようです。また、IBMトップの意思決定者たちは、特にそれが気になるようでもなさそうです。
「IBMのエグゼクティブたちの誰一人として、コンテナを実行できるように、IBM i をLinuxに作り変えるよう求めてくることはありません。そのような問題ではないと彼らは認識しています」とWill氏は述べています。「しかし、私たちが提供しようとしているのは、人々が前へ進むのを支援するソフトウェアです。足並みをそろえて、こうしたコンテナベースのソフトウェアを持つというアイデアは、良いことだと思います。」
IBM i がKubernetesを稼働することはなく、また、通常、Dockerと呼ばれるテクノロジーをベースにしている従来のコンテナのホームになることもありません。しかし、次善の策は、IBM i に常駐しているアプリケーションおよびデータを、コンテナに(Linux上のKubernetesで)常駐しているアプリケーションおよびデータにできるだけ近付けることであり、これが今のところの戦略であるようです。
「結局のところ、モダナイゼーションを行っていると、IBM i 上に置かれるコードを書いて、それが他のどこかで稼働しているコンテナを呼び出すことになるかもしれません」とWill氏は述べます。「それは合理的でモダナイズされたやり方です。多くの人がそうしています。私たちのツール セットでそれを行うことも、他のツール セットでそれを行うこともできます。これでIBM i にコンテナをサポートさせようとしているわけではありません。提供しようとしているのは、実際のジョブを行うのに役立ち、そうしたIBM i とコンテナについての疑問を打ち消すのにも役立つ、コンテナ内で稼働するツールなのです。」
IBM (L)i(nux)
KubernetesがIBM i 上で稼働することも、IBM i がLinuxの1つのバージョンに変身することもなさそうですが、このプラットフォームは、特に、直接Power上で稼働しているOpenShiftと、そのまま緊密に連携して稼働することができます(MerlinはX86上のRed Shift上でも稼働しますが)。
それらを緊密に連携させ、顧客の負担を軽くする鍵は、IBM i とKubernetesの両方と稼働できる管理レイヤーを提供することです。IBMのPower Systemsオファリング マネジメント担当バイスプレジデントのSteve Sibley氏によれば、そうした管理レイヤーとなるのがAnsibleです。
「それらをより緊密にすること、そして、顧客がそれをまとめて管理する方法を単純化することが、それを行うための方法だと思います」と、POWERUp 2022での『 IT Jungle 』のインタビューでSibley氏は述べています。「より近付ける方法は、環境を管理する機能を単純化することです。たとえば、鍵となる管理機能としてAnsibleを挙げました。Ansibleは、まさにLinuxをiに近付けます。それは、iプラットフォームを顧客の全体的な管理環境に持ち込むということです。顧客は、同じAnsibleプラットフォームを使用して、iプラットフォームと、Linux on PowerおよびLinux on X86環境との両方を管理することができます。」
IBM i がKubernetesを稼働することも、IBM i がLinuxになることもないでしょう。しかし、それはすぐ隣にあって、IBM i アプリケーションと顧客が、可能な限り最大限にそれらと統合することを可能にします。コンテナ化されたマイクロサービスがクラウドで稼働するのが主流となっている世界で、IBM iが重要性を保ち続け、生き残ることができると考えても大丈夫でしょうか。それは時が経ってみなければ分かりません。