BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース IBMがJavaマイクロサービス用のオープンソースランタイムOpen Libertyを公開

IBMがJavaマイクロサービス用のオープンソースランタイムOpen Libertyを公開

原文(投稿日:2017/10/11)へのリンク

IBMは先頃、同社のWebSphere Libertyアプリケーションサーバのオープンソース実装であるOpen Liberty公開して、オープンソースに引き続き貢献する同社の姿勢を実証した。今回の新リリースでは、マイクロサービスとクラウドネイティブなアプリケーション開発のために、Eclipse MicroProfileJava EE APIの両方をサポートしている。

2012年に初めて公開されたWebSphere Libertyは、その小型軽量なデザインとともに、DockerやKubernetes、Cloud Foundryなどの主要プラットフォームにデプロイされたJava EE 7認定アプリケーションをサポートする。IBMのWebサイトによると、

将来を見据えた時、私たちは、Javaとオープン標準、そしてオープンソースの組み合わせこそが、素晴らしいアプリケーションを開発するための最良の方法だと考えています。そのために昨年、RedHatPayaraTomitribeの各社と協力して、Javaによるマイクロサービス開発を促進すべく、当社のMicroProfileTMランタイムとJava EEによるオープンソースを開発する第一歩を踏み出しました。

コラボレーションはこれだけではない。OpenLibertryのリリースと同時に、IBMは、同社の所有するJVMをEclipse Open J9としてオープンソース化すると発表した。今年初めにはGoogleとLyftと共同で、マイクロサービスを監視するサービスメッシュとして、もうひとつのオープンソースプロジェクトであるlstio立ち上げている

Open Liberyは、Open J9とlstioと組み合わせることにより、開発者がJavaマイクロサービスとクラウドネイティブなアプリケーションを構築するための完全なJavaスタックとして機能する。さらに開発者は、Open Libertyでアプリの開発、構成、デプロイを行なうための軽量ツールセットであるOpen Liberty Toolsを利用することも可能だ。Open Libertyの全リポジトリと同じく、GitHubから入手できる。

IBMでWebSphereとLibertyを担当するアーキテクトのAlasdair Nottingham氏が、Open Libertyについて説明してくれた。

InfoQ: Elipse OpenJ9 JVMとlstioサービスメッシュは、Open Libertyにどのように統合されているのですか?

Alasdair Nottingham: Open Libertyは、TCKに合格した任意のJVMで動作するように設計されています。ただし現時点では、Java SE 9では動作しません。そしてEclipse OpenJ9は、Java SE9でしか動作しないのです。今はこの問題に取り組んでいます。Eclipse OpenJ9はIBM JVMがベースで、Open Libertyと同じJava SEバージョンをサポートしていますから、この組み合わせはうまく動作すると思います。経験から言えば、J9 JVMのテクノロジは、Open Libertyワークロード用のHotspotに比較して、メモリ使用量や起動時間の点ではるかに優れています。

IstioはDockerやKubernetes環境において、さまざまな言語をサポートする複数のランタイムをサポートするように設計されています。Istioはこれを、ランタイムと外部とのメディエータとして動作することで実現します。これによって障害発生時のサービス選択やサービスタイムアウト、再試行、サーキットブレーカといった機能が、アプリケーションコードを変更することなく利用可能になるのです。

このようなアーキテクチャのため、Open LibertyとIstioの併用は非常に簡単です。Open LibertyもEclipse MicroProfile Fault Tolerance仕様をサポートして、同じようなフォールトトレランスパターン用のAPIをアプリケーションに提供しているので、Istioと選択したり、Javaコードによってさまざまな処理を行なうことができます。Open LibertyランタイムをIstioと実行する場合には、重複するフォールトトレランス機能を設定によって無効にすることも可能なので、アプリケーションコードとIstio設定で同じことを行なう必要はありません。

InfoQ: MicroProfileはJava EE 8での開発にどの程度影響するのでしょうか、あるいは、その逆はどうなのでしょう?

Nottingham: Java EE 8は重要ですが、かなり制約の多いJava EEの更新バージョンです。Eclipse MicroProfileプロジェクトはそれよりも進んでいるので、最新のアプリケーションパターン用にJava EEを拡張するためにはどのようなAPIが必要なのか、ということを考えています。

Eclipse Software Foundationでの大きな進歩がすでに実証しているように、Eclipse MicroProfileはJava EEの将来に大きく影響していると思います – 新しいEE4J認定では、EE自体がEclipseに移行しているように、MicroProfileがEEの発展に関与することを認めています。

InfoQ: この1年間、RedHatやPayara、Tomitribeといった企業と協力して、マイクロサービス開発におけるJavaの利用を推進してきたことは、あなたにとってどのような体験でしたか?このコラボレーションは今後も継続するのでしょうか?

Nottingham: 実に建設的なコラボレーションでしたね。Eclipseへの移行は誰でも短期間で可能なのですが、それでもMicroProfile 1.2での開発には目を見張るものがあります。JavaOneに間に合わせるべく、全員がひとつにまとまっていました。それを目の当たりにして、実際に参加するのは、非常に面白い体験でした。

このコラボレーションが今後も続くのは間違いありません。Eclipse MicroProfileプロジェクトの成功だけでなく、Eclipse Enterprise for Javaの成功にとっても非常に重要なのです。

InfoQ: 6ヶ月というJavaの新たなリリースサイクルは、Open Libertyの開発や今後のリリースに、どのように影響するのでしょうか?

Nottingham: リリースサイクルの短縮がOpen Libertyに実際にどう影響するかは、JVMにどのような変更が行われるかによって決まります。私たちの経験では、Java SEの新バージョンの採用に時間が掛かるのは、バイトコードのバージョンが更新された時です。

Java EEはJavaバイトコードの処理や構成に大きく依存しているため、新バージョンがリリースされると、対応に時間が必要です。6ヶ月のリリースサイクル毎にバイトコードのバージョンが更新されれば、追従するのは非常に難しくなります。これまではJava SEの新バージョンのサポートに約6ヶ月掛かっていましたが、これは理想的ではありません。ただし私は、バイトコードの変更はそれほど頻繁ではないだろうと予想しています。

InfoQ: 他のアプリケーションサーバと比較して、Open Libertyがユニークな点は何でしょう?

Nottingham: いくつかあります – まず第1には、設定が簡単であることです。コンフィギュレーションが非常に簡単で使いやすく、なおかつ例外的なアプローチになるように、私たちは多大な努力を払ってきました。バージョン管理にチェックイン可能なようにもしました。コンフィギュレーションとコードを同じ場所に保管できるのは、開発や運用の面で非常に便利だからです。私たちのアプローチがユニークなもうひとつの点は、アプリケーションサーバとして、アプリケーションに本当に必要な機能のみを備えるようにしたことでしょう。

Open Libertyは、私たちが機能ユニットと呼んでいる、アプリケーションサーバで実行する必要のある機能のみを提供するように、まったく新たに設計されています。私たちのアプリケーションサーバでは、Java EEとMicroProfileのすべての機能を細分化して装備しています。ですから、必要とする機能が少なければ、非常に小型で高速なサーバランタイムを組み上げることができるのです。

InfoQ: 今後の計画について教えてください。

Nottingham: 機能面ではJava EE 8に取り組んでいます。GitHubリポジトリを見て頂ければ、Servlet 4、JAX-RS 2.1、JPA 2.2、JSON-BとJSON-Pが開発中であることが分かります。その他の機能についても計画中です。

Eclipse MicroProfileにも深く関与しています。プロジェクトの立ち上げ時には、Open LibertyがEclipse MicroProfile 1.2のリリースをサポートしました。新たに創設されたEclipse Enterprise for Java (EE4J)プロジェクトにも、私たちの開発チームが参加しています。そうそう、Java SE 9もサポートしています。

IBMのBluemix Garage Londonのテクニカルリーダで、WebSphere Liberty Profileのデリバリリーダを務めていたHolly Cummins氏は、Open Libertyでの経験について次のように話している。

Libertyでの開発については、個人として誇りに思っています。それがGitHubで公開されるというのは感慨深いですね。Open Libertyは、そのモジュラリティとダイナミズムを活かした、優れた機能を備えています。ローカルで動作する場合には、アプリケーションのホットリロードだけでなく、サーバのすべての部分を再起動することなく追加、削除、再構成することができます。クラウド上で実行する場合は、そのモジュラリティによって、使用していない機能によってディスクやメモリ領域を無駄にすることはありません。明確で一貫性のあるコンフィギュレーションも気に入っています。

Raspberry Pi上で動作する初のアプリケーションサーバであるという点も、Libertyの面白い部分です(さらに調子に乗って、Androidフォンでも動作するようにしました)。逆説的に言えば、小さなRaspberry Piへのデプロイメントを実現した特徴がそのまま、大規模なクラウドネイティブな展開のための優れた選択肢としているのです。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT