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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takaichi00
September 06, 2019
Technology
1
460
Quakrus でシステム開発してみた結果 / 【東京】JJUG ナイトセミナー: ビール片手にLT大会 9/6(金)開催
Takaichi00
September 06, 2019
Tweet
Share
More Decks by Takaichi00
See All by Takaichi00
individual_or_organization
takaichi00
0
240
自分から始めるアジャイルの道 ~内発的動機をきっかけに変わった価値観~
takaichi00
0
390
Java developer introduced to Rust-ADC2022
takaichi00
0
280
野球人・落合博満さんから学ぶ、アジャイルなマインドセット・プラクティス
takaichi00
1
880
【CICD2021】デプロイメントパイプラインの原理原則を再確認する / Confirm Deployment Pipeline Principle
takaichi00
11
4.6k
【JTF2021】SonarQube をより有効活用する / Effective SonarQube
takaichi00
1
2.6k
JJUG CCC 2021 Spring-Resolving OOME with JFR
takaichi00
2
3.7k
【Yahoo! JAPAN Agile 2nd】野球人・落合博満さんから学ぶスクラムマスター / デベロッパー
takaichi00
0
2.7k
【Developers Boost 2020】凡人エンジニアの生存戦略
takaichi00
1
3.1k
Other Decks in Technology
See All in Technology
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
240
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
100
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
200
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
610
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
0
900
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
420
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
160
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
190
私たち準委任PdEは2つのプロダクトに挑戦する ~ソフトウェア、開発支援という”二重”のプロダクトエンジニアリングの実践~ / 20260212 Naoki Takahashi
shift_evolve
PRO
2
210
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
220
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
77
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
190
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.1k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
780
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
58
50k
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 を使いましょう!! そして情報発信してくれると嬉しいです!!
ご清聴ありがとうございました