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
370
自分から始めるアジャイルの道 ~内発的動機をきっかけに変わった価値観~
takaichi00
0
520
Java developer introduced to Rust-ADC2022
takaichi00
0
320
野球人・落合博満さんから学ぶ、アジャイルなマインドセット・プラクティス
takaichi00
1
940
【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.9k
【Yahoo! JAPAN Agile 2nd】野球人・落合博満さんから学ぶスクラムマスター / デベロッパー
takaichi00
0
2.8k
【Developers Boost 2020】凡人エンジニアの生存戦略
takaichi00
1
3.4k
Other Decks in Technology
See All in Technology
BacklogのRAG 今ならこう作る - S3 Vectorsと自前パイプラインの勘所
revsystem
0
140
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
780
プロダクトが成長すると、 プロダクトマネージャーの仕事はどう変わるのか - 「まず作る」から「小さく学び、確かめながら進む」へ
sansantech
PRO
1
370
顧客価値を追いかけたら、プライシングにたどり着いた
sansantech
PRO
2
1k
シンプルな設定ファイルで実現する AWS IAM Identity Center の ユーザー管理Terraformフレームワークを公開しました / Simplifying AWS IAM Identity Center User Management: An Open-Source Terraform Framework
yamaguchitk333
0
320
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
300
なぜAI時代に技術記事を書くのか?どう書くのか? 〜bunの場合〜
kworkdev
PRO
0
130
「私が一番顧客に詳しい」を捨てる~ 全員が一次情報に精通する開発チームをつくり、PMが次のボトルネックへ染み出すまで
kaminashi
4
2.4k
1週間、Opus封印でお願いします
kintotechdev
0
170
Filter What the LLM Reads: RAG Governance with AgentCore Gateway
yakumo
0
110
「社外イベント=意識高い」の壁を壊せ!元々無関心だった僕らが部内で社外イベントを民主化して15人を連れ出すまで
say_no_w
0
140
Obsidian Vault Architectures
x5gtrn
PRO
0
160
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
The Limits of Empathy - UXLibs8
cassininazir
2
730
The Curse of the Amulet
leimatthew05
3
16k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
230
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
380
Statistics for Hackers
jakevdp
799
230k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
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 を使いましょう!! そして情報発信してくれると嬉しいです!!
ご清聴ありがとうございました