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
20230929_SRE_NEXT_エラーバジェット運用までの取り組み-信頼性の低下に対...
Search
gonkun
September 29, 2023
Technology
2
3.1k
20230929_SRE_NEXT_エラーバジェット運用までの取り組み-信頼性の低下に対するアクションを定義しよう / Let's define actions against unreliability
https://sre-next.dev/2023/schedule/#jp050
gonkun
September 29, 2023
Tweet
Share
More Decks by gonkun
See All by gonkun
20240119_KEDAでスパイク負荷を迎え撃つ。メトリクスとスケジュールドリブンなオートスケールでKubernetes上のプロダクトの信頼性を高めよう/lets_use_keda_for_reliability
gonkun
1
250
はじめの一歩を踏み出したい方へ~SREというロールを担うためにやったこと、学びや反省 / Let's start the first step to the SRE
gonkun
3
510
Other Decks in Technology
See All in Technology
製造現場のデジタル化における課題とPLC Data to Cloudによる新しいアプローチ
hamadakoji
0
180
「 SharePoint 難しい」ってよく聞くけど、そんなに言うなら8歳の息子に試してもらった
taichinakamura
2
780
3次元点群データ「VIRTUAL SHIZUOKA』のオープンデータ化による恩恵と協働の未来/FOSS4G Japan 2024
kazz24s
0
110
徹底比較!HA Kubernetes ClusterにおけるControl Plane LoadBalancerの選択肢
logica0419
2
140
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
0
1k
QAEチームが辿った3年 ボクらが改善業務にスクラムを選んだワケ / 20241108_cloudsign_ques23
bengo4com
0
530
データ活用促進のためのデータ分析基盤の進化
takumakouno
2
120
VPC間の接続方法を整理してみた #自治体クラウド勉強会
non97
1
1.1k
プロポーザルのつくり方 〜個人技編〜 / How to come up with proposals
ohbarye
4
300
AWS CDKでデータリストアの運用、どのように設計する?~Aurora・EFSの実践事例を紹介~/aws-cdk-data-restore-aurora-efs
mhrtech
4
850
プロダクトエンジニアが活躍する環境を作りたくて 事業責任者になった話 ~プロダクトエンジニアの行き着く先~
gimupop
1
600
TinyGoを使ったVSCode拡張機能実装
askua
2
200
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Designing the Hi-DPI Web
ddemaree
280
34k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Side Projects
sachag
452
42k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Designing Experiences People Love
moore
138
23k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
7
520
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Transcript
エラーバジェット運用までの取り組み 信頼性の低下に対するアクションを定義しよう 株式会社マネーフォワード MFBC-CTO室 SRE部 HRソリューショングループ 佐々木 優太 SRE NEXT
2023/09/29 Track B #srenext_b
#srenext_b 自己紹介 佐々木 優太(ゴンくん) 株式会社マネーフォワード MFBC-CTO室 > SRE部 > HRソリューショングループ
@gogogonkun https://gonkunblog.com/
#srenext_b 過去に障害を連続で起こしてしまった経験から 信頼性の低下に対するアクションを取るために ポリシーを定義して運用した話です。 本発表の概要
#srenext_b こんな経験はありませんか? 小さな障害やその予兆を軽視した結果 後々大きな障害へと発展してしまう
#srenext_b こんな経験はありませんか? 運用も開発もどちらも大事 でも上手くバランスを取るのが難しい
#srenext_b 信頼性の低下に対する アクションを定めてみませんか? こんな経験はありませんか?
#srenext_b もくじ 1. はじめに 2. なぜ、我々SREはエラーバジェットの運用にこだわるのか 3. エラーバジェットの運用は後回しになりがち 4. エラーバジェットポリシーを策定する
5. 運用して良かったこと・学びと反省 6. 今後の展望 7. まとめ
#srenext_b 1. はじめに 2. なぜ、我々SREはエラーバジェットの運用にこだわるのか 3. エラーバジェットの運用は後回しになりがち 4. エラーバジェットポリシーを策定する 5.
運用して良かったこと・学びと反省 6. 今後の展望 7. まとめ
本発表の対象者 SLOまでは定めているんだけれども、 まだまだ活用出来ていない方 開発と運用、どちらも大事だけど... 双方のバランスの取り方に悩んでいる方
エラーバジェットの運用を始めよう! とチームへ提案出来る状態へ - 運用する意義が分かる - 具体的に何をすべきかが分かる 持ち帰れること
#srenext_b 定量化した信頼性に対する低下の許容量がエラーバジェット 本セッションの前提情報 信頼性 SLI SLO エラーバジェット 定量化 目標設定 可用性、
エラーレート等 目標: 99.9% 予算: 0.1% (100% - 99.9%) 許容量算出 例
#srenext_b 障害 エラーバジェット運用 = 意思決定にエラーバジェットを活用する。 本セッションの前提情報 エラーバジェット 予算: 0.1% (100%
- 99.9%) エラーバジェット ポリシー アクション 例 バジェット消費 7日間で予算が50%減少したら 信頼性回復のアクション実施 ルール化 遵守 根本対処 リリース凍結 この発表中では エラーバジェットの消費に対する アクションを定めて遵守すること。
#srenext_b 本セッションの前提情報
#srenext_b 本セッションの前提情報
#srenext_b 本セッションの前提情報 等々 今回はプロダクトSREがクラウド勤怠チームに エラーバジェットの運用をインストールした話
#srenext_b 本セッションの前提情報 クラウド勤怠チームが置かれていた状況
#srenext_b 本セッションの前提情報 - クラウド勤怠チームが置かれていた状況 ref: SRE NEXT 2022 一人から始めるプロダクト SRE
かつての一人SREの活動により、クラウド勤怠チームに SREプラクティスがインストールされていた
#srenext_b 本セッションの前提情報 - クラウド勤怠チームが置かれていた状況 かつての一人SREの活動により、チームは成長していた - SLIを実装/計測し、SLOを定められている - SLOが守れない(エラーバジェットの消費) =
ユーザの満足度の低下 と考えられている
#srenext_b 本セッションの前提情報 - クラウド勤怠チームが置かれていた状況 かつての一人SREの活動により、チームは成長していた - SLIを実装し、SLOを計測出来ている - SLOが守れない(エラーバジェットの消費) =
ユーザの満足度の低下 と考えられている - SLO違反に対するアクションは未定義 → エラーバジェットの運用は出来ていなかった
#srenext_b 1. はじめに 2. なぜ、我々SREはエラーバジェットの運用にこだわるのか 3. エラーバジェットの運用は後回しになりがち 4. エラーバジェットポリシーを策定する 5.
運用して良かったこと・学びと反省 6. 今後の展望 7. まとめ
#srenext_b なぜ、我々SREはエラーバジェットの運用にこだわるのか 開発と運用のバランスを取るにあたって 我々は合理的な意思決定を下したい 開発 運用 not 権力, 政治, 雰囲気
#srenext_b クラウド勤怠でエラーバジェットの運用を 始めるに至ったきっかけ なぜ、我々SREはエラーバジェットの運用にこだわるのか
#srenext_b 根本原因への対処が遅れ 障害を発生させてしまったこと なぜ、我々SREはエラーバジェットの運用にこだわるのか
#srenext_b なぜ、我々SREはエラーバジェットの運用にこだわるのか エラーバジェットを 使い果たす(障害) 当日中の原因特定には至らず... 時間経過に伴い障害が落ち着く 調査は開発の合間で 実施する程度の温度感 過去に起きたこと
#srenext_b なぜ、我々SREはエラーバジェットの運用にこだわるのか 数週間後にまた障害を発生させてしまう 同事象と思われる 障害が発生 (前回より規模大) 前回よりもユーザの信頼性を 大きく損ねる結果に 開発ロードマップの見直し 優先度が一気に引き上がり
無事に対処完了
#srenext_b なぜ、我々SREはエラーバジェットの運用にこだわるのか 開発 運用 小さな障害 障害の予兆 始めは調査や対処の優先度がそこまで高くならない
#srenext_b なぜ、我々SREはエラーバジェットの運用にこだわるのか 開発 運用 明らかにヤバい障害 小さな障害 障害の予兆 影響の規模感が大きくなってから優先度が上がる
#srenext_b なぜ、我々SREはエラーバジェットの運用にこだわるのか SRE/クラウド勤怠チームで考えたこと - もっと早く対処の優先順位を上げられなかったものか - エラーバジェットが低下しても、それを回復するために 工数を割くべきかその意思決定が出来ていない
#srenext_b 開発と運用のバランスを 「感覚的」に取っていることが問題 なぜ、我々SREはエラーバジェットの運用にこだわるのか
#srenext_b どうする... なぜ、我々SREはエラーバジェットの運用にこだわるのか
#srenext_b なぜ、我々SREはエラーバジェットの運用にこだわるのか 我々にはSLOがある
#srenext_b なぜ、我々SREはエラーバジェットの運用にこだわるのか SLOから算出したエラーバジェットの低下に伴うアクションを ポリシーとして定めることで「合理的」に意思決定を下せる 開発 運用 エラーバジェット
#srenext_b 1. はじめに 2. なぜ、我々SREはエラーバジェットの運用にこだわるのか 3. エラーバジェットの運用は後回しになりがち 4. エラーバジェットポリシーを策定する 5.
運用して良かったこと・学びと反省 6. 今後の展望 7. まとめ
#srenext_b エラーバジェットの運用は後回しになりがち 理想は... 1. SLOからエラーバジェットを算出する 2. エラーバジェットの低下に対するアクション (エラーバジェットポリシー)を定める 3. 上記のポリシーを元にエラーバジェットを運用する
#srenext_b エラーバジェットの運用は後回しになりがち 現実には... 1. SLOからエラーバジェットを算出する > そのSLO自体の妥当性は確かなの? 2. エラーバジェットの低下に対するアクション (エラーバジェットポリシー)を定める
> 開発に影響するポリシーをわざわざ定めるの? 3. 上記のポリシーを元にエラーバジェットを運用する > どこまで巻き込んで合意形成するの?
#srenext_b エラーバジェットの運用は後回しになりがち 各段階の途中で脱落することもある... SLI/SLOへの信頼 適切なポリシー設定 関係者との合意形成
#srenext_b エラーバジェットの運用は後回しになりがち 運用までに乗り越えるハードルが多い
#srenext_b 1. はじめに 2. なぜ、我々SREはエラーバジェットの運用にこだわるのか 3. エラーバジェットの運用は後回しになりがち 4. エラーバジェットポリシーを策定する 5.
運用して良かったこと・学びと反省 6. 今後の展望 7. まとめ
#srenext_b エラーバジェットポリシーを策定する エラーバジェット運用までの流れ 1. SLOに納得感を持ってもらう 2. エラーバジェットポリシー案を作成する 3. チームの合意を得る 4.
ロードマップの決定 / 変更権限を持つ人の合意を得る 5. エラーバジェットポリシーを遵守する
#srenext_b エラーバジェットポリシーを策定する - SLOに納得感を持ってもらう 毎週、SLOやメトリクスの状況をチームで眺める
#srenext_b エラーバジェットポリシーを策定する - SLOに納得感を持ってもらう 障害発生後のエラーバジェットの変化を確認する - チームの中で「即障害」と判断された際の SLO(エラーバジェットの消費量)を見る - エラーバジェット消費量と実際の障害規模を比較すると
SLOと肌感覚が合っているのか検証出来る
#srenext_b エラーバジェットポリシーを策定する SLOの信頼感が得られたら 次のステップへ
#srenext_b エラーバジェットポリシーを策定する - ポリシー案を作成 実体験を元にチームの「感覚」をポリシーとして明文化する 開発停止 復旧最優先 SLO (エラーバジェット) ◯◯機能
全ユーザ操作不可 事象 温度感 感覚 定量的に評価 エラーバジェット ポリシー アクション 変化量 例
#srenext_b エラーバジェットポリシーを策定する - ポリシー案を作成 ポリシー案を作成する上で注意すること - SREが勝手にポリシーを定めて、無理矢理従わせるのではない - チームの運用ルールを尊重する
#srenext_b エラーバジェットポリシーを策定する - ポリシー案を作成 エラーバジェットへのネガティブイメージを払拭する - リリースブロックのためのみのポリシーではない - 感覚ではなく、客観的な指標で議論出来るようになる =
チームにもメリットがあることを伝える
#srenext_b エラーバジェットポリシーを策定する - ポリシー案を作成 エラーバジェットポリシー例 - エラーバジェット枯渇 = 障害 -
即座にアクション会議を開催 - リリース凍結の有無、開発 優先度の組み替え要否を決定
#srenext_b エラーバジェットポリシーを策定する ポリシー案が整ってきたら 関係者との合意形成へ
#srenext_b エラーバジェットポリシーを策定する - チームの合意を得る クラウド勤怠チームに「良き理解者」を作り共に協力する - ポリシーはSREチームだけでは定められない - チームの一部メンバーにも推進役を担ってもらう リーダー層を巻き込んで
目標にも組み込んでもらえると心強い
#srenext_b エラーバジェットポリシーを策定する - 意思決定者の合意を得る ロードマップの決定 / 変更権限を持つ人の合意を得る - 最低限ここまでの関係者を巻き込まないと運用出来ない -
納得してもらえるまで説明あるのみ クラウド勤怠チーム SREチーム 良き理解者 ロードマップの 意思決定者 協力 意義の説明 意義の説明 ・・・
#srenext_b エラーバジェットポリシーを策定する SREとクラウド勤怠チームとで議論になったこと - エラーバジェット枯渇中に全てのリリース凍結は厳しすぎる
#srenext_b エラーバジェットポリシーを策定する - 議論したこと エラーバジェット枯渇中に全てのリリース凍結は厳しすぎる - リリース凍結の条件をより具体化 SLO違反の原因解決 + 回復のために工数を割けている場合は凍結解除
- リリース内容を細分化して可否を検討
#srenext_b エラーバジェットポリシーを策定する 何度も擦り合わせを行いつつ ようやく運用が出来る状態へ
#srenext_b 1. はじめに 2. なぜ、我々SREはエラーバジェットの運用にこだわるのか 3. エラーバジェットの運用は後回しになりがち 4. エラーバジェットポリシーを策定する 5.
運用して良かったこと・学びと反省 6. 今後の展望 7. まとめ
#srenext_b エラーバジェットを運用して良かったこと・学びと反省 「信頼性の回復を優先しましょう!」と宣言しやすくなった 根本原因がすぐに判明しないような、根深い問題が後回しになりにくくなった
#srenext_b エラーバジェットを運用して良かったこと・学びと反省 顕在化しづらい事象に対しても早めにアクションを打つことが出来る エラーバジェット 0% 100% エラーバジェットを一気に消費する場合 ほとんどが目に見えてヤバい障害である → 対応の優先度が比較的に上がりやすい
#srenext_b エラーバジェットを運用して良かったこと・学びと反省 顕在化しづらい事象に対しても早めにアクションを打つことが出来る エラーバジェット 0% 100% 日々減少 徐々にバジェットが減少する場合 事象が顕在化せずに後回しにされがち →エラーバジェットポリシーに従い
早めにアクションが打てる
#srenext_b 正直、上手くいかない部分も多い 運用して良かったこと・学びと反省
#srenext_b エラーバジェットを運用して良かったこと・学びと反省 学びと反省 - プロダクトの成長にSLOとポリシーが追いついていない - 各チームの感覚や温度感を横並びで合わせるのは難しい
#srenext_b エラーバジェットを運用して良かったこと・学びと反省 プロダクトの成長にSLOとポリシーが追いついていない - SLOとチームの肌感覚がズレてきた - SLOへの信頼を得る。という土台が揺らいでいる - プロダクトの成長に合わせ、四半期毎に要アップデート
#srenext_b エラーバジェットを運用して良かったこと・学びと反省 各チームの感覚や温度感を合わせるのは難しい クラウド勤怠チーム SREチーム セールスチーム カスタマーサクセスチーム ・・・ ・・・ ・・・
・・・ エラーバジェットポリシー お客様からの問い合わせ
#srenext_b 1. はじめに 2. なぜ、我々SREはエラーバジェットの運用にこだわるのか 3. エラーバジェットの運用は後回しになりがち 4. エラーバジェットポリシーを策定する 5.
運用して良かったこと・学びと反省 6. 今後の展望 7. まとめ
#srenext_b 今後の展望 - SLI/SLO/エラーバジェットポリシーのアップデート - エラーバジェットの運用を更に広げる
#srenext_b 今後の展望 - エラーバジェットの運用を更に広げる 各チームが同じ1つの指標を元に議論出来る状態へ クラウド勤怠チーム SREチーム セールスチーム カスタマーサクセスチーム ・・・
・・・ ・・・ ・・・ エラーバジェットポリシー
#srenext_b 今後の展望 - エラーバジェットの運用を更に広げる SRE活動 → 双方の利害を一致させて多様な関係者の合意を得る クラウド勤怠チーム SREチーム セールスチーム
カスタマーサクセスチーム ・・・ ・・・ ・・・ ・・・ エラーバジェットポリシーの 合意を得る
#srenext_b 今後の展望 - エラーバジェットの運用を更に広げる SRE活動 → 突き詰めようとすると合意形成の連続 クラウド勤怠チーム SREチーム セールスチーム
カスタマーサクセスチーム ・・・ ・・・ ・・・ ・・・ ・・・ より上位の意思決定者
#srenext_b 今後の展望 エラーバジェットの運用は 関係者との合意形成の旅
#srenext_b 1. はじめに 2. なぜ、我々SREはエラーバジェットの運用にこだわるのか 3. エラーバジェットの運用は後回しになりがち 4. エラーバジェットポリシーを策定する 5.
運用して良かったこと・学びと反省 6. 今後の展望 7. まとめ
#srenext_b まとめ - エラーバジェットの運用には、 SLOやエラーバジェットポリシーへの合意が欠かせない - チームの「感覚」を明文化してポリシーを定義するのが大事 - 開発と運用のバランスを取る エラーバジェットの運用、始めてみませんか?
#srenext_b さいごに マネーフォワード MFBC-CTO室ではSREを募集しています!
ご清聴ありがとうございました