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
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
110
自分だけの、誰も想像できないキャリアの育て方 〜偶然から始めるキャリアプラン〜 / Career planning starting by luckly v2
vtryo
1
430
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
770
一人から始めた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
460
自分だけの、誰も想像できないキャリアの育て方 ~懇親会で実践できる!偶然から始めるキャリアプラン~ / 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
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.2k
猫でもわかるKiro CLI(CDKコーディング編)
kentapapa
1
110
Azure Static Web Apps の自動ビルドがタイムアウトしやすくなった状況に対応した件/global-azure2026
thara0402
0
270
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
16k
最近の技術系の話題で気になったもの色々(IoT系以外も) / IoTLT 花見予定会(たぶんBBQ) @都立潮風公園バーベキュー広場
you
PRO
1
170
Digitization部 紹介資料
sansan33
PRO
1
7.3k
QGISプラグイン CMChangeDetector
naokimuroki
1
260
数案件を同時に進行するためのコンテキスト整理術
sutetotanuki
2
240
Hello UUID
mimifuwacc
0
140
Discordでリモートポケカしてたら、なぜかDOを25分間動かせるようになった話
umireon
0
140
2026年度新卒技術研修 サイバーエージェントのデータベース 活用事例とパフォーマンス調査入門
cyberagentdevelopers
PRO
8
8.5k
暗黙知について一歩踏み込んで考える - 暗黙知の4タイプと暗黙考・暗黙動へ
masayamoriofficial
0
1.7k
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
340
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
880
Skip the Path - Find Your Career Trail
mkilby
1
100
First, design no harm
axbom
PRO
2
1.2k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
520
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
Done Done
chrislema
186
16k
Navigating Team Friction
lara
192
16k
HDC tutorial
michielstock
1
610
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Are puppies a ranking factor?
jonoalderson
1
3.3k
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