Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Quakrus でシステム開発してみた結果 / 【東京】JJUG ナイトセミナー: ビール片手...
Search
Takaichi00
September 06, 2019
Technology
1
450
Quakrus でシステム開発してみた結果 / 【東京】JJUG ナイトセミナー: ビール片手にLT大会 9/6(金)開催
Takaichi00
September 06, 2019
Tweet
Share
More Decks by Takaichi00
See All by Takaichi00
自分から始めるアジャイルの道 ~内発的動機をきっかけに変わった価値観~
takaichi00
0
300
Java developer introduced to Rust-ADC2022
takaichi00
0
260
野球人・落合博満さんから学ぶ、アジャイルなマインドセット・プラクティス
takaichi00
1
840
【CICD2021】デプロイメントパイプラインの原理原則を再確認する / Confirm Deployment Pipeline Principle
takaichi00
11
4.5k
【JTF2021】SonarQube をより有効活用する / Effective SonarQube
takaichi00
0
2.5k
JJUG CCC 2021 Spring-Resolving OOME with JFR
takaichi00
2
3.4k
【Yahoo! JAPAN Agile 2nd】野球人・落合博満さんから学ぶスクラムマスター / デベロッパー
takaichi00
0
2.7k
【Developers Boost 2020】凡人エンジニアの生存戦略
takaichi00
1
2.9k
【ソフトウェアテスト自動化カンファレンス2020】CI パイプラインでのテスト戦略とその実現方法
takaichi00
3
5.5k
Other Decks in Technology
See All in Technology
KCD Lima: eBee in Peru!
lizrice
0
110
VLMサービスを用いた請求書データ化検証 / SaaSxML_Session_1
sansan_randd
0
110
メモ整理が苦手な者による頑張らないObsidian活用術
optim
0
150
[TechNight #91] Oracle Database 最新パフォーマンス分析手法
oracle4engineer
PRO
3
150
経理出身PdMがAIプロダクト開発を_ハンズオンで学んだ話.pdf
shunsukenarita
1
230
CSPヘッダー導入で実現するWebサイトの多層防御:今すぐ試せる設定例と運用知見
llamakko
1
260
AI時代の知識創造 ─GeminiとSECIモデルで読み解く “暗黙知”と創造の境界線
nyagasan
0
160
ファインディにおける Dataform ブランチ戦略
hiracky16
0
210
Kiroから考える AIコーディングツールの潮流
s4yuba
1
310
激動の時代、新卒エンジニアはAIツールにどう向き合うか。 [LayerX Bet AI Day Countdown LT Day1 ツールの選択]
tak848
0
610
興味の胞子を育て 業務と技術に広がる”きのこ力”
fumiyasac0921
0
290
少人数でも回る! DevinとPlaybookで支える運用改善
ishikawa_pro
4
1.7k
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
A Tale of Four Properties
chriscoyier
160
23k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
850
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
What's in a price? How to price your products and services
michaelherold
246
12k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Transcript
Quarkus でシステム開発してみた結果 髙市 智章 (Tomoaki Takaichi) Sep, 06, 2019【東京】JJUG ナイトセミナー:
ビール片手にLT大会
自己紹介 @Takaichi00 tomoaki.takaichi.5 ・髙市 智章(タカイチ トモアキ) ・Java でのシステム開発 ・アジャイル開発実践 /
社内布教 ・iTunes カード販売システム ・ショップ向けシステム
Quarkus とは GraalVM 内のコンパイラを用いて実行可能なネイティブバイナ リを生成し、コンテナ化できる webフレームワーク。Red Hat がスポンサーのOSSプロジェクト。
Quarkus 採用の背景① 〜クラウド化〜 仮設検証型のシステム開発にあたり、オンプレの開発から迅速に 環境を構築でき拡張や破棄も容易なクラウド環境への移行が必要 だった。当時カンバンツールとしてAzure DevOps を使用して いたため、Azure とAzure
DevOps のツールチェーン構築に踏 み切った。 参考: Microsoft ハックフェスト
Quarkus 採用の背景② 〜Spring Boot の限界〜 開発システムの特性からAKS (Azure Kubernetes Service) を
利用することに決定。しかし今まで、Spring Boot を主に利用 していたが、起動時間の遅さ、コンテナサイズの肥大化が課題 に。 → Quarkus の採用へ
Quarkus のいいところ ❏ JavaEE のAPI を用いて簡単にNative Image 化でき、かつ 高速起動と低容量が実現できる ❏
Quarkus ではCDI 実装として、ビルド時にバイトコードを生 成し、最適化する「arc」を使用している。よってjava -jar での起動も高速。(しかしCDIのすべての機能を実装している わけではない)
Quarkus ではまったところ ❏ 導入検証時、GraalVMのネイティブコンパイルのタイミング でSSL関連のエラーが発生 ❏ その他にも、ネイティブコンパイルにはビルド時に存在しな いクラスをリフレクションできないなどの制約があるため、 jar として起動することに決定。(それでもJavaEE
ランタイ ムのビルド時最適化を実装しているため起動は速い) ❏ DB と連携した自動 IT テスト実装時、 EntityManager を利 用するための設定に苦労
Quarkus ではまったところ pom.xml に設定を加えることで Uber-Jars の作成も可能。しか し、jar の中には署名jar が含まれており、それを除外しないと 起動時にエラーが発生した。
Quarkus コンテナ化の流れ Zulu が提供するAlpine Linuxと、jlink を使ってカスタムJRE をマルチステージビルドしたコンテナイメージの上で、 Qurakus が生成するUber-Jars を起動することでコンテナサイ
ズの削減に成功 zulu openjdk alpine zulu alpine Custom JRE jlink Uber-Jars
Quarkus サンプルコード 実際に開発しているコードを公開したいが、そうはいかないので サンプルを公開 ❏ クリーンアーキテクチャを意識した実装 ❏ @QuarkusTest によるテスト /
Mock / flyway / Wiremock 等を用いたテスト (を目指して実装中) https://github.com/Takaichi00/quarkus-sample
Quarkus で開発してみた感想 ❏ 実行 / テスト 共にSpring Bootに比べて起動速度は速く、容 量も小さい ❏
JavaEE 経験がある開発者との親和性が高い ❏ 既存アプリケーションでも徐々にQuarkus に移行するといっ た方法が選択できるのでは ❏ 使いこなすにはMicroProfile の仕様理解も必要 ❏ SpringのMockMvc みたいな柔軟なテストはできない ❏ 文献が少ない (日本語は特に...)
さいごに みなさんもぜひ Quarkus を使いましょう!! そして情報発信してくれると嬉しいです!!
ご清聴ありがとうございました