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
1
3.2k
Kubernetes × CircleCIで実現する安心安全Deploy / Safe Deploy with Kubernetes and CircleCI
2020.6.3 CircleCI ユーザーコミュニティミートアップ登壇資料
https://circleci.connpass.com/event/175195/
VTRyo
June 03, 2020
Tweet
Share
More Decks by VTRyo
See All by VTRyo
一人から始めたSREチーム3年の歩み - 求められるスキルの変化とチームのあり方 - / The three-year journey of the SRE team, which started all by myself
vtryo
8
6.7k
2ヶ月かかるDBアップグレード検証を最大2週間に短縮した自作Go製CLIツール「Platinum」を紹介する / Introducing Go CLI tool "Platinum" for shortened DB upgrade validation
vtryo
3
1.1k
MySQLテーブル毎のデータサイズ集計をDatadog × Prometheus Exporter × Kubernetesを使って自動化する / Automate data size aggregation for each MySQL table using Datadog, Prometheus Exporter and Kubernetes
vtryo
0
340
自分だけの、誰も想像できないキャリアの育て方 ~懇親会で実践できる!偶然から始めるキャリアプラン~ / Career planning starting by luckly
vtryo
2
1.2k
なぜSREをはじめるのは難しいのか / Why is it hard to start SRE?
vtryo
1
540
Datadogでシステムとアプリケーション情報を民主化をはじめよう / System and Application information democratize with datadog
vtryo
2
3.2k
サービスと開発者に最も近いProduct SREsとして 取り組んでいるコト / Work as Product SREs closest to services and developers
vtryo
0
2.8k
一人から始めるプロダクトSRE / How to start SRE in a product team, all by yourself
vtryo
5
13k
へんなSlackスタンプMeetup
vtryo
0
380
Other Decks in Technology
See All in Technology
クラウドサービス事業者におけるOSS
tagomoris
1
480
RECRUIT TECH CONFERENCE 2025 プレイベント【高橋】
recruitengineers
PRO
0
150
Classmethod AI Talks(CATs) #16 司会進行スライド(2025.02.12) / classmethod-ai-talks-aka-cats_moderator-slides_vol16_2025-02-12
shinyaa31
0
100
滅・サービスクラス🔥 / Destruction Service Class
sinsoku
6
1.6k
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
2
240
PL900試験から学ぶ Power Platform 基礎知識講座
kumikeyy
0
130
アジャイル開発とスクラム
araihara
0
170
トラシューアニマルになろう ~開発者だからこそできる、安定したサービス作りの秘訣~
jacopen
2
2k
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
110
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
360
OpenID Connect for Identity Assurance の概要と翻訳版のご紹介 / 20250219-BizDay17-OIDC4IDA-Intro
oidfj
0
270
ホワイトボードチャレンジ 説明&実行資料
ichimichi
0
130
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
51
7.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Optimizing for Happiness
mojombo
376
70k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Embracing the Ebb and Flow
colly
84
4.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Writing Fast Ruby
sferik
628
61k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
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