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
Docker Build Cloudを導入してコンテナイメージビルド時間を80%削減した話 /...
Search
Akira Kuriyama
June 26, 2024
Technology
0
150
Docker Build Cloudを導入してコンテナイメージビルド時間を80%削減した話 / Speeding Up Container Builds with Docker Build Cloud
Docker Build Cloudを導入してコンテナイメージビルド時間を80%削減した話を紹介します。
Akira Kuriyama
June 26, 2024
Tweet
Share
More Decks by Akira Kuriyama
See All by Akira Kuriyama
Datadog On-Calを本番導入しました / Datadog On-Cal now in production
sheepland
0
230
Datadog Logsで実現するオブザーバビリティの向上 / Enhancing Observability with Datadog Logs
sheepland
0
130
コンテナ脆弱性修正をRenovate,Dependabotのように行う / Fix Container vulnerabilities on CICD
sheepland
2
420
Design Doc のすすめ / The Importance of Design Docs
sheepland
0
540
Datadogのグラフにデプロイタイミングを表示する / deploy timing on datadog graph
sheepland
1
670
英語学習の始め方 / How to start learning English
sheepland
0
120
Other Decks in Technology
See All in Technology
Amazon CloudWatchのメトリクスインターバルについて / Metrics interval matters
ymotongpoo
3
290
20250728 MCP, A2A and Multi-Agents in the future
yoshidashingo
1
140
ユーザー理解の爆速化とPdMの価値
kakehashi
PRO
1
110
ML Pipelineの開発と運用を OpenTelemetryで繋ぐ @ OpenTelemetry Meetup 2025-07
getty708
0
320
CSPヘッダー導入で実現するWebサイトの多層防御:今すぐ試せる設定例と運用知見
llamakko
1
270
Claude Codeが働くAI中心の業務システム構築の挑戦―AIエージェント中心の働き方を目指して
os1ma
6
450
データエンジニアがクラシルでやりたいことの現在地
gappy50
3
750
Tableau API連携の罠!?脱スプシを夢見たはずが、逆に依存を深めた話
cuebic9bic
2
150
The Madness of Multiple Gemini CLIs Developing Simultaneously with Jujutsu
gunta
1
2.8k
手動からの解放!!Strands Agents で実現する総合テスト自動化
ideaws
3
400
自分がLinc’wellで提供しているプロダクトを理解するためにやったこと
murabayashi
1
170
Expertise as a Service via MCP
yodakeisuke
1
160
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
GraphQLとの向き合い方2022年版
quramy
49
14k
Rails Girls Zürich Keynote
gr2m
95
14k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
RailsConf 2023
tenderlove
30
1.2k
Fireside Chat
paigeccino
37
3.5k
Transcript
Docker Build Cloudを導⼊してコンテナイメージビルド 時間を80%削減した話 株式会社スタディスト SREユニット Akira Kuriyama 2024/06/26
2 ⾃⼰紹介 栗山 聖 / Akira Kuriyama / @sheepland 株式会社スタディスト
開発本部 SREユニット 趣味 : 映画、漫画、SF小説
Copyright © 2024 Studist Corporation. all rights reserved. アジェンダ 3
1. コンテナイメージビルドにおける課題 2. Docker Build Cloudとは 3. 料⾦について 4. 効果 5. まとめ
4 1. コンテナイメージビルドにおける課題
Copyright © 2024 Studist Corporation. all rights reserved. コンテナイメージビルドにおける課題 5
• まずローカルではビルドキャッシュ効くので速い。 --mount=type=cacheも使える。 • しかしCI/CDのような毎回ビルドマシンが変わるケースで は、ビルドキャッシュが効かない • CircleCIでは「Docker レイヤーキャッシュ(DLC)」を有効化 することでビルドキャッシュ効くようになるがコストが⾼く なる。またDLC ボリュームはジョブで 3 ⽇間使⽤されないと 削除されてしまう
Copyright © 2024 Studist Corporation. all rights reserved. コンテナイメージビルドにおける課題 6
Registry Cache (要は--cache-from) Registry CacheによりCI/CDのような毎回ビルドマシンが変わる ケースであってもイメージレイヤー単位でのキャッシュが可能に よく使われる⼿法 docker build --push -t <registry>/<image> \ --cache-from type=registry,ref=${REGISTRY_URL}/${REPOSITORY_NAME}:buildcache --cache-to type=registry,ref=${REGISTRY_URL}/${REPOSITORY_NAME}:buildcache
Copyright © 2024 Studist Corporation. all rights reserved. コンテナイメージビルドにおける課題 7
弊社では2022年に導⼊し、イメージビルドが15分かかっていたの が5分強で終わるようになった。 ちなみに弊社ではマルチステージビルドを⾏っており、中間イ メージもキャッシュさせるため(mode=max)にDocker Hubに Registry Cacheイメージを保存。 Registry Cacheの効果
Copyright © 2024 Studist Corporation. all rights reserved. コンテナイメージビルドにおける課題 8
• Gemやnpmなどパッケージの変更があった場合にはキャッ シュが効かず、⼀からパッケージのインストールがされてし まい時間がかかる • cacheイメージ⾃体のpull、pullしたイメージのextractそれぞ れに時間がかかる Registry Cacheの課題
Copyright © 2024 Studist Corporation. all rights reserved. コンテナイメージビルドにおける課題 9
これらの課題を解決しイメージビルド時間をさらに短縮したい… そんな中 2024/01にDocker社が「Docker Build Cloud」を発表
10 2. Docker Build Cloudとは
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudとは 11 • 2024/01にDocker社から発表されたサービス • コンテナイメージビルドをDocker社のクラウド環境で⾏う • コンテナイメージビルドの効率化、⾼速化にフォーカス Docker Build Cloudとは?
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudとは 12 Docker Build Cloudの機能やメリットを紹介をします
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudの機能紹介 13 16 vCPU、32GB RAMのマシンが使われる(Build Cloud Teamプ ランの場合) 単純にスペックが⾼いのでビルド⾼速化につながる CPU Core数も多いのでパッケージのインストールなど並列実⾏ が可能な部分はより⾼速化 ハイスペックなビルドマシンが使える
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudの機能紹介 14 • ビルドキャッシュが存在するためRegistry cacheが不要に • --mount=type=cacheが効く ◦ --mount=type=cacheはビルドマシン側にキャッシュ を保存するためのオプション ◦ Gemやnpmなどパッケージの変更があっても、差分更新 ですむ ◦ 個⼈的にはこれが⼀番のメリット ビルドキャッシュが効く
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudの機能紹介 15 docker buildx build --platform linux/amd64,linux/arm64 を指定するだけで⾼速なマルチアーキテクチャビルドが可能 今まではAMD(x86_64)、armのそれぞれのビルドマシンを⽤意し たり、Qemuエミュレーションを使⽤したりしていたが、それら が不要に マルチアーキテクチャビルドが簡単に
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudの機能紹介 16 各CIツール(GitHub Actions, Circle CIなど)やローカル(Dockerコ マンド、Docker Compose)からスムーズに使うことができる。 https://docs.docker.com/build/cloud/ci/ を参照。 以下はdockerコマンドを使ってDocker Build Cloudを使う例 ローカルやCIツールから簡単に使える echo "$DOCKER_PAT" | docker login --username $DOCKER_USER --password-stdin docker buildx create --use --driver cloud "Org名/ビルダー名"
17 3. 料⾦について
Copyright © 2024 Studist Corporation. all rights reserved. 料⾦について 18
プラン名 料⾦ Docker Build Cloud Starter 無料 Docker Build Cloud Team $5/ユーザ/⽉ (年払い) $6/ユーザ/⽉ (⽉払い) Docker Build Cloud Business 要問い合わせ Docker Coreサブスクリプションに⼊ってなくてもDocker Build Cloudのplanに⼊れる。 CI/CDで使うだけなら1ユーザ分ですむ。
Copyright © 2024 Studist Corporation. all rights reserved. 料⾦について 19
まず、Docker Build Cloud上でイメージビルドを⾏うとビルド時間を消費します。 ある程度無料のビルド時間が付与されていますが、⾜りなくなったら追加でビルド時間を購⼊する必 要があります。 追加のビルド時間の⾦額 • 500 分 : $25 • 1,000 分 : $50 • 5,000 分 : $250 • 10,000 分 : $500 • 20,000 分 : $1,000 つまり、$0.05/min (16 vCPU、32GB RAM)。 ちなみにCircleCIの 「Linux VM / (x86) Remote Docker」の X-large(8 CPU / 32 GB RAM)は $0.06/min、2 X-large(16 CPU / 64 GB RAM)は $0.12/min。
20 4. 効果
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudの効果 21 イメージのフルビルド時間の⽐較 改善前: 6m30s ↓ Docker Build Cloud を使⽤ :3m20s (48%減) ↓ さらに Gemを--mount=type=cacheを使ってキャッシュ : 2m (69%減) ↓ さらに npmを--mount=type=cacheを使ってキャッシュ : 1m30s (77%減) ↓ 【WIP】さらに webpackを--mount=type=cacheを使ってキャッシュ : 40s (89%減)
22 5. まとめ
Copyright © 2024 Studist Corporation. all rights reserved. まとめ 23
Docker Build Cloudを使うことで、⼿軽かつ安価にイメージビル ド時間を短縮できました。 Docker Build Cloudの注意点など、詳しくはテックブログを参照 ください。
https://studist.jp/