Jump to section

Quarkus とは

URL をコピー

Quarkus は、Java 仮想マシン (JVM) およびネイティブコンパイルのために作成されたフルスタックの Kubernetes ネイティブ Java フレームワークで、Java をコンテナに最適化し、サーバーレスクラウドKubernetes の各環境で効果的なプラットフォームとして使用できるようにします。

Quarkus は、一般的な Java 標準、フレームワーク、および Eclipse MicroProfile、Spring、Apache Kafka、RESTEasy (JAX-RS)、Hibernate ORM (JPA)、Spring、Infinispan、Camel およびその他多数のライブラリと連携して機能します。

Quarkus のディペンデンシーインジェクション (依存性の注入) ソリューションは CDI (コンテキストと依存性注入) をベースとし、拡張フレームワークを備えているので、機能の拡張、およびフレームワークの設定、起動、アプリケーションへの統合が可能です。拡張機能の追加は依存性の追加と同様に容易で、Quarkus ツールを使用できます。

また、正しい情報を GraalVM (Java および JavaScript を含むさまざまな言語で作成されたアプリケーションを実行する汎用仮想マシン) に提供してアプリケーションをネイティブにコンパイルします。

 

Quarkus を使うべき 4 つの理由

Java™ は今でも多数の開発者に好まれるプログラミング言語ですが、Kubernetes やサーバーレスなどのクラウドネイティブ・テクノロジーの進化に伴い、課題が生じています。Quarkus が、開発者が Knative およびサーバーレスを扱うために必要な Java フレームワークである理由をご確認ください。

Quarkus は、最初から簡単に使える設計で、わずかな設定または設定不要で動作する機能を備えています。

開発者は任意の Java フレームワークを選択してアプリケーションで使用でき、アプリケーションは JVM モードで実行することも、コンパイルしてネイティブモードで実行することもできます。

開発者の使いやすさを主眼として設計された Quarkus には、次の機能も搭載されています。

  • 開発者がコード変更の影響を即座に確認してすぐにトラブルシューティングできる、ライブコーディング
  • 組み込みのマネージドイベントバスによる統一された命令型およびリアクティブ・プログラミング
  • 統一された構成
  • ネイティブ実行可能ファイルの容易な生成

アプリケーションがパブリッククラウドでホストされていても内部でホストされている Kubernetes クラスタ内にあっても、高速起動や低メモリー消費などの特長は、全体的なホストのコストを抑制するために重要です。

コンテナファーストの理念に基づいて構築されており、メモリー消費量を抑えて起動時間を短縮できるよう、次の方法で最適化されています。

  • 最高レベルの Graal/SubstrateVM のサポート
  • Build-time メタデータ処理
  • リフレクション使用の削減
  • ネイティブイメージのプリブート

つまり、Quarkus でアプリケーションを構築すると従来の Java と比較してメモリー使用量が 10 分の 1 になります。起動時間は高速になり (300 倍程度)、いずれもクラウドリソースのコスト削減に大きく貢献します。

Quarkus はアプリケーション開発時に、馴染みのある命令型コードとノンブロッキングでリアクティブなスタイルをシームレスに組み合わせています。

これは、命令型モデルの処理に慣れていてやり方を変えたくない Java 開発者にも、クラウドネイティブやリアクティブアプローチで作業する開発者にも便利です。

Quarkus 開発モデルは、どのようなアプリケーションを開発する場合でも自己適応できます。

Quarkus はサーバーレス・アーキテクチャ、マイクロサービス、コンテナ、Kubernetes、Function-as-a-Service (FaaS)、クラウドのすべてを考慮して作成されているので、これらからなる新しい領域で Java を実行する効果的なソリューションとなっています。

関連資料

記事

ステートフルとステートレス

あるものがステートフルかステートレスかは、別の何かとの通信の状態が記録される期間と、その情報をどのように保存する必要があるかによって決まります。

記事

Quarkus とは

Quarkus は、Java 仮想マシン (JVM) およびネイティブコンパイルのために作成された Kubernetes ネイティブの Java スタックで、Java をコンテナに最適化します。

記事

サーバーレスとは

サーバーレスは、開発者がサーバーを管理する必要なくアプリケーションを構築および実行できるようにするクラウドネイティブ開発モデルです。

クラウドネイティブ・アプリケーションの詳細はこちら

製品

統合されたテスト済みのサービス一式を備えたエンタープライズ・アプリケーション・プラットフォームであり、ユーザーの選ぶインフラストラクチャを使ってアプリケーションを市場に投入するために活用できます。

リソース

トレーニング

無料のトレーニング

Developing Cloud-Native Applications with Microservices Architectures