What's new in Payara Server & Payara Micro 173?
Originally published on 15 Aug 2017
Last updated on 08 Nov 2017
MicroProfile
最大の新機能は Payara Server および Payara Micro おける Eclipse MicroProfile 1.1 のサポートです。私の前回のブログで触れたように、MicroProfile との互換性のため Java 8 が必須となりました。MicroProfile プロジェクトが独自に策定した最初の新 API である Config API が Java 8 を必要とするためです。
Config API の仕様はアプリケーションをパッケージしなおすことなく外部から再構成できるようにすることを意図しています。これは異なる環境によって設定が変わるようなケースで特に有効です。仕様で定められているデフォルトの ConfigSource (システム・プロパティ、環境変数、クラスパス上のプロパティ・ファイル) に加えて、Payara Server と Payara Micro の Config API 実装では以下の外部 ConfigSource もサポートします。
- domain
domain source は設定値を domain.xml に保持し、取得することができます。 - config
ここでいう "config" は Payara の構成を参照します。これには、DAS で用いる "server-config" や "myCluster-config" のような共有構成を用いることができます。 - server
この source は設定値をサーバー・インスタンスに保持し、取得することができます。 - application
application source はデプロイされた artifact を参照します。 - module
module source はアプリケーション内のモジュールです。 - cluster
"cluster" source は設定値を Hazelcast クラスターに保持し、取得することができます。 - jndi
設定値は JNDI に保持し、取得することができます。
これら追加の ConfigSource に関するヘルプを得るため、asadmin に各 ConfigSource の順序を取得・設定するコマンド (get-config-ordinal and set-config-ordinal) と各 ConfigSource 内のプロパティを取得・設定するコマンド (get-config-property and set-config-property) があります。
Payara Server 5
Payara Server 5 と Payara Micro 5 のスナップショットが Maven Central のスナップショット・リポジトリから利用可能です。これらは通常の四半期リリースのサイクルに沿っていますので、同期する Payara プロジェクト・バージョンにスナップショット・バージョン番号が付加されます。Payara Server 5 の Maven GAV coodinates は以下の通りです。
<groupId>fish.payara.distributions</groupId>
<artifactId>payara</artifactId>
<version>5.0.0.173-SNAPSHOT</version>
Payara Micro 5 の場合は以下となります。
<groupId>fish.payara.extras</groupId>
<artifactId>payara-micro</artifactId>
<version>5.0.0.173-SNAPSHOT</version>
代わりに、Docker イメージで始めることもできます。各リポジトリに 5-SNAPSHOT タグを追加しましたので、以下の docker コマンドで Payara Server 5 や Payara Micro 5 のインスタンスを起動することができます。
docker run -it payara/micro:5-SNAPSHOT
docker run -it payara/server-full:5-SNAPSHOT
docker run -it payara/server-web:5-SNAPSHOT
私達のもとに寄せられる Payara 5 の予定に関する多くの質問の 1 つが、いつ正式版がリリースされるのかというものです。幸いなことに、私たちは以下のマイルストーンをターゲットとして定めていることをお伝えできます。
- Payara 5-ALPHA
私達は Payara Server と Payara Micro 5 のアルファ版リリースの準備を進めているところで、まもなくご利用になれます。 - Payara 5-BETA
私たちは Payara Server と Payara Server 5 のベータ版リリースを今年最後の四半期リリース 174 に合わせて行うことにしています。 - Payara 5-FINAL
Payara Server と Payara Micro 5 の最初の完全サポート・リリースは、2018 年最初のリリース 181 に合わせて行います。
これが意味するところは、新年に Payara Server と Payara Micro 5 がコミュニティ・リリースとして始まり、Payara Server と Payara Micro 4 のコミュニティ・リリースが終了するということです。サポート契約をお持ちのお客様には 10 年サポート・ライフサイクルに従って Payara Server と Payara Micro 4 のビルドが引き続き提供されます。サポート契約をお持ちのお客様は定期的なリリースを Feature Stream であれば 2018 年まで受け取ることができ、Stability Stream ではこれを 2021 年まで延長することができます。
運用向けの機能追加
HealthCheck サービスはさらに拡張され、応答しないスレッドの検出機能が追加されました。既に設定した閾値を超える CPU 使用率となるスレッドの検出機能はありますが、応答しないスレッドの検出機能によって、指定した期間に進捗のない全てのスレッドに関してアラートを発することができるようになりました。これは、例えばデッドロックが起こった時などの追跡にとても有効です。リソース高負荷のメッセージを待つことなく、応答しないスレッドがすぐに通知されます。
Slow SQL Logger 統合を使用することで、サーバー・インスタンスにデプロイされたアプリケーションすべてについて、最も使用された SQL トレースおよび最も遅い SQL クエリーを記録することができます。この履歴記録はこれらのメトリクスの設定で構成することができます。これは特に複数のデータベースに JDBC または JPA で接続するアプリケーションに有効であり、パフォーマンス・チューニングにおいてボトルネックとなり得るものを特定しやすくなります。
開発者向けの機能追加
このバージョンには、Payara Arquillian コンテナが含まれています。普通に Payara へデプロイしたものをアプリケーションのテストに用いることができるのです。この Arquillian コンテナは Payara Server の REST インタフェースを用いて DAS に接続します。これによりコンテナは様々な形式のデプロイメント・シナリオに対応することができます。
そして、新しいこのリリースでは Weld (CDI) の開発モードが統合され、Payara Server または Payara Micro で有効にできるようになりました。この開発モードはプローブ・ツールによってサーバー・インスタンスがすべてのアプリケーション CDI コンポーネントを実行中に監視できるようにするものです。Payara Server では Web の管理コンソールからも Weld の開発モードを有効化でき、プローブ・ツールの UI インタフェースまたはサーバーの REST API からアクセスできます。より複雑な監視シナリオでは、プローブ・ツールのデータをJMX 経由で取得することも可能です。Payara Server は Wildfly や Tomcat と並んで Weld 開発モードを利用できる Web サーバーの互換性リストに掲載されています。
Docker ユーザー向けの機能追加
Payara 5 の Docker イメージをリリースするうえで、Docker イメージのユーザーは大きな新機能を期待していることでしょう。まず、データベースに依存するアプリケーションは現在ではデータベースが提供されるより前にデプロイすることが可能です。以前はデータベースより前にデプロイを行おうとすると、サーバーの実行は継続されるもののデプロイは失敗していました。アプリケーションをデータベースより前にデプロイできるようになったため、データベースが提供される時に通常の動作を開始します。これはマイクロサービス環境で便利な機能で、各サービスが互いを意識せずに利用可能となります。
サード・パーティのライブラリを Payara Server と Payara Micro へ動的に、コマンド 1 つで追加できるようになりました。Payara Micro では --addLibs パラメータを使用することで外部ライブラリの JAR を Payara Micro のインスタンスへ渡すことができます。Payara Server では add-library コマンドで外部ライブラリの JAR が利用可能になり、サーバーを再起動することなく動的にライブラリの JAR を読み込むことができるようになりました。この機能は、例えばデータベース・コネクタの JAR を必要な時に読み込めるようになるなど、とても便利なものです。ライブラリをディレクトリから読み込めるように、Payara Micro では --libDir パラメータも併せてサポートしています。
小規模な修正と機能拡張
- Jolokia ファン向けにREST ベース JMX 監視機能のテクニカル・プレビューを導入。
- アプリケーションがサーバー・イベントに反応できるよう CDI Eventbus Notifier を追加。
- Asadmin Recorder のパスワード対応。
- --deployFromGAV オプション (Payara Micro) の RAR ファイル対応。
- tar.gz 形式パッケージのビルドをリリース。
- サポート・ページのスタイルを変更。
- 80 以上のバグを修正。
コンポーネントのアップグレード
- Jersey を 2.25.1 にアップグレード。
- Jackson を 2.8.8 にアップグレード。
- Grizzly を 2.3.31 にアップグレード。
- Weld を 2.4.2.SP1 にアップグレード。
- HK2 を 2.5.0.b44 にアップグレード。
セキュリティ・フィックス
- [PAYARA-1790] - Backport GlassFish 5 branch security fixes
- [PAYARA-1863] - Fix CVE-2016-1000031 by upgrading Apache Commons fileupload to >= 1.3.3
Related Posts
Nugget Friday - Building Resilient Microservices with MicroProfile Fault Tolerance
Published on 08 Nov 2024
by Luqman Saeed
0 Comments
While we all want maximum uptime for our software systems, failures and downtimes are inevitable. However, these can be minimized and quickly resolved through comprehensive, robust and well-designed fault tolerance mechanisms. This Nugget ...
What’s New in the October 2024 Payara Platform Release?
Published on 09 Oct 2024
by Luqman Saeed
0 Comments
We're happy to announce the latest release of the Payara Platform, bringing significant improvements and updates across our Community and Enterprise editions (download Payara Enterprise trial here). This release focuses on enhancing security, ...