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
40
コンテナの可能性を極めてみた!一度ビルドしたら本番でも使うよ
ディップ株式会社
PRO
July 24, 2025
Tweet
Share
More Decks by ディップ株式会社
See All by ディップ株式会社
DDD_TDDでイケてる開発がしたい!!
dip_tech
PRO
0
16
Go×TDD/DDDによるリアーキテクチャ半年間の振り返り
dip_tech
PRO
0
24
デザインシステムとエンジニアの新しい役割
dip_tech
PRO
0
22
AI時代のDevOps入門
dip_tech
PRO
0
18
AIのためのテスト戦略 〜TDDが難しいフロントエンド開発でのアプローチ〜
dip_tech
PRO
0
16
迷わないスクラム始めませんか?
dip_tech
PRO
0
32
新米スクラムマスターが考える 仕事を通じてチームを育む「制約主導」のアプローチ
dip_tech
PRO
0
110
Terraform定義もAIで自動作成してみた!インフラ構築でどれだけ生成AIが使えるの?
dip_tech
PRO
0
19
テストコードすら書けなかったレガシーアプリがAIと上手に協働できるようになるまでの軌跡
dip_tech
PRO
0
540
Other Decks in Technology
See All in Technology
Escaping_the_Kraken_-_October_2025.pdf
mdalmijn
0
150
AWS Top Engineer、浮いてませんか? / As an AWS Top Engineer, Are You Out of Place?
yuj1osm
1
110
about #74462 go/token#FileSet
tomtwinkle
1
420
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
1
490
綺麗なデータマートをつくろう_データ整備を前向きに考える会 / Let's create clean data mart
brainpadpr
2
260
[2025-09-30] Databricks Genie を利用した分析基盤とデータモデリングの IVRy の現在地
wxyzzz
0
500
Access-what? why and how, A11Y for All - Nordic.js 2025
gdomiciano
1
120
extension 現場で使えるXcodeショートカット一覧
ktombow
0
220
許しとアジャイル
jnuank
1
130
動画データのポテンシャルを引き出す! Databricks と AI活用への奮闘記(現在進行形)
databricksjapan
0
150
AIが書いたコードをAIが検証する!自律的なモバイルアプリ開発の実現
henteko
1
350
SwiftUIのGeometryReaderとScrollViewを基礎から応用まで学び直す:設計と活用事例
fumiyasac0921
0
150
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
173
14k
Code Review Best Practice
trishagee
72
19k
Side Projects
sachag
455
43k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Optimizing for Happiness
mojombo
379
70k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Agile that works and the tools we love
rasmusluckow
331
21k
Designing for humans not robots
tammielis
254
26k
Building an army of robots
kneath
306
46k
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が作成してくれた「ちょっと変な表現」は、あえて採用しています レイアウト調整が、しんどかった・・・