The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.

Quarkus 1.13リリース - DevServices、Kubernetesサービスバインディング、OpenTelemetry

本日、Quarkus 1.13.0.Finalがリリースされました。

今回のリリースでは、いくつかの新機能が追加されました。

  • DevServicesはコンテナでテストを簡素化します。

  • OpenTelemetryは、2つの新しいエクステンションを通じてサポートされています。

  • Kubernetes Service Bindingは、Kubernetes上へのデプロイを簡素化します。

  • RESTEasy Reactiveをベースにした新しいMicroProfile REST Clientを導入しました。

  • quarkus-jacoco では、テストカバレッジレポートを作成することができます。

また、いつものようにバグフィックスや小さな改良が随所に施されています。

移行ガイド

既存のアプリケーションを移行したいとお考えですか?ここでは、 1.13の移行ガイドをご紹介します。

変更点

DevServicesによるゼロコンフィグ設定

Quarkusでは、開発者の生活を楽にし、開発者の満足感を取り戻すことを主な目標としています。1.13では、Quarkusのレシピに新しい要素を追加しました(秘密ではありません)。それがDevServicesです。

開発モードの起動(ライブリロード)時に、テスト用のコンテナを自動的に起動できるようになりました。何も設定する必要はありません。コンテナは自動的にQuarkusの開発モード設定と紐づけられます。

例えば、PostgreSQLベースのアプリケーションを開発している場合、PostgreSQL JDBC extensionをpomに入れれば、Testcontainersを使ってテスト用のコンテナが開始されます。

本番用の設定を、 %prod. のプレフィックスで定義するだけでOKです。開発モード用のものは準備されています。

この新機能の詳細は、 データソースガイドに記載されています。

OpenTelemetry エクステンション

Cloud Native Computing FoundationOpenTelemetryプロジェクトは、OpenTracing と OpenCensus プロジェクトを統合し、すべてのテレメトリのための共通プロジェクトを提供する取り組みです。Tracing は先月 GA が行われた OpenTelemetry の最初の部分で、metrics と logging はまだ開発中です。

Quarkus 1.13では、OpenTelemetryの新しいエクステンション( quarkus-opentelemetry )が導入され、リクエストをトレースする機能が提供されています。トレースをJaegerコレクターにエクスポートするには、 quarkus-opentelemetry に依存する quarkus-openeltemetry-exporter-jaeger を使用してください。この初期バージョンでは、JAX-RS Resourceメソッド、REST Client、およびReactive Messaging with Kafkaでトレースが利用できます。他のエクステンションとの統合は、ガイドやクイックスタートと同様に、今後のリリースで行われる予定です。

Kubernetesサービスバインディング

Quarkusは、 Service Binding Specification for Kubernetesを介したサービスのアプリケーションへのバインディングをサポートしています。具体的には、Quarkusは仕様の Application Projection部分を実装しており、適切に構成されたKubernetesクラスタで実行されるアプリケーションが、ユーザーによる設定を必要とせずにサービス(DatabaseやBrokerなど)を利用できるようになります。

現在、以下のQuarkusエクステンションがこの機能をサポートしています。

  • quarkus-jdbc-mariadb

  • quarkus-jdbc-mssql

  • quarkus-jdbc-mysql

  • quarkus-jdbc-postgresql

  • quarkus-kafka-client

  • quarkus-smallrye-reactive-messaging-kafka

このエクステンションのリストは、サポートされたバインディングを持つサービスがKubernetesで利用できるようになるにつれ、増えていきます。

サービスバインディングのサポートを有効にするには、現在サポートされているエクステンションの1つに加えて、アプリケーションの依存関係に quarkus-kubernetes-service-binding エクステンションを追加する必要があります。

そのために必要なことはすべて、 Kubernetesガイドに詳しく書かれています。

RESTEasy ReactiveベースのMicroProfile REST クライアント

私たちはRESTEasy Reactiveの体験をより豊かなものにするために、今回はRESTクライアントの面での取り組みを続けています。新しいRESTEasy ReactiveベースのRESTクライアントエクステンション quarkus-rest-client-reactive がQuarkus 1.13に搭載されています。

なお、RESTEasy Reactiveは、リアクティブなワークロードだけでなく、従来のブロッキングなワークロードにも使用できます。

Vert.xベースのWebsockets

これまでは、アプリケーションでWebsocketをサポートしたい場合は、Undertowに乗り換える必要がありました。

Quarkus 1.13では、 quarkus-websockets という純粋なVert.xベースのWebsocketsエクステンションが導入されています。

テストカバレッジレポート

Quarkusのアーキテクチャを考えると、Jacocoでテストカバレッジレポートを作成するのはそれほど簡単ではありませんでした。

Quarkus 1.13には、テストカバレッジレポートを自動的に生成する quarkus-jacoco が存在します。また、Mavenのセットアップも必要ありません。詳しくは、 改訂されたガイドをご覧ください。

@QuarkusIntegrationTest

@QuarkusIntegrationTest は、 @NativeImageTest (現在もサポートされています)を自然に進化させたもので、Quarkusのビルドによって生成されたアーティファクトを起動してテストするために使用することができ、(あらゆるタイプの)jar、ネイティブバイナリ、コンテナイメージのテストをサポートしています。詳細については、ドキュメントの この部分と、アノテーション自体のJavadocを参照してください。

完全な変更履歴

1.13.0.CR1および 1.13.0.Finalの完全な変更履歴はGitHubでご覧いただけます。

ADOPTERS.md

Quarkusの使用に関する情報を共有するために、リポジトリのルートに ADOPTERS.mdファイルを追加しました。

Quarkusを使用していて、私たちのブログでインタビューを受けたい場合、または単にこのファイルに追加したい場合は、私たちにご連絡ください。

コントリビューター

Quarkusコミュニティは成長を続けており、現在の コントリビューターは461名となっています。それぞれの方に深く感謝いたします。

特に1.13 releaseでは以下の方々に感謝いたします: adrien, Alexey Loubyansky, Andrii Pyvovarov, Andy Damevin, Ante Butić, antoniodvr, Auri Munoz, Bernhard Lutzmann, Bill Burke, Bruno Leonardo Gonçalves, Cem Nura, Chris Laprun, Christopher Chianelli, Clement Escoffier, David M. Lloyd, Davide D’Alto, Edoardo Vacchi, Emanuel Alves, Eric Deandrea, Erin Schnabel, essobedo, Falko Modler, Foivos Zakkak, Geoffrey De Smet, George Gastaldi, Georgios Andrianakis, Guillaume Le Floch, Guillaume Smet, Gytis Trikleris, Ioannis Canellos, ismail BASKIN, Jacob Middag, Jaikiran Pai, Jan Martiška, Jim Ma, JiriOndrusek, Johnnes Souza, Jonathan Meier, Jose, Josef Smrcka, Julien Ponge, Justin Lee, Katia Aresti, Ken Finnigan, Knut Wannheden, Ladislav Thon, Lena Brueder, Loïc Mathieu, Maciej Swiderski, manusa, Manyanda Chitimbo, markusdlugi, Martin Kouba, Martin Panzer, Matej Novotny, Matthias Andreas Benkard, Max Rydahl Andersen, Mayank Kunwar, Michał Szynkiewicz, mrizzi, PAPADOPOULOS Nikolaos, Peter Palaga, Philip Hayes, Phillip Krüger, Robbie Gemmell, Roberto Cortez, Rostislav Svoboda, ruromero, Sanne Grinovero, SaumyaSingh1, Sergey Beryozkin, Sergio Sivelli, Shaaf, shawkins, Simon Hofer, Stephen Nimmo, Steven Hawkins, Stuart Douglas, Stéphane Épardaud, Suleimenov Yelzhas, Thomas McWork, Timothy Power, Tobias Stadler, Vasilis Andritsoudis, Vincent Sevel, xstefank and Yoann Rodière.

参加のお誘い

私達は皆様からのフィードバックに重きを置いています。バグ報告、改善要望を是非お願いします。一緒に素晴らしいものを作り上げていきましょう!

Quarkusユーザーの場合でも、単に興味を持っているだけの場合でも、恥ずかしがらずにコミュニティに参加して下さい!: