Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Quakrus でシステム開発してみた結果 / 【東京】JJUG ナイトセミナー: ビール片手...
Search
Takaichi00
September 06, 2019
Technology
490
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Quakrus でシステム開発してみた結果 / 【東京】JJUG ナイトセミナー: ビール片手にLT大会 9/6(金)開催
Takaichi00
September 06, 2019
More Decks by Takaichi00
See All by Takaichi00
individual_or_organization
takaichi00
0
360
自分から始めるアジャイルの道 ~内発的動機をきっかけに変わった価値観~
takaichi00
0
510
Java developer introduced to Rust-ADC2022
takaichi00
0
320
野球人・落合博満さんから学ぶ、アジャイルなマインドセット・プラクティス
takaichi00
1
930
【CICD2021】デプロイメントパイプラインの原理原則を再確認する / Confirm Deployment Pipeline Principle
takaichi00
11
4.8k
【JTF2021】SonarQube をより有効活用する / Effective SonarQube
takaichi00
1
2.7k
JJUG CCC 2021 Spring-Resolving OOME with JFR
takaichi00
2
3.8k
【Yahoo! JAPAN Agile 2nd】野球人・落合博満さんから学ぶスクラムマスター / デベロッパー
takaichi00
0
2.8k
【Developers Boost 2020】凡人エンジニアの生存戦略
takaichi00
1
3.4k
Other Decks in Technology
See All in Technology
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
150
[2026 Oracle Technical Deep Dive] VMwareワークロードのOCI移行実践ガイド - OCVSでの継続利用からOCIコンピュートへの移行まで (2026年9月17日開催)
oracle4engineer
PRO
0
120
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
400
[2026 Oracle Technical Deep Dive] AI時代のアプリケーションを支えるCloud NativeとJava EEモダナイゼーション (2026年9月17日開催)
oracle4engineer
PRO
0
120
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
1
170
[2026-09-30]ロックンロールは鳴り止まないっ - 信頼性かまってちゃん - 「データ駆動を投げ捨ててまで。」追いかける信頼性改善に向けた取り組みの話
tosite
0
200
freeeらしさをAIとともに作る / Creating the freee Experience with AI
ymrl
0
200
Incremental HTTP
kazuho
5
2k
[2026 Oracle Technical Deep Dive] Apache Iceberg × Oracle AI Database -Oracle Autonomous AI Lakehouseが実現するAI時代のデータ基盤- (2026年9月17日開催)
oracle4engineer
PRO
0
110
KanaAI
shreyas1009
0
150
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
300
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
210
Featured
See All Featured
HDC tutorial
michielstock
2
940
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
380
Believing is Seeing
oripsolob
1
240
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
300
Speed Design
sergeychernyshev
33
2.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Google's AI Overviews - The New Search
badams
0
1.6k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Designing Powerful Visuals for Engaging Learning
tmiket
1
590
Fantastic passwords and where to find them - at NoRuKo
philnash
52
4k
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 を使いましょう!! そして情報発信してくれると嬉しいです!!
ご清聴ありがとうございました