PayaraとHazelcastが協同で日本オフィスを開設。垣間見えたJavaEEの将来
オープンソースのJavaEEアプリケーションサーバーを開発するPayaraと、そのPayaraに多くのコンポーネントを提供するHazelcastが、日本市場に向けてサテライトオフィスを開設した。日本のJavaEEアプリケーション開発者に向けて、サポートを始めるとアナウンスした。なおサテライトオフィスの開設はPayaraに日本人社員が雇用されたことを意味しており、日本支社の開設ではないということである。
2018年1月30日に中野サンプラザの貸会議室で行われたイベントは、参加者60名程度の小規模なもので、イベントの前半に登壇したPayaraのスティーブ・ミルリッジ氏による解説、HazelcastのCEO/CTOグレッグ・ラック氏によるHazelcastの概要の説明が行われた。その後、Payaraのエンジニアである蓮沼賢志氏によるPayara Server 5 Betaの解説とデモが実施された。これはPayaraアプリケーションサーバーが簡単にデプロイ/管理されることを訴えるもので、JavaEEのデベロッパーにとっては嬉しい内容だったように思われる。
それぞれの製品を簡単に紹介すると、PayaraはJavaEE準拠のアプリケーションサーバーでGlassFishからフォークした製品となり、Payaraが製品サポートを有償で提供する。Hazelcastはノードをまたがる分散インメモリーデータグリッドとしてHazelcast IMDG(in-memory data grid)とIMDGを汎用のデータプロセッシング用に組み込んだHazelcast Jetの2つを製品化している。どちらも100%オープンソースソフトウェアであることが、訴求ポイントのひとつだ。Payaraのアプリケーションサーバーの中にHazelcastの製品がOEMとして組み込まれているということで2社の関係は深く、共同で日本のユーザーをサポートすることが可能になるというのがサテライトオフィス開設の背景だ。
Hazelcastは主に金融業界で多く利用が進んでいるという。そしてJavaだけではなくNode.jsやC#/.NET、Scala、Pythonなどの言語からも利用可能であるという。
Payaraのミリッジ氏は、Payara ServerはSunが開発したJavaのアプリケーションサーバーから由来するソフトウェアで、オラクルが商用化したGlassFishの代替としてPayara Serverが評価されていることを解説。これは、GlassFishからの乗り換えを推進するのが目的だ。またオープンソースであるPayaraのコミュニティも安定していると説明。以下のスライドでOracleが一番隅に置かれている辺りに、Javaコミュニティの気分が表れているような気がしたのは邪推だろうか。
Eclipse Foundationに寄贈されたJavaEEは、「EE4J」というプロジェクト名でこれからも開発が続くというが、時代の流れはモノリシックなアプリケーションからマイクロサービスに向かっているのはすでにIT業界の常識だ。その中でJavaEEが向かう先として、Eclipse MicroProfileに対応するというのがJavaコミュニティの回答なのだろう。ミリッジ氏は、マイクロサービスに対応する機能を追加するために、OpenTracingやモニタリングのPrometheus、そしてFault ToleranceのためにNetflixが開発したHystrixなどが含まれると解説した。これらのプロジェクトは、KubeConでも注目されていたソフトウェアである。
つまりJavaのコミュニティに対して、マイクロサービスへの対応も進んでいるということを訴求したかったのだろう。他のオープンソースプロジェクトのソフトウェアがモジュールとして採用されている辺りに、最近のマイクロサービスへの関心の高さが伺える。
次に登壇したのはPayaraのエンジニア、蓮沼賢志氏だ。蓮沼氏はGlassFishユーザー会でも活躍しているJavaエンジニアで、Payaraに参加した最初の日本人エンジニアだという。
デモとして日本語化されたコンソールを使い、Azure上で複数のPayara Serverをひとつのデータグリッドとして使う際の構成の容易さを見せた。
しかし今回のハイライトはイベントの後半、日本マイクロソフトのJavaエバンジェリストである寺田佳央氏によるIstioとKubernetesのデモ、そしてJavaEEがオープンソース化された以降のJavaEEの今後についての、Azul Systemsのサイモン・リッター氏のトークだろう。
寺田氏は、これまでのモノリシックなアプリケーションからマイクロサービスに流れが向かう中で「サービスメッシュ」というコンセプトが出てきた背景を解説。特に複数の小さなプロセスが通信をすることで大きな機能を実装する際に「リトライ」や「ロードバランサー」などの機能をアプリケーション側で実装しなければいけないとすれば、書かれている言語に依存したライブラリーをそれぞれ準備することが必要となる。寺田氏はその複雑さを強調し、これを言語に依存せずに行うための仕組みがサービスメッシュであり、その筆頭が今注目されているIstioであると解説した。寺田氏のデモは、Kubernetes上に置かれたJavaのアプリケーションがIstioによって管理される部分を解説するためのものだ。
寺田氏は複数の例を使って、ブルーグリーンデプロイメントやカナリーデプロイメント、HTTPのヘッダーに特別なフラッグを付けることで利用するマイクロサービスを分けるデモを実施した。このような設定を行うためには、Kubernetes単体では非常に面倒な設定が必要となるが、Istioを使うことでyamファイルへのシンプルな記述で可能になることを見せた。
寺田氏のデモはWebデベロッパーでなくても理解がしやすいもので、マイクロサービス化されたアプリケーションに必要な機能をアプリケーションのコード側ではなく、IstioがサイドカーとしてデプロイされるProxyであるEnvoyと、コントロールプレーンであるMixerが連携することで実行される。またPod間のトレーシングをJeager、モニタリングをPrometheus、可視化はGrafanaというオープンソースソフトウェアを利用してデモを実施した。「このデモを作るために朝の3時までがんばりました」と言うアプリケーションは、フロントエンドをPCのマイクロフォンが拾った自然言語を機械翻訳してkubectlにコマンドとして引き渡すというもので、偶然にもGoogleのデモゴッド、Kelsey Hightower氏がやったデモに酷似したものであった。
ここで思い起こすべきなのは、JavaEEの向かうマイクロサービス化の将来構想として「MicroProfileによる機能実装」をミリッジ氏が解説したことだ。つまりJavaにおいてはMicroProfileに準拠した実装がこれから行われるという時に、Istioにおいてはすでにそれが実現されていることが何を意味するのか。Javaデベロッパーは「Write Once Run Anywhere」というマントラに固執することなく、ポリグロットな開発環境に移行を検討し、それぞれの言語の特性を活かした使い分けが求められていることを認識するべきだろう。マイクロサービスへの移行は、その良いきっかけになると思われる。
最後のセッションはAzul Systemsのサイモン・リッター氏が登壇し、2017年のJavaOneで紹介されたJavaのサポートに関して解説を行った(ソフトウェアに関するセッションで、ソフトウェアのサポートの詳細について解説することがひとつのコンテンツとして成り立つこと自体が異常であろう)。
Sunで生まれた後、Oracleという企業の配下になったJavaというテクノロジーは、最終的にオープンソースソフトウェアとして生きる道を見つけたことになるが、これまで数年単位でメジャーバージョンアップを行ってきたJavaが、他のオープンソースソフトウェアに倣って6ヶ月ケーデンスでリリースを行うというのは大きな変化だ。しかもサポートは常に最新のLTSのみ、つまり脆弱性などのFixを取り込もうとすれば、常に最新のJavaを使うことが必要になる。これはエンタープライズにとっては大きな変化であり、チャレンジとなるだろう。
このセッションを担当したAzul Systemsは、Oracleを上回る手厚いサポートを提供することで利益を出す企業で、セッションの後半は自社サービスの宣伝となった。
日本法人を作ることでエンタープライズに食い込みたいというPayaraとHazelcastの狙いは、イベント全体を通して感じられた。その一方で、JavaEE、もしくはEE4Jがこれからマイクロサービスに向かうためには、まだまだ時間がかかると思われる。コミュニティの活性化が必須だが、その間にKubernetesとIstioがあっという間にデファクトスタンダードの地位を確立してしまうだろう。Javaデベロッパーは、今のうちにKubernetesとIstio、Prometheus、Jeagerを勉強することをお勧めしたい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- AOMEI Technology、パーティション編集ソフト「AOMEI Partition Assistant 7.0」をリリース
- AOMEI Tech、OS・ユーザデータのバックアップツール「AOMEI Backupper 6.1」をリリース
- AOMEI Tech、OS・ユーザデータのバックアップツール「AOMEI Backupper 6.1」をリリース
- AOMEI Tech、バックアップツール「AOMEI Backupper 6.4」をリリース
- AOMEI Tech、OSやユーザデータをバックアップ・クローンできる「AOMEI Backupper 5.9」をリリース
- AOMEI Tech、OSやユーザデータをバックアップ・クローンできる「AOMEI Backupper 6.0」をリリース
- パーティション編集ツール「GParted 1.0.0」リリース
- パーティション編集ツール「GParted 1.2.0」リリース
- パーティション操作専用ディストリビューション「GParted Live 1.6.0-3 Stable Release」リリース
- Oracle Database 12c Release 1のインストールとDB作成