InfoQは10月にJAXLondon 2017に出席した。鍵となるハイライトの1つはIBMのEmily Jiang氏による話だった。Eclipse MicroProfileと呼ばれるEclipseベースの共同プラットフォームに光を投げかけている人物である。この話ではEclipse MicroProfileの大まかな歴史をカバーし、その耐障害性の詳細に入り、将来的な対象範囲の計画とJava開発者間でのコラボレーションをカバーした。
MicroProfileはマイクロサービスを設定する手助けのために設計された技術である。MicroProfile 1.0は2016年9月に最初のリリースが行われた。Eclipse MicroProfile 1.1は(2017年8月にリリースされた)はEclipseファウンデーション下での最初のリリースであった。
MicroProfile 1.0はJava EE 7をベースとしてCDI + JSON-P + JAX-RSスタックを使用する。Eclipse MicroProfile 1.1では、新しくMicroProfile設定スタックがポータビリティへの手助けとして導入された。
Jiang氏はバージョン1.2として最近リリースされたばかりの最新のMicroProfileについてより深い洞察を出した。このリリースにはシングルコアのKubernetes環境へのデプロイメントによるアプリケーションの幅広いメトリクスやヘルスチェックを含む多くの新しい機能がある。1.2が提供する新しい大きな機能は耐障害性を達成する手助けである。またマイクロサービスがセキュアな環境で相互作用できる場所であるJWTがある。
次の大きなトピックは耐障害性のための新しいAPIだ。@Retryや@Timeout、@Bulkheadの議論が始まっている。@Bulkheadは隔離したスレッド(デフォルトで10)で動作し、システムの一部分での失敗がシステム全体をダウンさせないようにする。アプリケーションはまた@Asynchronousとともに@Bulkheadを使える。Bulkheadのスレッドスタイルを使うためだ。これは別のスレッドで呼び出しが実行されることを意味する。
新しい耐障害性と失敗検知サポートの一部として、MicroProfile 1.2には@CircuitBreakerがある。このアノテーションはサーキット(オープンサーキットしても知られる)内のどんな破損も即時失敗となるべきであるということをランタイムに伝える。閉じたサーキットは意図したとおりにサービスを呼び出すことになる。
APIはまた@Fallbackサポートを提供する。ここでは選択したサービスが利用できないときにデフォルトのサービスへフォールバックするようハンドラをプログラミングする。このサポートはアプリケーションレベルで提供される必要がある。下部のシステムがフォールバックを必ずしも提供できないからだ。
MicroProfileの耐障害性に関する議論の詳細で、Jiang氏はIstioプラットフォームを引用した。Istioからの耐障害能力を使う場合、MicroProfileの耐障害性はFallbackを除いてすべて動作させず、代わりにIstioの同等のものを使う。
Jiang氏はロードマップについて短く話した。そこでEclipse MicroProfile 1.3について言及した。続くEclipse MicroProfile 2.0の前にオープントレーシングとオープンAPIへのサポートを追加するだろうとのことだ。将来のリリースでは他のEE8技術へのサポートを加えてリリースされると期待してよいかもしれない。
締めくくりとしてJiang氏はOpenLibertyの短いデモを実施した。MicroProfile 1.2の機能を披露するためだ。すべての技術についてのさらなる詳細はEclipse Microprofileのウェブサイトにある。
Rate this Article
- Editor Review
- Chief Editor Action