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の公式サイトには、以下の特徴が挙げられています。
- コンテナファースト
QuarkusはアプリケーションをGraalVMとHotSpot用にカスタマイズします。起動時間の高速化とRSSメモリの低減によって、Kubernetesのようなコンテナオーケストレーションプラットフォームで、瞬時のスケールアップと、高密度のメモリ利用を提供します。また、Quarkusはコンパイルタイムブートと呼ばれる技術を使用しています。
(出典:https://ja.quarkus.io/) - 命令型とリアクティブ型の統一
命令型のコードとリアクティブなスタイルの両方を組み合わせて、アプリケーションを開発することが可能です。 - コミュニティと標準仕様
Quarkusは50以上の各分野における最高のライブラリを活用することで、まとまりのよいフルスタックフレームワークを提供します。これらは全て、標準のバックボーンに接続されています。 - Kube-Native
QuarkusとKubernetesの組み合わせは、スケーラブルで高速、かつ軽量なアプリケーションを作成するための理想的な環境を提供します。また、Quarkusは、ツールやビルドされた統合機能、アプリケーションサービスなどにより、開発者の生産性を大幅に向上させます。 - デベロッパージョイ
Quarkusは、統一された設定と手間のかからないネイティブ実行可能ファイル生成により、開発者満足を最適化するための一貫したプラットフォームです。設定不要で非常に短時間のライブリロード、80%の一般的な用途には合理的なコードと20%の用途には柔軟なコードを提供します。
このような利点により、Quarkusは非常に注目を集めており、GitHubのスター数も公開から3年で1万に達しています。
Quarkusのライセンス
Quarkusのライセンスは、Apache License 2.0となっており、ユーザーはそのソフトウェアの使用や頒布、修正、派生版の頒布をすることに制限を受けません。
Quarkusのライセンスについてご不明な点がありましたら、お気軽にお問い合わせください。
Quarkusと同類のソフトウェア
Javaのコンテナーを含むWebアプリケーションのフレームワークという視点では、Quarkusと同類のソフトウェアとしてもっとも有名なものはSpring Bootです。ただし、負荷の状況に応じてスケールアウトできるマイクロサービス、クラウドネイティブなアプリケーションの開発においては、起動の遅さやメモリーの過度の消費などの面でQuarkusの方が利点が多くあります。Quarkusと同様にマイクロサービス、クラウドネイティブなアプリケーションの開発を意識して開発されたソフトウェアにはMicronautなどもあります。
関連OSS
参考情報
Quarkusのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。