Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ラクマにおけるGitOps導入事例
Search
Hidekazu Miyamoto
May 26, 2021
Technology
1.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ラクマにおけるGitOps導入事例
https://resources.github.com/webcasts/jp-github-infocus-devops/
Hidekazu Miyamoto
May 26, 2021
More Decks by Hidekazu Miyamoto
See All by Hidekazu Miyamoto
#DevOpsDaysTokyo ラクマとGitHub ActionsとGitOps
hiiiide
1
790
Other Decks in Technology
See All in Technology
Claude Codeから見る、エンジニアの世界の変容とその先
oikon48
8
5k
2拠点SRE活動始めてみた | sogaoh's LT @ ホンマでっかSRE勉強会 #3
sogaoh
PRO
0
220
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
2
2.6k
AIエージェント統制はAPIから——押さえるべき5つの要素
nagix
0
110
素人でもできた!AIを使った短編小説創作入門
delhi09
PRO
0
270
Claude for Google Workspaces ポン出し/claude-for-google-workspace-slide-conversion
emiki
0
13k
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
450
ひとりで始めた AI駆動開発、チームに広げて何が変わったのか
kenichiodo
1
200
生き様としてのSRE
hokkai7go
1
140
データマネジメント × 法務で作りあげる、 freeeの新しいデータガバナンスへの軌跡
freee
PRO
3
600
AI Search (Foundry IQ) におけるRAGデータの準備と配置
ryomaru0825
1
110
[General] 개발자로 해외 기업에서 일하기
skydoves
1
210
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
470
My Coaching Mixtape
mlcsv
0
370
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Raft: Consensus for Rubyists
vanstee
143
7.8k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
420
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
A Modern Web Designer's Workflow
chriscoyier
699
190k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
59k
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
The Language of Interfaces
destraynor
162
27k
Transcript
May 26th, 2021 GitHub InFocus Hidekazu Miyamoto C2C Service Development
Section. Rakuten Group, Inc. ラクマにおけるGitOps導⼊事例
2 Hidekazu Miyamoto Tech Lead, Rakuma SRE Team Hello!
3
4 ラクマSREについて ラクマSREチームについて
5 SREチームの任務 • サービスを提供するインフラシステムの設計・構築・運⽤ • 24/365のサービスの安定稼働 • パフォーマンスチューニング • ⼈でスケールするのではなく、システムでスケールさせること
6 課題 • 新たな機能をどんどん追加してサービスを成⻑させないといけない時期 SRE
7 課題 • 新たな機能をどんどん追加してサービスを成⻑させないといけない時期 • 新機能追加時の構成相談や、設定変更依頼、インフラに関する問い合わせが増加 Consultation Capacity Consultation Architect
Change setting request Trouble Shooting SRE Support
8 課題 • 新たな機能をどんどん追加してサービスを成⻑させないといけない時期 • 新機能追加時の構成相談や、設定変更依頼、インフラに関する問い合わせが増加 • サービスの稼働率の担保、監視、障害対応も並⾏して⾏わないといけない Consultation Capacity
Consultation Architect Change setting request Trouble Shooting Monitoring CI/CD Incident Audit SRE Oparation Support
9 課題 • 新たな機能をどんどん追加してサービスを成⻑させないといけない時期 • 新機能追加時の構成相談や、設定変更依頼、インフラに関する問い合わせが増加 • サービスの稼働率の担保、監視、障害対応も並⾏して⾏わないといけない Consultation Capacity
Consultation Architect Change setting request Trouble Shooting Monitoring CI/CD Incident Audit SRE Oparation Support
10 監査の証跡集めに必要なもの • いつ、誰が、どのような変更をしたのか • 責任者の承認をえた上で変更作業を実施しているのか
11 ラクマSREについて GitOpsについて
12 GitOpsとは https://www.weave.works/blog/gitops-operations-by-pull-request • 2017年に公開されたWeaveworks社のブログで “GitOps”という⾔葉が誕⽣ • 要約すると、⼈の⼿を介さずにインフラに関するのコードをGitで管理する思想 • 主にKubernetesのリソース管理で使われることが多い
• インフラの変更に関する追跡情報が集約されているため、監査の証跡集めとしても有効
13 ラクマSREについて Terraformの実⾏環境の仕組み
14 実現したい事 - 開発編 Cloud Platform Developer GitHub Actions 1.
PullRequest 2. Action 4. plan terraform-repo 3. init, fmt 5. Add the result to comment
15 実現したい事 – リリース編 Cloud Platform Developer GitHub Actions 1.
Approve 3. Action 4. apply terraform-repo Code Owner 2. Merge
None
None
None
19 Sample Code https://gist.github.com/hiiiide/1ae69bebb8c0335c177a8b32763e505e
20 ラクマSREについて Kubernetesのリソース管理を どのようなGitHub Actionsを組み合わせて GitOps化したか
21 実現したい事 Developer application-repo k8s-manifest-repo GitHub Actions Container Registry 1.
Push 2. Action 3. Push Image 4. Push manifest file 5. Polling 6. apply
22 コンテナのビルドとプッシュ Developer application-repo k8s-manifest-repo GitHub Actions Container Registry 1.
Push 2. Action 3. Push Image 4. Push manifest file 5. Polling 6. apply
23 コンテナのビルドとプッシュ
24 コンテナのビルドとプッシュ コンテナレジストリのログイン処理 ビルド、プッシュ処理 初期処理
25 マニフェストファイルの更新 + Pull Request作成 Developer application-repo k8s-manifest-repo GitHub Actions
Container Registry 1. Push 2. Action 3. Push Image 4. Push manifest file 5. Polling 6. apply
26 マニフェストファイルの更新 + Pull Request作成 • 外部のレポジトリ(k8s-manifest-repo)のチェックアウトが必要 • デフォルトで⽤意されているCheckoutで実現可能 •
対象のレポジトリを⽤意するだけでOK(pathの指定は任意)
27 マニフェストファイルの更新 + Pull Request作成 • マニフェストファイル(Deployment)をGitHub Actions内で変更する • 今回はrubyスクリプトを⽤意して、コンテナイメージのタグを更新
• もっとシンプルにしたい場合は yq コマンドを使⽤すると良い
28 マニフェストファイルの更新 + Pull Request作成
29 マニフェストファイルの更新 + Pull Request作成
30 マニフェストファイルの更新 + Pull Request作成
31 GitOpsのブランチ戦略について
32 前提 • Kustomizeを使⽤したKubernatesのマニフェストファイルを、どのようなブランチ戦略で管理してくか に焦点を当てる • Kustomizeとは、Kubernetesのyamlを効率よく運⽤するのに特化したパッケージングツール
33 PRD K8S Cluster staging branch develop branch main branch
feature branch STG K8S Cluster DEV K8S Cluster ブランチ戦略 Pattern1 3. merge 2. merge 1. checkout 4. merge
34 PRD K8S Cluster staging branch develop branch main branch
feature branch STG K8S Cluster DEV K8S Cluster ブランチ戦略 Pattern2 4. merge 3. merge 2. merge 1. checkout
35 PRD K8S Cluster main branch feature branch STG K8S
Cluster DEV K8S Cluster ブランチ戦略 Pattern3 - overlay更新時 2. merge 1. checkout
36 PRD K8S Cluster main branch feature branch STG K8S
Cluster DEV K8S Cluster ブランチ戦略 Pattern3 - base更新時 2. merge 1. checkout
37 Pattern3 Pros Cons List Pattern1 Pattern2 Pros Cons Pattern1
ブランチが固定になっている為わかりやすい overlaysの対応を⾏う時に他のbranchへのマージ漏れが出てくる可能性があ る Pattern2 ブランチが固定になっている為わかりやすい Pattern1で懸念していたマージ漏れは回避できる 対応するフローが多く⾯倒 Pattern3 ブランチの構成がシンプル Pattern1で懸念していたマージ漏れは回避できる baseの対応時のbranch切り替え作業が⾯倒
38 まとめ • インフラの設定管理もコードで管理すれば、監査対応も楽になる • 何かやりたいことがあれば、まずはGitHub MarketplaceでActionsを探そう • GitOpsを導⼊するときはブランチ戦略を考えてから実戦に挑もう
None