IBM Application Runtimes CTO に聞いた WebSphere Liberty の歩み
今年、IBM MQとDb2は30周年。WebSphereは25周年を迎えます。現在も尚、お客様の基盤を支え続けているIBMミドルウェア製品のアニバーサリーを記念して、インタビューを実施しています。第4回目第3弾となるインタビューでは、IBM技術理事であり、IBM Application RuntimesのCTOでもある、イアン・ロビンソン氏にインタビューを行いました。
Ian Robinson(イアン・ロビンソン)氏
IBM技術理事、兼、IBM Application RuntimesのCTO。分散型エンタープライズコンピューティングにおいて、製品開発、オープンスタンダード、オープンソースの分野で30年以上の経験を持つ。WebSphere、Liberty、Javaを含むIBM Application Runtimesテクノロジーの技術戦略、およびOpen Libertyなどのコミュニティ・プロジェクトを通じて提供されるイノベーションの責任者。また、EclipseのMicroProfileプロジェクトとJakarta EEプロジェクトの創設メンバーでもあり、クラウド向けのJavaの未来を定義することに貢献している。
インタビュアー
IBM Data, AI and Automation 営業 蓮見悠馬
IBM Data, AI and Automation テクニカルセールス 田中孝清
1.自己紹介をお願いします。
― (ロビンソン氏)イアン・ロビンソンと申します。IBMの最高職のエンジニアです。IBMのアプリケーションランタイム部門のCTOを務めており、JavaやWebSphere、Libertyなど多くのJava関連技術に携わっています。
私は33年間IBMに在籍し、イギリスのハーズレイ研究所に所属しています。WebSphereに関わって20年になるので、最初の5年は私の責任ではありません(笑)。
私の最初の仕事は、2フェーズ・コミット・トランザクションをコーディネートし高可用性を実現するWebSphereのトランザクション・マネージャーの開発でした。そのコードは現在もWebSphereとLibertyに存在しています。13年前には、WebSphere Libertyランタイムの開発をリードするようになりました。Libertyは新しいアプリケーションがコンテナやVMで実行される場合に推奨されるランタイムです。その後数年間WebSphereのチーフアーキテクトを務めた後、最近ではより広範囲なアプリケーションランタイム部門のCTOになりました。
IBMの外でも、私はEclipse FoundationでMicroProfileとJakarta EEプロジェクトの設立に貢献し、最近はEclipse Foundationの取締役会に参加しました。
2.イギリスのハーズレイ研究所は、どのようなところですか?
- (ロビンソン氏)イギリス最大のIBM研究所です。もし、18世紀のイギリスを舞台にした歴史ドラマを見たことがあるなら、上流階級の人が住む広大な土地にあるマナーハウスがイメージできると思います。その邸宅と緑豊かな田園風景が広がる場所、それがハーズレイ研究所です。
ハーズレイ研究所の中心には、18世紀に建てられた洋館があり、それが私たちのお客様向けブリーフィングセンター(※1)です。働くだけではなく、お客様をご案内するとても良い場所です。また、開発チームはブリーフィングセンターの別館で働いています。とても美しい場所で、イギリスやアイルランド、インド、中国、そして北米のカナダなど世界中のWebSphereとLibertyの分散型プロジェクトに集まる開発者にとっても1つの拠点となっています。IBMが開発する多くの製品の開発者が所属しているので、お客様にも非常に楽しんでいただける場所となっています。
(※1)ブリーフィングセンター・・・お客様へのソリューション紹介や検証等に加え、パートナー様も含め交流を行える施設
3.IBMがWebSphere Libertyを開発した経緯について教えていただけますか?
-(ロビンソン氏)WebSphere Libertyは、約15年前の2010年ごろから始めた取り組みです。
当時のランタイムは、Java EEに準拠しているか軽量であるかのどちらかであり、両方を兼ね備えたものは存在しませんでした。従来のWebSphereはモノリシックなサーバーだったので確かに重く、製品寿命の終わりに近づいているという認識があり、軽量版を作りたいと考えていました。Java EE 6でJava EEのサブセットであるWeb Profileが導入されたとき、お客様からWeb Profileをサポートするためにもアプリケーションサーバーのほぼ全てのを起動する必要があることに対して、ネガティブなFeedbackが寄せられました。そこで開発チームはランタイムを細かく粒状化したSGIコンポーネントとして再設計しました。ランタイムの側面では従来のWebSphereの実装を再利用しましたが、管理面は完全に書き直しました。
Java EE 6のWeb Profileがほぼサーバー全体の起動を必要としたのは、モノリシックなランタイムよりもモノリシックな管理面の問題が原因だったからです。その問題を解決するために、私たちは多くの変更を加えました。それから2010年にプロトタイプ開発を始め、2011年から試験的に一部のお客様に公開していきました。お客様はWebSphereを5秒未満で起動できることに驚き、新たなWebSphereは大きな反響を呼びました。そしてついに2012年にLibertyをリリースしました。
プロジェクトは、ハーズレイ(イギリス)やラレーイとポケプシー(アメリカ)のプロトタイプ・チームで開始され、早期プログラムや正式な製品に移行するにつれて、ロチェスターやオースティン(アメリカ)、トロント(カナダ)、バンガロール(インド)、北京にも拡大していきました。また、ハイファ(イスラエル)や東京の研究所とも協力して取り組んで行きました。早い段階からグローバルな開発体制をとっていました。Libertyは大成功のプロジェクトとなりました。
4.WebSphere Libertyは、Java SE、Jakarta EE、MicroProfileなどのさまざまな仕様に準拠しており、IBMはこれらの標準仕様の開発において大きな役割を果たしています。IBMがこれに取り組んでいる詳細についてもう少し詳しく解説いただけますか?
- (ロビンソン氏)IBMは、Java SEとJava EEの仕様定義に非常に早い時期から関わっていました。
Javaが最初に成功した理由の1つは、Java EEがインターネットの初期の頃に標準ベースの中間層のアーキテクチャを確立したことです。そうすることで、企業システムやデータをインターネットに接続し、新しいビジネスの方法を生み出すことが可能になりました。そしてインターネットは学術的なリソースから私たちの世代で最も革新的な技術革命へと変わりました。この成功には、インターネットとJavaの標準仕様の2つが大きく貢献しています。
長年にわたる急速な進歩の後、Java EEが勢いを失ったJava EE 7以降に、新たな動きが必要となりました。IBM、Red Hat、Payara、Tomitribeなどは、より迅速なイノベーションが必要であると認識し、MicroProfileプロジェクトを立ち上げました。このプロジェクトは最終的にEclipse Foundationに移されました。その後、OracleはJava EEをEclipse Foundationに寄贈し、IBM、Red Hatなどと協力してJakarta EEプロジェクトを設立しました。IBMはEclipseでこれらのプロジェクトの創設メンバーであり、これらの2つのプロジェクトでクラウド・ネイティブJavaアプリケーションの次世代のJava APIを定義し続けています。
Libertyでは、MicroProfileの新しいAPIが最終化されてから1か月以内にサポートし、Jakarta EEの新しいAPIは翌四半期までにサポートすることを目標としています。私たちは、すべてのLibertyの新しい機能をOpen Libertyプロジェクトでオープンな形で実装しており、しばしばOpen LibertyをMicroProfileの新しい仕様の最終化を行うための最初の互換実装として提供しています。
5.多くの製品やOSSが提供されているエンタープライズJavaの世界の中で,WebSphere Libertyがもつ強みとは何でしょうか? また、これからどのような機能が提供されるのでしょうか?
他のエンタープライズJavaを提供する製品やオープンソース・ソリューションと比較したWebSphere Libertyの強みは、Java EEテクノロジーを細かくバージョン管理されたランタイムの「フィーチャー」として実装するという独創的なアプローチです。
新しい機能が導入されるたびに、既存のバージョンに影響を与えることなく、簡単に新しいバージョンの機能を作成できます。これにより、特定のアプリケーションの要件に合わせて必要な内容を持つディストリビューション(例:コンテナイメージ)を作成し、アプリケーションのフットプリントを最小限に抑えることが容易になります。また、アプリケーションが最新のランタイム・バージョンとそのためのセキュリティ更新に追従することも容易になります。
アプリケーションがセキュリティ上の問題になる理由の1つは、最新バージョンのソフトウェア依存関係との互換性を維持するのが難しく、セキュリティ更新が遅れがちになることです。Libertyでは、バージョン管理された機能によって互換性の問題を排除することで、この懸念を設計上排除しています。Libertyには独自の「ゼロマイグレーション」ポリシーがあり、アプリケーションは最新バージョンのLibertyを利用するためにマイグレーションや更新の手続きを行う必要がなく、最新のセキュリティ修正を適用する障害がありません。
また、アプリケーション・ランタイムだけでなく、それが実行されるJavaランタイムも開発していることが魅力の1つです。今年、Javaランタイムとの連携により新たに追加される機能がLiberty InstantOnです。これは、ネイティブ・コンパイルによらない超高速起動を提供するものであり、非常にワクワクしています。
6.WAS Libertyのゼロマイグレーションは素晴らしい機能だと思います。Java EE 8のAPIを引き続き使用できるという点は、他のアプリケーションサーバーが提供しない重要な利点です。LibertyはJava EE 8の伝統的なAPIなど、従来のAPIをどれくらいの期間サポートするのでしょうか?
- (ロビンソン氏)Java EEからJakarta EEへの移行ではjavaxパッケージの名前空間がjakartaに変更されました。
LibertyのJava EE 8のフィーチャーには固有の名前が付いていて、Jakarta EE 9.1のフィーチャーとは区別されます。そのため、Libertyは従来のJava EE仕様とJakarta EE 10などの新しいバージョンの両方をサポートし続けることができます。具体的な例については、https://openliberty.io/docs/latest/reference/diff/jakarta-ee9-feature-updates.html で確認できます。
LibertyではJava EE 8の機能セットのサポート終了のプランはまだありません。LibertyはJava SE 8以降の任意のバージョンで実行されることをサポートしています。将来のJava SEのバージョンでJava EE 8と互換性のない変更が導入された場合、Java EE 8の機能のサポート終了について計画する必要があります。ですが、最新バージョンのJava SE 20や次期の21ではそのような非互換性はありません。
7.LibertyのInstantOnはまもなくユーザーに提供される予定とのことですが、InstantOnに関する期待やIBMがこのような高度な実装を作成する能力の背景について教えてください。
- (ロビンソン氏)IBMの基盤となるIBM Semeruランタイムとの連携により、Liberty InstantOnはJava VMとアプリケーション・コンテナの起動処理のほとんどを、コンテナイメージのビルドプロセスに移動します。アプリケーションの実行状態をチェックポイントとして取り、それをコンテナイメージに組み込みます。実行時には、イメージはその状態を復元するだけであり、Libertyコンテナの起動時間が10倍速くなります。
重要なことは、メモリ管理の堅牢性、JITによる最適化スループット、通常のJavaエコシステム・ツールのすべての機能を含む、Javaのフルパワーが引き続き利用可能であるということです。
一方、他社の高速起動で使用されているネイティブ・コンパイル技術は、アプリケーションが利用できるJava APIに制約を課し、JITによる最適化されたJavaコンテナのスループットにはまだ追いついていません。Liberty Instant Onは2022年9月以降ベータ版として提供され、数週間以内にLibertyとIBM Semeruランタイムで正式リリースされる予定です。
-(蓮見)InstantOnの開発はどのように生み出しましたか?
-(ロビンソン氏)私たちは、Linuxの技術を基盤に、およそ3年間にわたってLibertyのInstantOnの開発に取り組んできました。このプロジェクトは初めはIBM Semeruは関わっておらず、私たちのLibertyのチームが立ち上げました。最初はLibertyランタイムでチェックポイントとリストアの機能によるゼロダウンタイムを実現することに関心を持って開発に取り組んでしました。そこで「アプリケーションがチェックポイントとリストアのプロセスに参加するためのAPIを提供する」といったアイデアが生まれました。しかし、これらのAPIに対するアプリケーションのコーディングは負担となる可能性があるため、IBM Semeruにその機能を拡張として追加し、プラットフォームレベルでのチェックポイントリストアAPIを実装しました。これにより、追加のコーディングを必要とせず、どのアプリケーションでも恩恵を受けることができるようになると考えました。
8.日本のJava開発者、顧客、ビジネスパートナー、IBM社員に向けていくつかのメッセージをお願いします。
-(ロビンソン氏)クラウド上のJavaアプリケーションにはさまざまな環境がありますが、Libertyほど完全で高速で使いやすいものはありません。私たちはアプリケーションを作成する開発者と、それらのアプリケーションを実行し監視する環境を提供するプラットフォーム・エンジニアリングチームの両方を兼ね備えているので、両者を掛け合わせて価値提供を行うことに自信を持っています。最近、MicroProfile 6とJakarta EE 10のフルサポートを備えたLiberty 23.0.0.4をリリースしました。まもなくLibertyコンテナで実行されるInstantOnを正式リリースします。まだLibertyを利用していない方は、ぜひ一度試してみてください。
アプリケーションサーバーを変更すると移行作業の懸念もあると思いますが、その場合はコンテナを試してみてください。実際にLibertyのためにコンテナをビルドしてデプロイしてみると、多くの人々が、その手軽さとシンプルさに驚き、喜んでいます。大幅なアプリケーションの再構築は必要なく、既存のアプリケーションをコンテナに入れることで、運用の最適化など多くのメリットを得ることができます。アプリケーション最適化に向けてよりセキュアに新たなテクノロジーを導入することをお勧めします。
WebSphereコミュニティに参加することで、役立つ情報を得ることができ、特に開発者にとっては、Open Libertyを見て、最も興味のあるワークロードに適した案内を受けると良いのではないでしょうか。そしてうまくいくかどうか、実際に確かめてみてください。
※番外編にてグナパラシンガム氏へのインタビュー記事を掲載しております。後日公開予定です。そちらもぜひご確認ください!
記事執筆:アニバーサリー広報チーム(Data, AI and Automation 事業部)
撮影者:鈴木智也