Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Apr 16th, 2021 DevOpsDays Tokyo 2021 Hidekazu Miyamoto C2C Service Development Section. Rakuten Group, Inc. ラクマとGitHub ActionsとGitOps
Slide 2
Slide 2 text
2 Hidekazu Miyamoto Tech Lead, Rakuma SRE Team Hello!
Slide 3
Slide 3 text
3
Slide 4
Slide 4 text
4 ラクマSREについて ラクマSREチームについて
Slide 5
Slide 5 text
5 SREチームの任務 • サービスを提供するインフラシステムの設計・構築・運⽤ • 24/365のサービスの安定稼働 • パフォーマンスチューニング • ⼈でスケールするのではなく、システムでスケールさせること
Slide 6
Slide 6 text
6 チーム構成 • ⼈数はエンジニア全体に対して約10% • 複数あるチームを横断して開発をサポート • 別チームにジョインして⼀緒に開発することもある
Slide 7
Slide 7 text
7 課題 • 新たな機能をどんどん追加してサービスを成⻑させないといけない時期 • 新機能追加時の構成相談や、設定変更依頼、インフラに関する問い合わせが増加 • 並⾏して、サービスの稼働率の担保、監視、障害対応や運⽤負荷を軽減する為の開発も⾏わないといけない
Slide 8
Slide 8 text
8 課題 • 新たな機能をどんどん追加してサービスを成⻑させないといけない時期 • 新機能追加時の構成相談や、設定変更依頼、インフラに関する問い合わせが増加 • 並⾏して、サービスの稼働率の担保、監視、障害対応や運⽤負荷を軽減する為の開発も⾏わないといけない
Slide 9
Slide 9 text
9 監査の証跡集めに必要なもの • いつ、誰が、どのような変更をしたのか • 責任者の承認をえた上で変更作業を実施しているのか
Slide 10
Slide 10 text
10
Slide 11
Slide 11 text
11 Photo by Yancy Min on Unsplash https://unsplash.com/photos/842ofHC6MaI
Slide 12
Slide 12 text
監査側で求められているもの GitHub等で⾏っている事 いつ、誰が、どのような変更をしたのか コードで管理されていれば、詳細な変更管理が可能 また、PullRequest作成時に経緯等を記録することが可能 責任者の承認をえた上で変更作業を実施している のか main branch にマージするタイミングでコードオーナー の承認をもらってリリースを⾏う
Slide 13
Slide 13 text
13 ラクマSREについて GitHub Actionsを使った Terraformの実⾏環境の仕組み
Slide 14
Slide 14 text
14 実現したい事
Slide 15
Slide 15 text
15 実現したい事
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
18 ラクマSREについて Kubernetesのリソース管理を どのようなGitHub Actionsを組み合わせて GitOps化したか
Slide 19
Slide 19 text
19 実現したい事
Slide 20
Slide 20 text
20 実現したい事
Slide 21
Slide 21 text
21 実現したい事
Slide 22
Slide 22 text
22 実現したい事 • コンテナをビルドしてコンテナレジストリにプッシュする • 複数のレポジトリをチェックアウトする • Kubernetesのマニフェストファイルを更新する • 変更したマニフェストファイルに対してPull Requestを作成する
Slide 23
Slide 23 text
23 コンテナをビルドしてコンテナレジストリにプッシュする
Slide 24
Slide 24 text
24 コンテナをビルドしてコンテナレジストリにプッシュする
Slide 25
Slide 25 text
25 コンテナをビルドしてコンテナレジストリにプッシュする
Slide 26
Slide 26 text
26 コンテナをビルドしてコンテナレジストリにプッシュする
Slide 27
Slide 27 text
27 コンテナをビルドしてコンテナレジストリにプッシュする
Slide 28
Slide 28 text
28 複数のレポジトリをチェックアウトする
Slide 29
Slide 29 text
29 複数のレポジトリをチェックアウトする
Slide 30
Slide 30 text
30 Kubernetesのマニフェストファイルを更新する
Slide 31
Slide 31 text
31 変更したマニフェストファイルに対してPull Requestを作成する
Slide 32
Slide 32 text
32 変更したマニフェストファイルに対してPull Requestを作成する
Slide 33
Slide 33 text
33 変更したマニフェストファイルに対してPull Requestを作成する
Slide 34
Slide 34 text
34 IaCを⾏う上でのブランチ戦略の 考慮ポイント
Slide 35
Slide 35 text
35
Slide 36
Slide 36 text
36
Slide 37
Slide 37 text
37
Slide 38
Slide 38 text
38 ブランチ戦略 Pattern1
Slide 39
Slide 39 text
39 ブランチ戦略 Pattern1 • Pros • ブランチが固定になっている為わかりやすい • Cons • overlaysの対応を⾏う時に他のbranchへのマージ漏れが 出てくる可能性がある
Slide 40
Slide 40 text
40
Slide 41
Slide 41 text
41 ブランチ戦略 Pattern2
Slide 42
Slide 42 text
42 ブランチ戦略 Pattern2 • Pros • ブランチが固定になっている為わかりやすい • Pattern1で懸念していたマージ漏れは回避できる • Cons • 対応するフローが多く⾯倒
Slide 43
Slide 43 text
43
Slide 44
Slide 44 text
44 ブランチ戦略 Pattern3 - overlay更新時
Slide 45
Slide 45 text
45 ブランチ戦略 Pattern3 - base更新時
Slide 46
Slide 46 text
46 ブランチ戦略 Pattern3 • Pros • ブランチの構成がシンプル • Pattern1で懸念していたマージ漏れは回避できる • Cons • baseの対応時のbranch切り替え作業が⾯倒
Slide 47
Slide 47 text
47 Photo by alevision.co on Unsplash https://unsplash.com/photos/D-oimR6JX0E
Slide 48
Slide 48 text
No content