SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「Oracle Code One 2018」レポート

OSSのサーバーレスプラットフォーム「Fn Project」、Javaを倍速にする「JIT as a Service」~クラウドネイティブ最新事情【Oracle Code One 2018】

  • X ポスト
  • このエントリーをはてなブックマークに追加

Day3 Keynote:IBM Keynote & Java Community Keynote

 ここからは、イベント終盤となる三日目に行われた、最後のキーノートについて紹介します。その構成は例年通り、前半をDiamond SponsorであるIBMが担当し、後半はコミュニティによる寸劇が行われるという流れでした。

社会活動から言語仕様の策定まで。マクロ/ミクロ両輪でのコミュニティ貢献――IBM Keynote

 30分余りの短いセッションの中では、IBMのコミュニティ活動について概略的に紹介がなされました。社会に向けたCode for Code[3]という取り組みや、Eclipse FoundationにおけるJakarta EEやMicroProfileなどのエンタープライズJavaフレームワークへの活動、そしてAdoptOpenJDK(第2回レポート参照)へのスポンサード。モデレーターのPratik Patel氏(Atlanta JUG President、IBM Lead Developer Advocate)が、各活動の関係者を入れ替えながら次々と紹介していくことで、IBMとしていかに多方面からコミュニティへ貢献しているかがアピールされました。

[3] Call for Code:「コード」によってエンジニアの手で世界中を変革することを、長期にわたり推進する活動。初回は「自然災害」をテーマにアプリ開発のコンペが行われた

 登場したテーマで注目されるものを抜粋していきます。まず取り上げたいのは、MicroProfileの今後に関する情報です。MicroProfileはマイクロサービス向けの機能に特化したフレームワークですが、同団体で扱うJakarta EEにゆくゆくは取り込んでいくという発言がありました。これまでもその意図があると各所で言及されていたものの、今回このキーノートという場で明言されたということは、コミュニティによる意思と判断できる状況に到達したと見てよいでしょう。

 2つ目の注目テーマはOpenJ9です。IBMがEclipse Foundationに寄贈しOSS化した、同社独自のJVMですが、既存のものに比べたパフォーマンスの優位性について提示されました。OpenJDKとOpenJ9の組み合わせは、既存環境と比較してメモリフットプリントが50%減少し、起動は42%高速化、さらにピーク時の処理速度は3倍になるとのこと。これはかなりインパクトの強い数値で、おそらくユースケースによって異なることが見込まれます。正確な評価はこれからユーザーによって行われていくところではありますが、OpenJ9の使用を検討する動機の一つとしては十分な情報と言えるでしょう。

メモリフットプリント、起動時間、処理速度。いずれも飛躍的な性能向上が見込まれるという
メモリフットプリント、起動時間、処理速度。いずれも飛躍的な性能向上が見込まれるという
華やかすぎる性能数値について、司会から出た「信じられない」という指摘に対し、「自分以外の多くの人も実感している」として提示されたTweet引用
華やかすぎる性能数値について、司会から出た「信じられない」という指摘に対し、「自分以外の多くの人も実感している」として提示されたTweet引用

 3つ目の注目テーマは「JIT as a Service」です。こちらはより業界影響の大きい技術となりうるものでしたので、詳細に見ていきます。

「JIT as a Service」――クラウドにおけるJVMの「解答」

 どのような構想であるかは、スライドを追うと一目瞭然です。まずは見ていきましょう。

クラウド環境で水平スケーリングを行うと、複数のJVMが起動され、全く同じコードをそれぞれがコンパイルする事態となってしまう

クラウド環境で水平スケーリングを行うと、複数のJVMが起動され、全く同じコードをそれぞれがコンパイルする事態となってしまう

リソースの無駄を回避する方法のひとつは、AOTで事前コンパイルしたコードを共有すること。しかし、AOTはJITに比べ最速の選択肢とは言えない
リソースの無駄を回避する方法のひとつは、AOT[4]で事前コンパイルしたコードを共有すること。しかし、AOTはJIT[5]に比べ最速の選択肢とは言えない
そこで各JVMからJITを分離し、クラウドサービス化して利用することを提案
そこで各JVMからJITを分離し、クラウドサービス化して利用することを提案

[4] AOT:Ahead-Of-Timeコンパイラ。事前にコンパイルする方式。実行時のコンパイルが不要となるため、JVM起動直後のアプリケーション処理速度は一般にJITより高速になる

[5] JIT:Just-In-Timeコンパイラ。実行時にコンパイルする方式で、Javaでは一般にこちらが用いられる。実行状況を分析して随時再コンパイルし最適化するため、実行が繰り返されるたびに処理速度は高速化していく

 JITをサービス化することによるメリットとして挙げられたのは、まず第一に、同じコードを各JVMにて個別にコンパイルする必要がなくなるということ。これにより性能向上はもちろん、クラウドリソースを浪費しないという点でコスト削減も見込まれます。もう一つのメリットは、各JVMのサイズも縮小されること。その特長はコンテナ型仮想化などとの相性を高めるでしょう。そして三点目として挙げられたのは、JITそのものが他のクラウドサービスにアクセスできるようになるということです。それによって実現する「よりスマートなJIT」は、人工知能やアナリティクスを活用し、JITの性能や機能性をより高める、という構想が述べられました。

 壮大な構想に「実現までに何年かかるのか」と問うた司会者への回答代わりとして、現状のパフォーマンスを示すデモが行われました。グラフのみの提示でアプリケーション特性などの説明はなく、あくまで参考値になるかと思いますが、今後に期待のかかる数値でした。

デモの様子。右上のグラフから、JIT as a Serviceを適用した緑のスループットが他より大幅に高いことが見て取れる。また、左上のグラフではOpenJ9(青)のメモリフットプリントが、先の説明の通り他の半分に近いことも確認できる
デモの様子。右上のグラフから、JIT as a Serviceを適用した緑のスループットが他より大幅に高いことが見て取れる。また、左上のグラフではOpenJ9(青)のメモリフットプリントが、先の説明の通り他の半分に近いことも確認できる

次のページ
今年もあった「お遊戯会」――Java Community Keynote

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
「Oracle Code One 2018」レポート連載記事一覧

もっと読む

この記事の著者

西野 大介(SOMPOホールディングス株式会社)(ニシノ ダイスケ)

 SOMPOホールディングス株式会社デジタル戦略部(SOMPO Digital Lab)勤務。損保ジャパン日本興亜グループにおける先進技術の研究開発を担当。過去には基幹システムの開発にも従事し、SoR/SoE双方の開発において幅広い経験を持つ。本業以外では、CodeZineの連載をはじめ、国内/海外の各種カンファレンスへの登壇や企業向けの講演にてテクノロジー情報を幅広く提供している。主な登壇実績:IBM THINK(米ラスベガス)、Java Day Tokyo、IBM THINK Ja...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11359 2019/03/13 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング