【東京】JJUGナイトセミナー「Jakarta EE特集 - Mike Milinkovichさん(Eclipse Foundation代表)来日記念」に参加してきました(2018/11/19)


【東京】JJUGナイトセミナー「Jakarta EE特集 - Mike Milinkovichさん(Eclipse Foundation代表)来日記念」

MicroProfileを利用したクラウドネイティブでのエンタープライズ品質(数村憲治さん)

  • jakartaEEになって、富士通さんが最初のコントリビューターになっていた。 日本もまだまだやる気である。実はアルファベット順だった。

自己紹介

  • Exlipse foundationのBoardを務める

マイクロサービスの現状

サービスは均一でない問題

  • SLAの高い低い
  • プロダクトリリースとカナリアリリース
  • SLAの低いサービスのデプロイでSLAの高いデプロイを汚染しては行けない

クックパッドの例

  • 開発者ブログ
  • service Meshを行った
    • どのサービスとどのサービスが通信していて、サービスの影響範囲が分かりづらい
    • タイムアウトリトライ、サーキとブレーカー、など、どこにどんな設定をしているかをアプリケーションを個別にかんしする
    • ここでservice meshを入れた
  • Envoy , Prometeus, Grafana...で監視した
    • 1hに5,6件のtrivialエラーが出てたが、劇的に少なくなった

マイクロサービスの課題

  • 解決しないと行けないが、明確な答えはない

Kayentaという解決策

  • 自動カナリア分析ツール
  • マイクロプロファイルはこことうまく付き合っていくことが大事

仮想フードコートの例

4つのサービス、Jax-RS

  • 受付サービスはオーダーサービスに流すだけ
  • オーダーサービスは、きた店によって振り分けることを行う

fujitsu launcherというマイクロプロファイルの設定を行う? 起動する

Jaeger UIを使う

  • リクエスト数ごとにトレースを見ることができる
    • リクエストリソースや、時間を見ることができる

来々軒の追加

  • ただし2回に1回は3s遅延するように実装する

メトリクスを取る

その際に以下のコードを仕込む

@Metric Timer pekinTimer;
@Metric Timer rairaiTimer;

... 中略

Timer.Comtext timer = null;
timer = pekinTimer.time(); // ストップウォッチが開始する
timer = rairaiTimer.time() // ストップウォッチが開始する

if(time != null)
    timer.close; // タイマークローズと計測終了

まとめ

  • 監視、表示はPrometheus/Grafanaがデファクト化
  • カナリアリリース判定・分析の研究は活発である
  • MicroProfileを使うと、Prometheus/Grafana対応が容易
    • 最新の研究成果がそのまま利用可能になる

質疑応答

  • JakartaEEとマイクロプロファイルの統合はあり得るのか?
    • 最終的には一緒の方向
    • 今はまだその時期ではない。
      • マイクロプロファイルがJakartaEEのプロファイルになるのでは?
  • 日本ではマイクロプロファイルはピンときていない
    • globalでも状況は変わらない
    • マーケットを広げるためには...?
      • Springが先行している。
      • ようやく reactiveが来年2月、その後にブレイクするのでは??

The Future of Cloud Native Java by Mike Milinkovich-san

CloudでJavaを使う

  • javaEEがEclipse Foundationに寄贈されて、JakaltaEEとしてリスタートされるお話が聞けるかもしれない
  • Eclipse Foundation、IDEだけではない!

Eclipse Foundationは何をしているか?

  • infrastructure
  • community Development
  • process & governance
  • IP Management & Licensing

他のプロジェクトと何が違うか

<!-- -->
- Linux Foundation
- GitHub
- Apache Foundationとの比較

An international Community

  • ドイツ、アメリカ、フランス、カナダと続く

Coloud Native Java

  • mictoprofile
  • vertx
  • Jakarta EE
  • Open j9

  • これからはクラウドやk8sを利用したJavaが活発になるだろう

Jakarta EE

  • JavaEEはなくなり、JakartaEEと移管された
  • Strategic Members
    • 富士通、IBM、ORACKE、redhat, pauara, tomitribe...
  • Participation Members
    • could bees, picotal, みずほ, Microsoft, SAP...

Working Group

  • Industry consortium that ...
  • Bendor Netural

Recent Accomplishments

  • 39 new Eclipse projects
  • JavaEE 8 TCK agreement completed with oracle

TCK is now open sourced

Technical Direction Guiding Principles

High Level Roadmap

Guiding Principles (JCPは何が違うのか)

What is Eclipse MicroProfile?

  • オープンソースコミュニティ specification for Enterprise Java microservices→

implementations

  • redhat IBM oracle ...

microprofile 2.1(Oct, 2018)

  • Open Tracingが1.2に変更
  • その他は2.0と同じ

Other news in this

Eclipse Open J9

JIT compiler Per Microservice

Cloud Nation Open Innovation

  • Jenkins GithubのようなWebベースで設定できるIDE
  • IoTコミュミティ
    • hono IoTメッセージ (NTT Data Cloudではやく動く?)

質疑応答

pipovtalがJakartaEEの参加者であることに疑問(Participete)

  • マーケティングpeopleとテクノロジーpeopleが存在する
  • モノリシック アプリケーションサーバーというイメージがあるが...
    • しかしJavaEEはツールキッドである
    • JPA JAX-RS の企画を作る上でPivotalとても大事な存在
    • Springとコラボレートもしている

マイクロプロファイルは大きくなりすぎるのでは

  • テクニカルの仕事なのでなんとも言えない
  • ただ、小さくするのは大事だ
  • しかしSpringだってFatじゃないか!

IntelliJ J の急成長をどう見ているか?

  • google switched IntelliJとeclipseをスイッチしている
  • eclipseは 100% IBMが開発している
    • しかしとても多くのコミュニティがある
    • 参考記事
  • eclipseはJunoで windows vistaで動かないバグを生み出した
  • vs code はいいが、not visual studioである
  • このように、EclipseとIntelliJの違いはあるだろう

なんでJakartaという名前にしたの

公式サイトはこちら

所感

  • Springではすでに取り入れられているReactive、ServiceMeshなどがMicroProfileにはまだないため(2019/2頃予定)、やはり足並みはSpringのほうが早いなあとの印象を受けました。