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
Kubernetes × CircleCIで実現する安心安全Deploy / Safe Dep...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
VTRyo
June 03, 2020
Technology
3.7k
1
Share
Kubernetes × CircleCIで実現する安心安全Deploy / Safe Deploy with Kubernetes and CircleCI
2020.6.3 CircleCI ユーザーコミュニティミートアップ登壇資料
https://circleci.connpass.com/event/175195/
VTRyo
June 03, 2020
More Decks by VTRyo
See All by VTRyo
あの職員室 / That teachers' lounge
vtryo
0
120
自分だけの、誰も想像できないキャリアの育て方 〜偶然から始めるキャリアプラン〜 / Career planning starting by luckly v2
vtryo
1
460
60以上のプロダクトを持つ組織における開発者体験向上への取り組み - チームAPIとBackstageで構築する組織の可視化基盤 - / sre next 2025 Efforts to Improve Developer Experience in an Organization with Over 60 Products
vtryo
3
2.9k
一体いつからSRE NEXTがSREだけのカンファレンスだと錯覚していた? / When did you ever get the idea that SRE NEXT was a conference just for SREs?
vtryo
1
790
一人から始めたSREチーム3年の歩み - 求められるスキルの変化とチームのあり方 - / The three-year journey of the SRE team, which started all by myself
vtryo
9
15k
2ヶ月かかるDBアップグレード検証を最大2週間に短縮した自作Go製CLIツール「Platinum」を紹介する / Introducing Go CLI tool "Platinum" for shortened DB upgrade validation
vtryo
3
2.1k
MySQLテーブル毎のデータサイズ集計をDatadog × Prometheus Exporter × Kubernetesを使って自動化する / Automate data size aggregation for each MySQL table using Datadog, Prometheus Exporter and Kubernetes
vtryo
0
470
自分だけの、誰も想像できないキャリアの育て方 ~懇親会で実践できる!偶然から始めるキャリアプラン~ / Career planning starting by luckly
vtryo
2
1.4k
なぜSREをはじめるのは難しいのか / Why is it hard to start SRE?
vtryo
1
740
Other Decks in Technology
See All in Technology
AndroidアプリとCopilot Studioの統合
nakasho
0
200
GKE Agent SandboxでAIが生成したコードを 安全に実行してみた
lamaglama39
0
190
コミュニティ・勉強会を作るのは目的じゃない
ohmori_yusuke
0
290
MySQL 9.7がやってきた ~これまでのあらすじと基本情報~ @ 日本MySQLユーザ会会2026年04月 / mysql97-yattekita
sakaik
0
170
AI時代に越境し、 組織を変えるQAスキルの正体 / QA Skills for Transforming an Organization
mii3king
5
3.8k
AgentCore Managed Harness を使ってみよう
yakumo
2
320
CyberAgent YJC Connect
shimaf4979
1
150
Vision Banana: Image Generators are Generalist Vision Learners
kzykmyzw
0
140
バイブコーディングで3倍早く⚪⚪を作ってみた
samakada
0
220
Shipping AI Agents — Lessons from Production
vvatanabe
0
320
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
4
6.9k
20260513_生成AIを専属DSに_AI分析結果の検品テクニック_ハンズオン_交通事故データ
doradora09
PRO
0
180
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
106
240k
What's in a price? How to price your products and services
michaelherold
247
13k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
280
WCS-LA-2024
lcolladotor
0
570
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
900
Between Models and Reality
mayunak
3
280
Facilitating Awesome Meetings
lara
57
6.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Raft: Consensus for Rubyists
vanstee
141
7.4k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
330
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.1k
Transcript
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. Kubernetes
× CircleCI で実現する安⼼安全Deploy VTRyo / @3s_hv #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. #CircleCIJP
イベントハッシュタグ #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. #CircleCIJP
スライドは公開します
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. VTRyo
/ @3s_hv ➤ 株式会社マツリカ / SRE ➤ 作家(早く脱稿したい) ➤ CircleCIユーザコミュニティメ ンバー etc. ➤ AWS Summit 2019 Startup Central 登壇 etc. https://vtryo.me illustration by 湊川あい #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. 営業をもっと⾃由に、もっと創造的に。
#CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. 営業をもっと⾃由に、もっと創造的に。
#CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. 営業をもっと⾃由に、もっと創造的に。
#CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
CI/CDってなんだっけ? ➤ 安⼼安全のDeployって? ➤ CircleCIに何をさせている? ➤ Deploy Workflow ➤ config.yml 話すこと #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ⼿動でDeployまでしている⼈
#CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. Build,
Testは⾃動の⼈ #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. Build,
Test, Deploy承認 までは⾃動の⼈ #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ⾃動でDeployまでしている⼈
#CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ⾃動
CI/CDってなんだっけ? #CircleCIJP 参考:https://aws.amazon.com/jp/devops/continuous-delivery/ Build & Test Deploy Staging Deploy Production Commit change ⾃動 継続的インテグレーション 継続的デリバリ 継続的デプロイメント v1.1 本番Deploy 承認します ⾃動
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
CI(継続的インテグレーション) ➤ リリースプロセスのBuild段階とTest段階のことを指す。コードの変更がCommit されるたびに、⾃動化されたBuildとTestが実⾏される ➤ CD(継続的デリバリ) ➤ リリースプロセスの全体を⾃動化すること。ステージング環境まで⾃動Deployさ れる。本番環境へのDeployするかは開発者が決める ➤ CD(継続的デプロイメント) ➤ 継続的デリバリにおいて、本番環境へのDeployに承認が必要かどうか CI/CDってなんだっけ? #CircleCIJP 参考:https://aws.amazon.com/jp/devops/continuous-delivery/
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ҆৺҆શͷDeployͱ
#CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. 1.
開発者なら誰でもDeployまでできる CircleCIの頑張りどころ #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. 2.
⼈間が頑張らずにDeployまでできる CircleCI, Kubernetes の頑張りどころ #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. 3.
Stagingでテストされた環境が ProductionにDeployされる CircleCI, Kubernetes の頑張りどころ #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ͜ͷ3ͭΛϙΠϯτʹ
͍͖ͯ͠·͢ #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ։ൃऀͳΒ୭ͰDeploy·ͰͰ͖Δ
#CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ⾃動
どこの部分の話? #CircleCIJP 参考:https://aws.amazon.com/jp/devops/continuous-delivery/ Build & Test Deploy Staging Deploy Production Commit change ⾃動 継続的インテグレーション 継続的デリバリ 継続的デプロイメント v1.1 本番Deploy 承認します ⾃動 ͜͜ͷΛ͢ΔΑ
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
開発者がソースコードをPush or Mergeすると… ➤ CircleCIがBuild & Testを開始 ➤ DockerΠϝʔδ͕ECRにPushされる ➤ KubernetesクラスタにDeployされる Workflowの概要 #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
開発者がソースコードをPush or Mergeすると… ➤ CircleCIがBuild & Testを開始 ➤ DockerΠϝʔδ͕ECRにPushされる ➤ KubernetesクラスタにDeployされる Workflowの概要 開発者がやることはシンプル #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
⾃動的にテスト(リリース候補確認)環境にDeployされる ➤ 開発者はMasterにMergeするだけでOK v1.1がMasterにMergeされたWorkflow #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
ProductionリリースWorkflowはStaging(本番相当)環境に⾃動Deployされる ➤ 問題なければ「request_prod 」をApprovedすることで本番Deployされる v1.1がProduction DeployされるときのWorkflow #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
ProductionリリースWorkflowはStaging(本番相当)環境に⾃動Deployされる ➤ 問題なければ「request_prod 」をApprovedすることで本番Deployされる v1.1がProduction DeployされるときのWorkflow #CircleCIJP 開発者は「Approved」するだけ
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
ProductionリリースWorkflowはStaging(本番相当)環境に⾃動Deployされる ➤ 問題なければ「request_prod 」をApprovedすることで本番Deployされる v1.1がProduction DeployされるときのWorkflow #CircleCIJP 安全だね!
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
Stagingに⾃動的にDeployしたあとに ApprovedのJobを挟んでおく ➤ 開発者はこの中⾝を知らなかったとしても Deployすることができる config.yml #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ਓ͕ؒؤுΒͣʹDeploy·ͰͰ͖Δ
#CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ⾃動
どこの部分の話? #CircleCIJP 参考:https://aws.amazon.com/jp/devops/continuous-delivery/ Build & Test Deploy Staging Deploy Production Commit change ⾃動 継続的インテグレーション 継続的デリバリ 継続的デプロイメント v1.1 本番Deploy 承認します ⾃動 ͜͜ͷΛ͢ΔΑ
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
⼈間がコマンドラインなどを使⽤してDeployするやりかた ➤ kubectl apply ➤ terraform apply ➤ Deploy時にパラメータの変更が⼿動で必要なやりかた ⼈間が頑張るDeployとは(⼀例です) #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
⼈間がコマンドラインなどを使⽤してDeployするやりかた ➤ kubectl apply ➤ terraform apply ➤ Deploy時にパラメータの変更が⼿動で必要なやりかた ⼈間が頑張るDeployとは(⼀例です) #CircleCIJP いつかミスでる & 時間かかる
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
変更されたコードのテスト ➤ Dockerイメージの作成 ➤ 作成されるたび、Dockerイメージタグにバージョン管理のためコミットハッシュ を付与する ➤ ECRにPushする ➤ Migrationの実⾏ ➤ Deploy ➤ クラスタで、作成したDockerイメージに差し替える KubernetesクラスタにDeployするまで #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
変更されたコードのテスト ➤ Dockerイメージの作成 ➤ 作成されるたび、Dockerイメージタグにバージョン管理のためコミットハッシュ を付与する ➤ ECRにPushする ➤ Migrationの実⾏ ➤ Deploy ➤ クラスタで、作成したDockerイメージに差し替える KubernetesクラスタにDeployするまで #CircleCIJP なんだかんだ⾔ってやること多い
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
Dockerイメージタグにコミットハッシュ ➤ ↑で作成されたDockerイメージを使ってDeployされる config.yml #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
ECRの操作は、CircleCI Orbsを利⽤することで簡単に実現できる config.yml #CircleCIJP 参考:https://circleci.com/orbs/registry/orb/circleci/aws-ecr
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. StagingͰςετ͞Εͨڥ͕
ProductionʹDeploy͞ΕΔ #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ⾃動
どこの部分の話? #CircleCIJP 参考:https://aws.amazon.com/jp/devops/continuous-delivery/ Build & Test Deploy Staging Deploy Production Commit change ⾃動 継続的インテグレーション 継続的デリバリ 継続的デプロイメント v1.1 本番Deploy 承認します ⾃動 ͜͜ͷΛ͢ΔΑ
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
StagingにDeployされてからでなければProductionへDeployできない流れ v1.1がProduction DeployされるときのWorkflow #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. なぜその流れがよいの?
#CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. かつての地獄…
➤ Opsworksによる構築、Deploy ➤ Stackによって失敗したりする ➤ 詳細なログを出してくれない… ➤ 構成変更に時間がかかる(停⽌も⻑ い) ➤ Chef ➤ 毎回Setupコマンド待ち ➤ ローカル開発環境はDockerなんだけど… #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. 確かなDockerイメージをProductionへ
#CircleCIJP Deploy Staging Deploy Production Docker Image ⾃動 workflowでは Staging Deploy前にdocker build実⾏ 同じDockerイメージがDeploy ➤ 動作確認が取れているDockerイメージが 確実にProductionへ届く ➤ 安定性の向上 ➤ 「それStagingだと環境差分があって 再現しないんですよ」が減る ※データベース内容による環境差分はあると思います
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. 確かなDockerイメージをProductionへ
#CircleCIJP Deploy Staging Deploy Production Docker Image ⾃動 workflowでは Staging Deploy前にdocker build実⾏ 同じDockerイメージがDeploy ➤ 動作確認が取れているDockerイメージが 確実にProductionへ届く ➤ 安定性の向上 ➤ 「それStagingだと環境差分があって 再現しないんですよ」が減る ※データベース内容による環境差分はあると思います 安全だね!
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
CircleCIによって、継続的デプロイメント(or 継続的デリバリ)の実装が可能 ➤ 「⼈間が頑張らず、誰でもDeployできる」ことには様々なメリットがあるよ ➤ 効率化 ➤ 属⼈化排除 ➤ Deploy安定性向上 ➤ Staging→ProductionというDeployフローが可能なら実装するとメリットがあるよ ➤ 動作確認保証が取れたものがProductionへ届く ➤ サービス安定性向上 まとめ #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. ➤
Amazon EKSͰߏங͢ΔࣾPaaS ➤ https://speakerdeck.com/vtryo/create-paas-eks ➤ KubernetesͷJobͰ࣮ߦͨ͠MigrationͷϩάΛCircleCIͰݟΕΔͱศར ➤ https://blog.vtryo.me/entry/migration-log-to-circleci ➤ CircleCIͰϏϧυ͍ͯ͠Δϒϥϯν໊ΛDockerΠϝʔδͷλάʹઃఆ͢Δ ➤ https://blog.vtryo.me/entry/docker-image-tag-using-branch-name その他 参考資料 #CircleCIJP
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. Hire
me! (side job.) ➤ Hire meは冗談ですが、ご相談はいつで もお待ちしています ➤ Twitter→@3s_hv #CircleCIJP illustration by 湊川あい
© 株式会社マツリカ ∕ mazrica, inc. - All Rights Reserved. Kubernetes
× CircleCI で実現する安⼼安全Deploy VTRyo / @3s_hv 完 #CircleCIJP