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
コンテナの可能性を極めてみた!一度ビルドしたら本番でも使うよ
Search
ディップ株式会社
PRO
July 24, 2025
Technology
0
35
コンテナの可能性を極めてみた!一度ビルドしたら本番でも使うよ
ディップ株式会社
PRO
July 24, 2025
Tweet
Share
More Decks by ディップ株式会社
See All by ディップ株式会社
dipにおけるSRE変革の軌跡
dip_tech
PRO
2
710
DC卒業の話
dip_tech
PRO
0
9
【レコリン】音声録音AIサービス
dip_tech
PRO
0
41
Kiroを使ってAWS location service触ってみた
dip_tech
PRO
0
40
知識ゼロの新人が研修で社内システムを構築した話
dip_tech
PRO
0
42
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
400
MMMモデルを推定した。で、結局どうやって予算最適化すればいいの?
dip_tech
PRO
0
14
“曖昧な検索” を実現するための Semantic Slot Filling
dip_tech
PRO
0
30
SFTPコンテナからファイルをダウンロードする
dip_tech
PRO
0
950
Other Decks in Technology
See All in Technology
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
9
2.6k
Amazon Bedrock AgentCoreのフロントエンドを探す旅 (Next.js編)
kmiya84377
1
160
サイボウズフロントエンドの横断活動から考える AI時代にできること
mugi_uno
2
460
オブザーバビリティ文化を組織に浸透させるには / install observability culture
mackerelio
0
160
Telemetry APIから学ぶGoogle Cloud ObservabilityとOpenTelemetryの現在 / getting-started-telemetry-api-with-google-cloud
k6s4i53rx
0
160
AIが住民向けコンシェルジュに?Amazon Connectと生成AIで実現する自治体AIエージェント!
yuyeah
0
180
S3 Glacier のデータを Athena からクエリしようとしたらどうなるのか/try-to-query-s3-glacier-from-athena
emiki
0
240
AIと描く、未来のBacklog 〜プロジェクト管理の次の10年を想像し、創造するセッション〜
hrm_o25
0
110
生成AIによるソフトウェア開発の収束地点 - Hack Fes 2025
vaaaaanquish
34
16k
Serverless Meetup #21
yoshidashingo
1
130
いま、あらためて考えてみるアカウント管理 with IaC / Account management with IaC
kohbis
2
350
モノレポにおけるエラー管理 ~Runbook自動生成とチームメンションの最適化
biwashi
0
340
Featured
See All Featured
BBQ
matthewcrist
89
9.8k
RailsConf 2023
tenderlove
30
1.2k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Faster Mobile Websites
deanohume
309
31k
Designing Experiences People Love
moore
142
24k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Rails Girls Zürich Keynote
gr2m
95
14k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
コンテナの可搬性を極めてみた! 一度ビルドしたら本番でも使うよ ディップ株式会社 ソリューション開発本部 プラットフォーム部 SRE・AI 2課 藤井 貴昭
1. 自己紹介 2. はじめに 3. そのビルド、本当に大丈夫? (導入前の課題) 4. 私たちが目指したこと (ビルドは1回だけ!)
5. "秘伝のタレ" 大公開! (具体的な実現方法) 6. 得られた3つのメリット (導入後の効果) 7. まとめ (学びのポイント) 目次
藤井 貴昭 ディップ株式会社 ソリューション開発本部 プラットフォーム部 SRE・AI 2課 面接コボット、スポットバイトル など 自社プロダクト
の インフラチ ーム リーダー 設計、構築、運用を担当 AWSとGCPの両方を使っています 1. 自己紹介
今日のテーマ 皆さん、コンテナのビルド、どうしてますか? 「開発環境でビルド、ステージング環境でビルド、本番環境でビルド...」 実は、そのやり方には落とし穴が潜んでいるかもしれません。 今日は、私たちが 面接コボット でその落とし穴を乗り越え、 「一度ビルドしたイメージをそのまま本番まで届ける」 CI/CDパイプラインを構築した話を紹介します。 2.
はじめに
2. はじめに 面接コボット ちょっとだけ紹介
ある日、事件は起きた ステージング環境でのテストは All Green 自信を持って本番リリース! ...のはずが なぜか本番環境で問題が発生...!! 3. そのビルド、本当に大丈夫?
原因は... 障害の調査を進めると、あるライブラリのバージョンがステージング環境と本番環境で異なっていることが 判明しました。 ステージング環境: hoge-library v1.2.0 本番環境: hoge-library v2.0.1 (←
最新版が勝手に...!) 当時、そのライブラリはバージョンを固定できないものでした。 (その後、この改善中にバージョン固定することが出来ました) 根本的な問題 それは環境ごとに コンテナイメージのビルド を繰り返していたことでした。 3. そのビルド、本当に大丈夫?
コンテナのポータビリティを最大限に活かす 私たちは、コンテナ技術の本来の思想である "Build Once, Run Anywhere" (一度ビルドすれば、どこでも 動く)に立ち返ることにしました。 目指したゴール ビルドは一度だけ。
ステージング環境でテストしたイメージと寸分違わぬものを本番環境へ届ける! 4. 私たちが目指したこと
パイプライン全体像 GitタグとGitHubリリースを利用することで、理想のパイプラインを構築しました。 ① ステージング リリース テス ステージン 担当 テス ビル
Pus デプロ タグ作 ② 本番 リリース 本番環 担当 No ビル 既存 取 デプロ リリース おっと、文字が潰れて見れませんね 5. "秘伝のタレ" 大公開!
5. "秘伝のタレ" 大公開!
① ステージング リリース 開発者がリリースしたいバージョンをGitのタグとしてPushします。 # リリースバージョンをタグとして作成 git tag v1.2.0 #
タグをリモートリポジトリにPush git push origin v1.2.0 このPushイベントをトリガーに、ステージング用のGitHub Actionsが起動します。 実行内容: i. Dockerイメージをビルド ii. Gitタグ名 ( v1.2.0 ) を使ってイメージにタグ付け iii. 本番環境のGCP Artifact RegistryにPush iv. ステージング環境へデプロイ 5. "秘伝のタレ" 大公開!
② 本番 リリース ステージングでのテスト完了後、GitHub上でリリースを作成し ます。 これが本番デプロイの唯一のトリガーです。 この「リリースの作成」イベントを検知して、本番用のGitHub Actionsが起動します。 実行内容: i.
コンテナイメージのビルドは行わない! ii. リリース情報からタグ名 ( v1.2.0 ) を特定 iii. 本番環境のGCP Artifact Registryから同名の既存イメージを取 得 iv. 本番環境へデプロイ 6. "秘伝のタレ" 大公開!
① 圧倒的な信頼性 "ステージングで動くものは、本番でも動く" という絶対的な安心感を手に入れました。 環境差に起因する障害はゼロになり、リリース時の不安から解放されました。 ② 本番環境でのリリース時間の高速化 本番環境では、コンテナイメージのビルド時間が不要になり、リリース時間が短縮されました。 (約30分 短縮化)
③ 開発者体験 (DX) の向上 複雑な手順や環境差異の心配から解放され、開発者は本来の価値創造、つまりアプリケーションの機能開発 に集中できるようになりました。 6. 得られた3つのメリット
本日のまとめ (Learning Outcome) 1. "環境ごとのビルド"に潜むリスクを再認識しよう 意図しないライブラリの更新など、予期せぬ差分はいつでも生まれ得ます。 2. "Build Once, Run
Anywhere"は実現できる! コンテナの思想に立ち返り、CI/CDのパイプラインを設計することが重要です。 3. GitタグとGitHubリリースは強力な武器になる この2つを組み合わせることで、安全で再現性の高いCI/CDが構築できます。 7. まとめ
ご清聴ありがとうございました。 なお、スライドは Cursor + Marp(Markdownからスライド作成) で、Gemini-2.5-pro を利用して作成しま した 生成AIが作成してくれた「ちょっと変な表現」は、あえて採用しています レイアウト調整が、しんどかった・・・