概要
Java™ は依然として開発者の間で最も人気のあるプログラミング言語ですが、コンテナと Kubernetes に関しては欠点があります。Quarkus によって、現在 700 万人を超える Java 開発者が、習熟しているフレームワークで新しいアプリケーションの構築を続けられています。
Red Hat OpenShift で Quarkus を使用する理由
Quarkus アプリケーションはコンテナでの実行が意図されており、デプロイをさらに容易にするために Red Hat OpenShift には Quarkus がネイティブで統合されています。Red Hat OpenShift 上の Quarkus では、開発者は使い慣れたツールを利用したり、Red Hat CodeReady Workspaces などの IDE を使用したクラスタ上でのリモート開発、マネージド構成との統合、サーバーレス・ワークロードのデプロイ、アプリケーション・ストレージの管理を実行したりできます。
Quarkus は、汎用 API クライアントや Kubernetes ConfigMaps を使用した動的アプリケーション構成など、Kubernetes API との統合も可能です。Red Hat OpenShift を購入すると、Quarkus の Red Hat サブスクリプションとサポートが付属します。
Red Hat のリソース
Quarkus と開発者の生産性
Quarkus は開発者を念頭に置いて設計されています。開発者の生産性とは、状況が激しく変化し続ける市場に、新しいアプリケーションを迅速に開発およびデプロイすることで、よりすばやく対応できることです。Quarkus は、迅速な内部ループ開発向けのライブコーディング、Red Hat CodeReady Workspaces などの IDE 統合、従来の Java 標準を超える API などの機能により、開発者の生産性向上を支援します。Quarkus によって開発者は、MicroProfile などの標準、Spring Framework API、その他の既存の一般的なフレームワークを組み合わせて使用し、Kubernetes で Quarkus の効率性を活用できます。
Spring Boot アプリケーションを Quarkus に移行する方法
現在の Spring Boot アプリケーションの Quarkus および Red Hat OpenShift への移行は、考えているよりも簡単に実行できます。アプリケーション移行ツールキット (MTA) を使うと、多様な変換パス (Java EE、JDK、Linux、コンテナ化、Quarkus など) に対応するソースコード、さらにはバイナリーを分析して Java アプリケーションのポートフォリオを確認でき、移行プロセスを迅速に進められます。
Spring Boot から Quarkus への移行に対する広範なサポートは、MTA リリース 5.1 で提供されます。
Quarkus とは
Quarkus は、従来の Java 仮想マシン (JVM) 上で実行されるか、ネイティブにコンパイルされた実行可能ファイルとして実行される、Kubernetes ネイティブの Java アプリケーションを構築するためのフレームワークです。Quarkus は、起動時間とメモリー使用量を最小限に抑えて、既存の Java フレームワークおよび開発者ツールと統合して、アプリケーションの開発とデプロイを迅速化します。Quarkus は、サーバーレス、マイクロサービス、コンテナ、Kubernetes、その他のアプリケーションタイプを扱う Java アプリケーションをハイブリッドクラウドで実行するのに役立ちます。
Quarkus のコンセプト
Quarkus は、OpenJDK などの従来の Java 仮想マシン (JVM) ランタイム向けのコンパクトで効率的なアプリケーションを作成するために設計され、ネイティブな実行可能バイナリーを作成してさらなる最適化を可能にします。ここで重要なことは、ビルドの段階でできるだけ事前作業をしておくことで、この作業はアプリケーションのライフタイムの中で 1 回しか発生しません。ビルド段階で、Quarkus はまずアプリケーションを従来の Java バイトコードにコンパイルし、続いて、構成のロードと解析、アノテーションの処理、フレームワークのメタモデルの構築を行って、すべてを従来の実行可能 Java アプリケーション (JAR ファイル) にまとめます。アプリケーションが起動するランタイムでは、これらのステップを実行するためのメモリー、CPU、時間のいずれも必要ではないため、起動時間が大幅に短縮されます。
ネイティブコンパイル
Quarkus アプリケーションをネイティブ実行可能ファイルにコンパイルすることで、さらに効率を向上できます。Mandrel (GraalVM のダウンストリーム・ディストリビューション) を使用してアプリケーションを分析し、「デッドコード」(ランタイムでアクセスされることのないコードパス) を検出し、これをアプリケーション実行可能ファイルから取り除きます。これによって、起動時間が数十ミリ秒、ランタイムで必要なメモリーが数十メガバイトのコンパクトで軽量なアプリケーションになります。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。