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
49
コンテナの可能性を極めてみた!一度ビルドしたら本番でも使うよ
ディップ株式会社
PRO
July 24, 2025
Tweet
Share
More Decks by ディップ株式会社
See All by ディップ株式会社
Agent Skils
dip_tech
PRO
0
140
Databricksについて.pdf
dip_tech
PRO
0
130
なぜ今_私たちはDDDに向き合うのか_佐藤薫.pdf
dip_tech
PRO
0
130
AIに仕事を丸投げしたら、本当に楽になれるのか
dip_tech
PRO
0
91
【dip】価値が「伝わる体験」を設計する ディップのDevRelが実践する、Findyサービス活用戦略
dip_tech
PRO
0
43
プロフェッショナルへの道:ビジネスを動かすエンジニアリング思想
dip_tech
PRO
0
130
ユーザーファーストを実現するためのチーム開発の工夫
dip_tech
PRO
0
97
1年目エンジニアが働いてみて感じたリアルな悩みと成長
dip_tech
PRO
0
46
ベイズマルチファクターモデルとbPCausal
dip_tech
PRO
0
36
Other Decks in Technology
See All in Technology
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
230
AWS Network Firewall Proxyを触ってみた
nagisa53
1
250
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.6k
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
4
450
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
580
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
540
今日から始めるAmazon Bedrock AgentCore
har1101
4
420
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
Why Organizations Fail: ノーベル経済学賞「国家はなぜ衰退するのか」から考えるアジャイル組織論
kawaguti
PRO
1
220
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
250
生成AIと余白 〜開発スピードが向上した今、何に向き合う?〜
kakehashi
PRO
0
170
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
52
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
470
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Ethics towards AI in product and experience design
skipperchong
2
200
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
920
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Un-Boring Meetings
codingconduct
0
200
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が作成してくれた「ちょっと変な表現」は、あえて採用しています レイアウト調整が、しんどかった・・・