トップ OSS紹介 Quarkus

Quarkus

NRIのOpenStandiaが提供するQuarkus最新情報

バージョンアップ情報

Quarkus情報

Quarkusとは

Quarkus(カーカス)は、Red Hat社が開発しているオープンソースのJavaフレームワークで、アプリケーションの起動時間や応答時間を飛躍的に速くし、省メモリで実行することを実現します。Quarkusの開発は2019年に開始され、バージョン1.0.0が2019年11月にリリースされています。
従来のJavaのWebアプリケーションは、多くの場合、Spring FrameworkベースのWebアプリケーションをTomcatのようなJavaコンテナ上で動作させていました。その後、Tomcatを組み込むSpring Bootが主流となっていましたが、サーバーレスな環境(サーバーを管理することなくアプリケーションを構築・実行できるようにするクラウドネイティブな環境)においては、以下のような課題もありました。

  • アプリケーションの主目的を実現する以外に、Spring FrameworkとTomcatにより膨大な量のリソース(メモリとCPU)が使用されている
  • アプリケーションの起動に多くの時間がかかる
  • 定型コードが多い
  • 単体テストと統合テストの作成が簡単とは言えない
  • リソースが大きいため、スケールアウト(水平)とスケールアップ(垂直)が難しい
  • オンラインドキュメントは複雑で分かりにくい

このような点に配慮されて開発されたのが、Quarkusです。

主な特徴

Quarkusの公式サイトには、以下の特徴が挙げられています。

コンテナファースト

QuarkusはアプリケーションをGraalVMとHotSpot用にカスタマイズします。起動時間の高速化とRSSメモリの低減によって、Kubernetesのようなコンテナオーケストレーションプラットフォームで、瞬時のスケールアップと、高密度のメモリ利用を提供します。また、Quarkusはコンパイルタイムブートと呼ばれる技術を使用しています。

図:メモリ使用量や起動時間+応答性についての従来型アプリケーションの比較<br/>(出典:<a href="https://ja.quarkus.io/" class="c-link--innerTxt">https://ja.quarkus.io/</a>)
図:メモリ使用量や起動時間+応答性についての従来型アプリケーションの比較
(出典:https://ja.quarkus.io/

命令型とリアクティブ型の統一

命令型のコードとリアクティブなスタイルの両方を組み合わせて、アプリケーションを開発することが可能です。

コミュニティと標準仕様

Quarkusは50以上の各分野における最高のライブラリを活用することで、まとまりのよいフルスタックフレームワークを提供します。これらは全て、標準のバックボーンに接続されています。

Kube-Native

QuarkusとKubernetesの組み合わせは、スケーラブルで高速、かつ軽量なアプリケーションを作成するための理想的な環境を提供します。また、Quarkusは、ツールやビルドされた統合機能、アプリケーションサービスなどにより、開発者の生産性を大幅に向上させます。

開発者満足

Quarkusは、統一された設定と手間のかからないネイティブ実行可能ファイル生成により、開発者満足を最適化するための一貫したプラットフォームです。設定不要で非常に短時間のライブリロード、80%の一般的な用途には合理的なコードと20%の用途には柔軟なコードを提供します。

このような利点により、Quarkusは非常に注目を集めており、GitHubのスター数も公開から3年で1万に達しています。

類似プロダクト

Javaのコンテナを含むWebアプリケーションのフレームワークという視点では、Quarkusと同類のソフトウェアとしてもっとも有名なものはSpring Bootです。ただし、負荷の状況に応じてスケールアウトできるマイクロサービス、クラウドネイティブなアプリケーションの開発においては、起動の遅さやメモリの過度の消費などの面でQuarkusの方が利点が多くあります。Quarkusと同様にマイクロサービス、クラウドネイティブなアプリケーションの開発を意識して開発されたソフトウェアにはMicronautなどもあります。

Quarkusのライセンス

Quarkusのライセンスは、Apache License 2.0となっており、ユーザーはそのソフトウェアの使用や頒布、修正、派生版の頒布をすることに制限を受けません。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • WildFly
    サポート対象

    WildFly

    ワイルドフライ。マルチプラットフォームで動作するJava EEコンテナです。

  • Spring Boot
    サポート対象

    Spring Boot

    スプリング ブート。Springフレームワークのアプリケーションを簡単に開発できるオープンソースのJavaフレームワークです。

  • Kubernetes
    サポート対象

    Kubernetes

    クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。