LoginSignup
2
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-11-20

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

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

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

自己紹介

  • Exlipse foundationのBoardを務める

マイクロサービスの現状

  • Oracle CodeOneでMicroProfile.ioが受賞している
  • 新技術はエンタープライズに受け入れ難い。 <!-- 新技術はエンタープライズに受け入れ難い -->
    • 品質が課題ではないか。
  • マイクロサービスに期待すること
    • デプロイの期待が多い
    • カナリアリリース
      • 並行で動作させる。
      • 新リリースが問題あれば既存リリース
      • 今日はカナリアリリースがテーマ

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

  • 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; // タイマークローズと計測終了

  • 何回かアクセスすると、メトリクスを見ることができる
    • /metrics で確認可能
  • これをもう少し見やすくするために、prometeusが活躍する <!-- メトリクス監視内容 -->
  • grafanaというのも使うことができる
    <!-- grafana -->

    • これは色々なデータソースを見ることができる
    • 今回はprometeusを使う
      • prometeusのURLを指定してデータを収集する
    • DashBoardで、色々データをカスタマイズすることができる
      • リクエストの最大、平均などをリクエストごとに算出、比較することができる
    • 負荷をかけるとこんな感じでメトリクスを見ることができる(写真)
  • 何も設定していないと、来々軒のせいで北京飯店がアクセスに8.6sほどかかる

  • オーダーと来々軒にタイムアウトを設定する(マイクロプロファイルのアノテーション)

    @Timeout(100)
    ...
    Thread.interrupted();
    return shop + "is bussy";

  • タイムアウトが起こることで、北京飯店の影響はどうなるか?

    • 8.0sくらいに知人だ
  • サーキットブレーカーを入れるとどうなるか?

    @CircuitVreaker successThreshold = 5, ...

  • タイムアウトが起こるとサーキットブレーカが失敗と判断する

    • 失敗したときのリトライ設定なども行うことができるs
  • サーキットブレーカーを入れることで8.0s → 2.3sほどに短縮された

まとめ

  • 監視、表示は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

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

<!-- Eclipse Foundation -->
- 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

Technical Direction Guiding Principles

High Level Roadmap

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

  • Code First
  • regerens compatitations... <!-- -->

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

  • Reactive Streamsが追加されていく予定である(Springはもうある...) <!-- --> <!-- -->

Eclipse Open J9

JIT compiler Per Microservice

  • Cloud native
    • マイクロサービスではJavaのアプリケーション、メモリを多く消費する
    • JVMの初回起動は一般的に重くなるが
      • マイクロサービスにおいては初回起動が多く発生するため、なんとかしたい
    • OpenJDKに比べて、Open J9では性能が40%アップしている
    • 参考記事

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のほうが早いなあとの印象を受けました。
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1