Slide 1

Slide 1 text

Quarkus Technical Deep Dive 日本語 テクニカルセールス本部

Slide 2

Slide 2 text

モノリス Kubernetes-Native Java クラウド ネイティブ マイクロ サービス サーバレス イベントドリブン アーキテクチャ

Slide 3

Slide 3 text

“歴史的な” Enterprise Java スタック ハードウェア 仮想マシン アプリケーションサーバ 動的アプリフレームワーク アーキテクチャ モノリス デプロイメント 複数アプリ ライフサイクル 数ヶ月 メモリ      以上 起動時間     数 秒

Slide 4

Slide 4 text

仮想マシン アプリケーションサーバ 動的アプリフレームワーク アーキテクチャ マイクロサービス デプロイメント 単一アプリ ライフサイクル 数日 メモリ      数 以上 起動時間     数秒 変化無し “近代的な” Enterprise Java スタック

Slide 5

Slide 5 text

コンテナ・プラットフォーム ノード ノード ノード ヒープ ヒープ ヒープ ヒープ Java + コンテナに隠された事実

Slide 6

Slide 6 text

クラウドネイティブと サーバーレスのための 新しい スタックが必要

Slide 7

Slide 7 text

音速のように超高速な 素粒子のように超小さい

Slide 8

Slide 8 text

とは何か QUARK 素粒子 US コンピュータ科学で最も難しいこと

Slide 9

Slide 9 text

クラウドネイティブJava OS プロジェクトの エキスパートたち

Slide 10

Slide 10 text

差別化要素 開発者の喜び ライブ・コーディング 統一された設定 最高の組み合わせの標準とライブラリ 90以上の拡張機能 “Quarkusを搭載した” アプリケーション コンテナ・ファースト HotSpotとGraalVM用にアプリを仕立てる 高速起動時間と低 RSSメモリ サーバーレスに合う 命令型と反応型の統合 ブロッキングとノンブロッキングの統合 イベントバスを内蔵

Slide 11

Slide 11 text

メリット No. 1: コンテナ・ファースト 私たちは 1 分 の起動時間が 400 ミリ秒になった Quarkus + Native 12 MB Quarkus + JVM 73 MB Traditional Cloud-Native Stack 136 MB メモリ使用量を削減 Quarkus + Native (.016 secs) Quarkus + JVM (0.943 secs) Traditional Cloud-Native Stack (4.3 secs) 速い起動時間 小さなディスク使用量

Slide 12

Slide 12 text

開発者の喜びを最適化するため凝縮した基盤 : ● 基準などに基づいて ● 統一された設定 ● ライブコーディング ● の一般的な使用法のための合理化されたコード、 のための柔軟性 ● 手間のかからないネイティブ実行ファイル生成 メリット No. 2: Developer Joy 私たちの開発者は、自分たちの変更を見るために 〜 分待っていました。 ライブコーディングではこれがなくなりました。 待って。保存するだけでコードが実行されるの? Javaで?! そうでしょう?勝利のための超音速 Java!

Slide 13

Slide 13 text

メリット No. 3: 命令型とリアクティブ型を統合 ● 命令型とリアクティブの開発の両方を つのアプリケーションに統合 ● イベントバスまたは コンテキストを注入 ● ユースケースに適した技術を使用 ● イベント駆動アプリを基盤としたリアクティブシステムの重要性 @Inject SayService say; @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return say.hello(); } @Inject @Stream(”kafka”) Publisher reactiveSay; @GET @Produces(MediaType.SERVER_SENT_EVENTS) public Publisher stream() { return reactiveSay; }

Slide 14

Slide 14 text

メリット No. 4: 最高の組み合わせのフレームワークと標準 "Quarkusを導入すると、新しい技術を学ぶ必要がないので、初日から生産性が上がります。"

Slide 15

Slide 15 text

Supersonic, Subatomic 速い 燃えるような速さでスタート ミリ秒の速さ!

Slide 16

Slide 16 text

Supersonic, Subatomic Java Quarkus + ネイティブ (GraalVM) 0.016 秒 Quarkus + JVM (OpenJDK) 0.943 秒 Quarkus + ネイティブ (GraalVM) 0.042 秒 Quarkus + JVM (OpenJDK) 2.033 秒 伝統的なクラウドネイティブスタック 9.5 秒 伝統的なクラウドネイティブ・スタック 4.3 秒 最初の応答までの時間

Slide 17

Slide 17 text

Supersonic, Subatomic メモリ消費量を改善 展開密度を向上

Slide 18

Slide 18 text

Supersonic, Subatomic Java メモリ を 単位で表示、シングルコアマシンでテスト済み Quarkus + ネイティブ (GraalVM) 12 MB Quarkus + JVM (OpenJDK) 73 MB 伝統的な クラウドネイティブスタック 136 MB

Slide 19

Slide 19 text

Quarkus + ネイティブ (GraalVM) 28 MB Quarkus + JVM (OpenJDK) 145 MB 伝統的な クラウドネイティブスタック 209 MB メモリ を 単位で表示、シングルコアマシンでテスト済み Supersonic, Subatomic Java

Slide 20

Slide 20 text

クラウドネイティブ Java スタック + コンテナ コンテナ・オーケストレーション ノード ノード ノード ノード 上の 上の 上の 上の 上の 上の 上の ノード ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ ネイティブ サービスの可用性 と 応答時間 を犠牲にすることなく、 3倍 の密度の高いデプロイを実行できます。

Slide 21

Slide 21 text

QUARKUSは どの様に動くのか?

Slide 22

Slide 22 text

パッケージング (maven, gradle…) ビルド時 稼働時 ファイルシステムから 設定ファイルを 読む それを解析 クラスパスを調査し アノテーションされたクラ スを検索 機能を有効/無効にするた めにクラスをロードしようと 試みる モデルを構築 管理を開始 (スレッド, プール …) フレームワークはどの様に開始するのか?

Slide 23

Slide 23 text

Quarkus の方法 稼働時 ビルド時 ビルド時 稼働時

Slide 24

Slide 24 text

24 ahead-of-time, ビルド時, ランタイム コンパイル 準備 収集 結合と 組み立て 補強 ネイティブ コンパイラ で稼働できるイメージ ネイティブ 実行イメージ フレームワー ク 実行可能 アプリ ネイティブ アプリ

Slide 25

Slide 25 text

拡張機能 コア JIT (OpenJDK) HotSpot AOTC (GraalVM ネイティブイメージ)

Slide 26

Slide 26 text

JIT (OpenJDK HotSpot) 正しいデプロイメントに適したVM 高いメモリ密度の要件 高いリクエスト/秒/MB 高速な起動時間 最高の生の性能 (CPU) 最高のガベージコレクタ より高いヒープサイズの使用率 良く知られた監視ツール 一度コンパイルして、どこでも実行 標準JDKでのみ動作するライブラリ AOT (GraalVM native image) 最高のメモリ密度要件 最高のリクエスト/s/MB ヒープサイズが小さい場合 起動時間の短縮 サーバーレスの場合は数 10ms

Slide 27

Slide 27 text

Quarkus ツール - ビルド mvn io.quarkus:quarkus-maven-plugin:1.3.2.Final-redhat-00001:create \ -DprojectGroupId=org.acme \ -DprojectArtifactId=getting-started \ -DplatformGroupId=com.redhat.quarkus \ -DplatformVersion=1.3.2.Final-redhat-00001 \ -DclassName="org.acme.quickstart.GreetingResource" \ -Dpath="/hello" cd getting-started *コミュニティサポート *

Slide 28

Slide 28 text

Quarkus ツール - IDE VSCode Eclipse IntelliJ che.openshift.io

Slide 29

Slide 29 text

拡張できるエコシステム

Slide 30

Slide 30 text

活気のあるエコシステムの拡張機能

Slide 31

Slide 31 text

あなたの依存関係を追加 独自の依存関係を追加できますか? ● JVM上で動作 (OpenJDK) ● AOT上でもたぶん動作 (GraalVM) 独自の拡張機能を書く ● 依存関係を追加するように … ● ビルド時間の起動とメモリの改善 ● より良いデッドコードの排除 ● 開発者の喜び YES

Slide 32

Slide 32 text

使用事例 "Quarkusは理想的なランタイム ” 低メモリフットプリント+高速起動時間+小 ディスクフットプリント=Kubernetesネイティ ブのマイクロサービスに理想的なランタイム です Quarkusは、既存のモノリシックアプリケー ションをより小さく、疎結合のマイクロサービ スに分割して近代化するのに最適な選択肢 です Quarkusでは、非同期のリアクティブイベント ループを利用して、リアクティブなアプリケー ションを簡単に作成できます Quarkusでは、スケールアップやスケールダ ウン (0まで) が非常に高速であるため、サー バーレスアプリケーションを作成するための 理想的なランタイムです

Slide 33

Slide 33 text

がサーバレス環境で の動作を改善

Slide 34

Slide 34 text

サーバレスで採用される言語

Slide 35

Slide 35 text

Quarkus - Java スタックを最適化 最適化されたアプリフレームワーク アーキテクチャ デプロイメント 単一アプリ ライフサイクル ミリ秒から数日 メモリ      数 起動時間     ミリ秒 仮想マシン 選択肢

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

クラウド上でのクラウドネイティブアプ リ開発を促進: ✓クラウド上での開発を促進 ✓ コンテナの開発を簡素化 ✓ DevOpsを自動化 ✓ ツールとプロセスの標準化 ✓ 完全にサポートされたJDK サービスを立ち上げ JAVA WEB JBOSS WS JAVA/JAKARTA EE JBOSS EAP JAVA SE OPENJDK SERVERLESS Coming* SPRING SPRING BOOT JAVASCRIPT NODE.JS DISTRIBUTED DATA DATA GRID MESSAGING AMQ BROKER MICROPROFILE THORNTAIL, OPEN LIBERTY REACTIVE VERT.X SSO 認証 Red Hat Runtimes* JAVA.NEXT QUARKUS "既存のアプリ、未来のアプリ、そしてその間の変革をサポート" *Red Hat build of Quarkus は Red Hat Runtimes に含まれており、利用可能です。

Slide 38

Slide 38 text

Red Hat でのアプリケーション環境 "Quarkusはハイブリッドクラウドアプリのための次世代の Red Hatスタックを強化” Kogito Camel K AMQ Streams (Kafka) 3Scale API Registry CodeReady Workspaces Quarkus Data Grid SSO OpenShift Extensions (OpenShift, Kubernetes, container build)

Slide 39

Slide 39 text

追加の資料 顧客 資料 入門 コーディングを開始 コミュニティ Quarkus.io ガイド Blogs 開発者 対話形式のチュートリアル ビデオ Tips & Tricks (QTips) ブログと記事 ユーザの話

Slide 40

Slide 40 text

Thank You