Javaフレームワーク「Quarkus」登場。Javaコードからネイティブバイナリを生成し瞬時にJavaアプリが起動、コンテナへの最適化を実現。Red Hatがリリース

2019年3月12日

Red Hatは、Kubernetesなどのコンテナ環境に最適化されたJavaアプリケーションを実現するフレームワーク「Quarkus」を発表しました

fig

Red HatはQuarkusの目的を、Kubernetesやサーバレス環境においてJavaを先進的なプラットフォームにすることだと説明しています。下記はQuarkusを発表したブログの記事から引用。

The goal of Quarkus is to make Java a leading platform in Kubernetes and serverless environments while offering developers a unified reactive and imperative programming model to optimally address a wider range of distributed application architectures.

Quarkusのゴールは、Kubernetesやサーバレスなどの環境において、分散環境の幅広いアプリケーションアーキテクチャに適合するため、デベロッパーに対してリアクティブとインペラティブなプログラミングモデルを統合して提供することで、Javaを先進的なプラットフォームにすることだ。

インペラティブとリアクティブの両モデルに対応したプログラミングが可能

Quarkusの特徴は、具体的には2つ分かれています。

1つはプログラミングにおけるフレームワークとしてのQuarkusで、プログラミングにおいてインペラティブ(Imperative)なモデル、すなわち実行すべき命令を1つ1つ順番に記述していく比較的伝統的といえるモデルと、リアクティブ(Reactive)なモデル、すなわち(説明するのが難しいのですが)扱っている値の変更や関係性を中心に記述する最近注目されているモデルの両方を可能にするというもの。

また、既存の優れたJavaライブラリに対応するフルスタックのフレームワークだと説明されています。

Javaコードからネイティブバイナリを生成、瞬時にJavaアプリが起動するコンテナ

そしてQuarkusのもう1つの特徴が、Javaアプリケーションのコードからネイティブバイナリを作成し、コンテナ化することで瞬時にJavaアプリケーションが起動し、メモリ消費量も少ない、コンテナやKubernetes環境に最適化された実行形式を実現できることです。

fig QUARKUS - BUILDING A NATIVE IMAGE」の図を引用

これはQuarkusのフレームワークを用いて開発されたアプリケーションをコンパイルして生成されたファイルを基に、GraalVM内のコンパイラを用いて実行可能なネイティブバイナリを生成、コンテナ形式にパッケージするという機能です。

GraalVMとは、オラクルがオープンソースとしてリリースした多言語対応のVMです。

参考:オラクル、JavaやJavaScript、Ruby、Pythonなど多言語対応を単一ランタイムで実現する「GraalVM」をオープンソースで公開。Twitterが本番環境で採用

Red Hatのテストでは、簡単なデモアプリケーションが0.008秒で起動したことが紹介されています。

これまでJavaアプリケーションはJavaVMの起動時間のオーバーヘッドなどがかかるため、軽量なコンテナ環境を十分に活かすことが難しいと考えられてきました。

QuarkusはこうしたJavaの課題を解決すべく、プログラミングモデルの面で分散環境に対する柔軟性を持たせ、実行環境においては瞬時に起動しメモリ利用量もスリムにするもので、注目に値するフレームワークだといえそうです。

Javaのエバンジェリストでもあるマイクロソフトの寺田氏も、自身のブログでQuarkusを「まさにこれを待っていた!!という技術でした」と紹介しています。ぜひあわせてご覧ください。

関連記事

2020年6月、Red Hatが商用サポートの開始を発表しました。

あわせて読みたい

Java Kubernetes コンテナ型仮想化 プログラミング言語




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本