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
98
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
コンテナ脆弱性修正をRenovate,Dependabotのように行う / Fix Container vulnerabilities on CICD
sheepland
2
310
Design Doc のすすめ / The Importance of Design Docs
sheepland
0
210
Datadogのグラフにデプロイタイミングを表示する / deploy timing on datadog graph
sheepland
1
540
英語学習の始め方 / How to start learning English
sheepland
0
110
Other Decks in Technology
See All in Technology
非機能品質を作り込むための実践アーキテクチャ
knih
6
1.7k
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
32k
ネットワーク可視化の世界
likr
6
5.1k
React Routerで実現する型安全なSPAルーティング
sansantech
PRO
2
340
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
130
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
250
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
250
クレカ・銀行連携機能における “状態”との向き合い方 / SmartBank Engineer LT Event
smartbank
2
110
20241218_今年はSLI/SLOの導入を頑張ってました!
zepprix
0
210
AI×医用画像の現状と可能性_2024年版/AI×medical_imaging_in_japan_2024
tdys13
0
430
ガバナンスを支える新サービス / New Services to Support Governance
sejima1105
0
460
スケールし続ける事業とサービスを支える組織とアーキテクチャの生き残り戦略 / The survival strategy for Money Forward’s engineering.
moneyforward
0
120
Featured
See All Featured
RailsConf 2023
tenderlove
29
950
Music & Morning Musume
bryan
46
6.2k
Building Your Own Lightsaber
phodgson
103
6.1k
Adopting Sorbet at Scale
ufuk
74
9.1k
A better future with KSS
kneath
238
17k
Statistics for Hackers
jakevdp
796
220k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Unsuck your backbone
ammeep
669
57k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Building Adaptive Systems
keathley
38
2.3k
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/