Submit Search
GraalVM Native Imageが見せた未来
0 likes
1,071 views
Rakuten Group, Inc.
Rakuten Technology Conference 2019 @Sapporo
Technology
Read more
1 of 21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
More Related Content
PDF
ぼうけんにでかけよう Kubernetes KEDA
Tsukasa Kato
PDF
Spring native について
Takamasa Mitsuji
PDF
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
PDF
DevOpsに求められる様々な技術とその連携の学習方法
CASAREAL, Inc.
PDF
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
Takayoshi Tanaka
PPTX
Spring I/O 2019 報告 Spring Frameworkのロードマップと5.2の新機能
Takuya Iwatsuka
PDF
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
祐磨 堀
ぼうけんにでかけよう Kubernetes KEDA
Tsukasa Kato
Spring native について
Takamasa Mitsuji
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
DevOpsに求められる様々な技術とその連携の学習方法
CASAREAL, Inc.
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
Takayoshi Tanaka
Spring I/O 2019 報告 Spring Frameworkのロードマップと5.2の新機能
Takuya Iwatsuka
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
祐磨 堀
What's hot
(20)
PDF
Node.jsアプリの開発をモダン化するために取り組んできたこと
bitbank, Inc. Tokyo, Japan
PDF
ミッション : メガクラウドを安全にアップデートせよ!
Toru Makabe
PDF
Open Source x AI
Tsukasa Kato
PPTX
AWS IoTを使った双方向通信システムの実装と注意点
Kohei MATSUSHITA
PDF
ソフトバンクにおける Java による クラウドネイティブの実現
Shigeru Tatsuta
PDF
Azureをフル活用したサーバーレスの潮流について
真吾 吉田
PPTX
SpringIO2019報告_Kotlin関連
ShingoKurihara1
PDF
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
NTT DATA Technology & Innovation
PDF
MagicOnion入門
torisoup
PDF
TypeScript製フレームワーク「Nest」のご紹介
bitbank, Inc. Tokyo, Japan
PPTX
Desktop app dev strategy for .net core 3.0
Atsushi Nakamura
PDF
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
VirtualTech Japan Inc.
PDF
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
bitbank, Inc. Tokyo, Japan
PDF
Bluemix(Node-RED)を使った空間の付加価値提案
BMXUG
PPTX
ニフクラでも できる!Kubernetes。
富士通クラウドテクノロジーズ株式会社
PPTX
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
NTT Communications Technology Development
PDF
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
VirtualTech Japan Inc.
PDF
[第50回 Machine Learning 15minutes! Broadcast] Azure Machine Learning - Ignite ...
Naoki (Neo) SATO
PPTX
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
PDF
6 月 18 日 Next - あっという間の、Google Cloud Platform 開発ガイド
Google Cloud Platform - Japan
Node.jsアプリの開発をモダン化するために取り組んできたこと
bitbank, Inc. Tokyo, Japan
ミッション : メガクラウドを安全にアップデートせよ!
Toru Makabe
Open Source x AI
Tsukasa Kato
AWS IoTを使った双方向通信システムの実装と注意点
Kohei MATSUSHITA
ソフトバンクにおける Java による クラウドネイティブの実現
Shigeru Tatsuta
Azureをフル活用したサーバーレスの潮流について
真吾 吉田
SpringIO2019報告_Kotlin関連
ShingoKurihara1
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
NTT DATA Technology & Innovation
MagicOnion入門
torisoup
TypeScript製フレームワーク「Nest」のご紹介
bitbank, Inc. Tokyo, Japan
Desktop app dev strategy for .net core 3.0
Atsushi Nakamura
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
VirtualTech Japan Inc.
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
bitbank, Inc. Tokyo, Japan
Bluemix(Node-RED)を使った空間の付加価値提案
BMXUG
ニフクラでも できる!Kubernetes。
富士通クラウドテクノロジーズ株式会社
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
NTT Communications Technology Development
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
VirtualTech Japan Inc.
[第50回 Machine Learning 15minutes! Broadcast] Azure Machine Learning - Ignite ...
Naoki (Neo) SATO
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
6 月 18 日 Next - あっという間の、Google Cloud Platform 開発ガイド
Google Cloud Platform - Japan
Ad
More from Rakuten Group, Inc.
(20)
PDF
EPSS (Exploit Prediction Scoring System)モニタリングツールの開発
Rakuten Group, Inc.
PPTX
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
Rakuten Group, Inc.
PDF
楽天における安全な秘匿情報管理への道のり
Rakuten Group, Inc.
PDF
What Makes Software Green?
Rakuten Group, Inc.
PDF
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
Rakuten Group, Inc.
PDF
DataSkillCultureを浸透させる楽天の取り組み
Rakuten Group, Inc.
PDF
大規模なリアルタイム監視の導入と展開
Rakuten Group, Inc.
PDF
楽天における大規模データベースの運用
Rakuten Group, Inc.
PDF
楽天サービスを支えるネットワークインフラストラクチャー
Rakuten Group, Inc.
PDF
楽天の規模とクラウドプラットフォーム統括部の役割
Rakuten Group, Inc.
PDF
Rakuten Services and Infrastructure Team.pdf
Rakuten Group, Inc.
PDF
The Data Platform Administration Handling the 100 PB.pdf
Rakuten Group, Inc.
PDF
Supporting Internal Customers as Technical Account Managers.pdf
Rakuten Group, Inc.
PDF
Making Cloud Native CI_CD Services.pdf
Rakuten Group, Inc.
PDF
How We Defined Our Own Cloud.pdf
Rakuten Group, Inc.
PDF
Travel & Leisure Platform Department's tech info
Rakuten Group, Inc.
PDF
Travel & Leisure Platform Department's tech info
Rakuten Group, Inc.
PDF
OWASPTop10_Introduction
Rakuten Group, Inc.
PDF
Introduction of GORA API Group technology
Rakuten Group, Inc.
PDF
100PBを越えるデータプラットフォームの実情
Rakuten Group, Inc.
EPSS (Exploit Prediction Scoring System)モニタリングツールの開発
Rakuten Group, Inc.
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
Rakuten Group, Inc.
楽天における安全な秘匿情報管理への道のり
Rakuten Group, Inc.
What Makes Software Green?
Rakuten Group, Inc.
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
Rakuten Group, Inc.
DataSkillCultureを浸透させる楽天の取り組み
Rakuten Group, Inc.
大規模なリアルタイム監視の導入と展開
Rakuten Group, Inc.
楽天における大規模データベースの運用
Rakuten Group, Inc.
楽天サービスを支えるネットワークインフラストラクチャー
Rakuten Group, Inc.
楽天の規模とクラウドプラットフォーム統括部の役割
Rakuten Group, Inc.
Rakuten Services and Infrastructure Team.pdf
Rakuten Group, Inc.
The Data Platform Administration Handling the 100 PB.pdf
Rakuten Group, Inc.
Supporting Internal Customers as Technical Account Managers.pdf
Rakuten Group, Inc.
Making Cloud Native CI_CD Services.pdf
Rakuten Group, Inc.
How We Defined Our Own Cloud.pdf
Rakuten Group, Inc.
Travel & Leisure Platform Department's tech info
Rakuten Group, Inc.
Travel & Leisure Platform Department's tech info
Rakuten Group, Inc.
OWASPTop10_Introduction
Rakuten Group, Inc.
Introduction of GORA API Group technology
Rakuten Group, Inc.
100PBを越えるデータプラットフォームの実情
Rakuten Group, Inc.
Ad
GraalVM Native Imageが見せた未来
1.
GraalVM Native Imageが 見せた未来
2.
自己紹介 松本 宏紀 (
まつもと ひろき ) ● 株式会社ブロードリーフ 基盤開発部 チーフ・アーキテクト ● Kubernetes Sapporo for Beginners主催者。 ● オフショアラボ・チームリーダー ● デブサミ2019「Spring Bootでマイクロサービス作って苦労したお話」登壇 ● Google Cloud Next ‘19 in Tokyo 「大規模エンタープライズ システムをマイクロ サービスで刷新。そ の開発プロセス再定義まで道のり」登壇 Twitter :@hirokimatsumo13
3.
GraalVM Native Imageで、 CPU、Memoryリソースの割当てを削減できる Javaでも小さな・疎結合なサービスを 開発しやすくなる。
4.
Cassandra Elasticsearch Kafka + Zookeeper (
broker ) Kafka Publisher ( Cassandra Trigger) Kafka Consumer データの蓄積 データの変更イベント配信 データの変更イベント管理 データの変更イベント受信 データの柔軟検索 背景
5.
Cassandra Elasticsearch Kafka + Zookeeper (
broker ) Kafka Publisher ( Cassandra Trigger) Kafka Consumer 背景 CPU: 500m、 Mem:1Gi CPU: 500m、 Mem:1.2Gi CPU: 300m、 Mem:300Mi CPU: 500m、 Mem:900Mi データの蓄積 データの変更イベント配信 データの変更イベント管理 データの変更イベント受信 データの柔軟検索 合計 = CPU: 1,800m、Mem: 3.4Gi
6.
Cassandra Elasticsearch Kafka + Zookeeper (
broker ) Kafka Publisher ( Cassandra Trigger) Kafka Consumer 背景 Kafka Consumer Elasticsearch Kafka Consumer Google Cloud Storage Kafka Consumer Web API データの利用用途が増えて5つconsumerが増える。 Kafka Consumer Web API
7.
ローカルPCで動かすの辛くなる。 バックグラウンドの仕組みだけで、 CPU: 3,000m、Mem: 4.3Gi必要になる。 (一番メモリ使っているのはChromeだけど…)
8.
Javaで頑張りたい
9.
GraalVM LLVMベースの言語(Java、JavaScript、Ruby、Python…)の多言語をサポー トする仮想マシン。 GraalVM Native Imageは、JVMベースの言語(Java、Scala、Kotlin)を、ス タンドアロンの実行可能ファイルにコンパイルするもの。 JavaVMの実行環境が不要。
10.
Quarkus KubernetesネイティブなGraalVM & OpenJDKで動作するJava
Framework。 Quarkus + GraalVM Quarkus + OpenJDK Traditional Cloud Native Stack Memory(RSS) Usage 13MB 74MB 140MB Boot Time 0.014sec 0.75sec 2.5Sec 参考:https://quarkus.io/
11.
GraalVM+Quarkusで 快適Javaライフを試してみる。
12.
開発 Quarkusのmavenプロジェクト雛形生成。 $ mvn io.quarkus:quarkus-maven-plugin:0.21.2:create
-DprojectGroupId=${groupId} -DprojectArtifactId=${artifactId} $
13.
開発 Elasticsearch、kafka周りの拡張のライブラリを追加。 …Elasticsearch周りが無い。 とりあえず、Elasticsearchの公式Java ライブラリをdependencyに追加する。 # Quarkus拡張ライブラリ一覧確認 $
mvn quarkus:list-extensions # Kafkaのライブラリ追加。 $ mvn quarkus:add-extension -Dextensions="quarkus-kafka-client" # pom.xmlに直接 elasticsearch-rest-high-level-clientを追加。 Reactive(MicroProfile) な方のKafkaは、 複数件の一括処理ができないので、通常の kafkaを利用。
14.
開発 VSCodeでごにょごにょ開発する・・・。
15.
開発 JavaVM上で動作確認をする。 $ mvn compile
quarkus:dev
16.
開発 Native Imageを作って動作確認する。 …動かない。 $ ./mvnw
clean package -U -Pnative -Dnative-image.docker-build=false $ docker build -f src/main/docker/Dockerfile.native -t $DOCKER_IMAGE . $ docker run -i --rm $DOCKER_IMAGE
17.
Native Imageへの壁 参考:https://quarkus.io/guides/writing-native-applications-tips#native-in-extension ○ データクラスに、@RegisterForReflectionをつける。 ObjectMapper#readValue(in,XXX.class)でエラーになる。 ○
3rd Partyライブラリが結構動かない。必要に応じてSubstituteで書き換えが必要。 Elasticsearchもquarkus-elasticsearch-rest-client利用した。 ○ native imageビルドする際、staticオプションをつけてもlibc周りは必要。 scratchでは動かず。100MB程度のdocker image sizeになる。 ○ Windows環境だとnative-image build on dockerが終わらない。 Linux環境化でもnative-imageのビルド時間:4分程度。 ○ ObjectOutputStream/ObjectInputStreamは未サポートだったりトライ&エラーがまだ 必要な段階。
18.
壁の向こう側 Quarkus + GraalVM
Spring Boot + OpenJDK Deployments Memory Limit 70MB 300MB Boot Time + Warm up 15秒 5分 Throughput 25.4 message/sec 27.0 message/sec Kubernetes DeploymentsでCPU:limit = 100msの場合。 ※Warm up…Elasticsearch index定義のjsonファイル400個の読み込み + kafkaへの接続。 ※kafkaの1messageのサイズは平均5KB。pollするmax sizeが10なので調整すればスループットは上がる。
19.
ローカルPCで動かすの辛くなる。 バックグラウンドの仕組みだけで、 CPU: 3,000m、Mem: 4.3Gi CPU:
1,900m、Mem: 3.5Gi 必要になる。 ( ちょっと軽減された ☺ )
20.
多くの分散サービスをJavaで開発している場 合、インフラコストを大幅に削減できる未来 を垣間見る事ができた。
21.
ご静聴ありがとうございました。