https://sre-next.dev/2023/schedule/#jp050
エラーバジェット運用までの取り組み信頼性の低下に対するアクションを定義しよう株式会社マネーフォワード MFBC-CTO室 SRE部 HRソリューショングループ 佐々木 優太SRE NEXT 2023/09/29 Track B #srenext_b
View Slide
#srenext_b自己紹介佐々木 優太(ゴンくん)株式会社マネーフォワードMFBC-CTO室 > SRE部 > HRソリューショングループ@gogogonkunhttps://gonkunblog.com/
#srenext_b過去に障害を連続で起こしてしまった経験から信頼性の低下に対するアクションを取るためにポリシーを定義して運用した話です。本発表の概要
#srenext_bこんな経験はありませんか?小さな障害やその予兆を軽視した結果後々大きな障害へと発展してしまう
#srenext_bこんな経験はありませんか?運用も開発もどちらも大事でも上手くバランスを取るのが難しい
#srenext_b信頼性の低下に対するアクションを定めてみませんか?こんな経験はありませんか?
#srenext_bもくじ1. はじめに2. なぜ、我々SREはエラーバジェットの運用にこだわるのか3. エラーバジェットの運用は後回しになりがち4. エラーバジェットポリシーを策定する5. 運用して良かったこと・学びと反省6. 今後の展望7. まとめ
#srenext_b1. はじめに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本セッションの前提情報等々今回はプロダクト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なぜ、我々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. SLOからエラーバジェットを算出する2. エラーバジェットの低下に対するアクション (エラーバジェットポリシー)を定める 3. 上記のポリシーを元にエラーバジェットを運用する
#srenext_bエラーバジェットの運用は後回しになりがち現実には... 1. SLOからエラーバジェットを算出する > そのSLO自体の妥当性は確かなの?2. エラーバジェットの低下に対するアクション (エラーバジェットポリシー)を定める > 開発に影響するポリシーをわざわざ定めるの? 3. 上記のポリシーを元にエラーバジェットを運用する > どこまで巻き込んで合意形成するの?
#srenext_bエラーバジェットの運用は後回しになりがち各段階の途中で脱落することもある...SLI/SLOへの信頼適切なポリシー設定関係者との合意形成
#srenext_bエラーバジェットの運用は後回しになりがち運用までに乗り越えるハードルが多い
#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エラーバジェットを運用して良かったこと・学びと反省「信頼性の回復を優先しましょう!」と宣言しやすくなった根本原因がすぐに判明しないような、根深い問題が後回しになりにくくなった
#srenext_bエラーバジェットを運用して良かったこと・学びと反省顕在化しづらい事象に対しても早めにアクションを打つことが出来るエラーバジェット0%100%エラーバジェットを一気に消費する場合ほとんどが目に見えてヤバい障害である→ 対応の優先度が比較的に上がりやすい
#srenext_bエラーバジェットを運用して良かったこと・学びと反省顕在化しづらい事象に対しても早めにアクションを打つことが出来るエラーバジェット0%100%日々減少徐々にバジェットが減少する場合事象が顕在化せずに後回しにされがち→エラーバジェットポリシーに従い 早めにアクションが打てる
#srenext_b正直、上手くいかない部分も多い運用して良かったこと・学びと反省
#srenext_bエラーバジェットを運用して良かったこと・学びと反省学びと反省- プロダクトの成長にSLOとポリシーが追いついていない- 各チームの感覚や温度感を横並びで合わせるのは難しい
#srenext_bエラーバジェットを運用して良かったこと・学びと反省プロダクトの成長にSLOとポリシーが追いついていない- SLOとチームの肌感覚がズレてきた- SLOへの信頼を得る。という土台が揺らいでいる- プロダクトの成長に合わせ、四半期毎に要アップデート
#srenext_bエラーバジェットを運用して良かったこと・学びと反省各チームの感覚や温度感を合わせるのは難しいクラウド勤怠チーム SREチームセールスチームカスタマーサクセスチーム・・・・・・・・・・・・エラーバジェットポリシーお客様からの問い合わせ
#srenext_b今後の展望- SLI/SLO/エラーバジェットポリシーのアップデート- エラーバジェットの運用を更に広げる
#srenext_b今後の展望 - エラーバジェットの運用を更に広げる各チームが同じ1つの指標を元に議論出来る状態へクラウド勤怠チーム SREチームセールスチーム カスタマーサクセスチーム・・・・・・・・・・・・エラーバジェットポリシー
#srenext_b今後の展望 - エラーバジェットの運用を更に広げるSRE活動 → 双方の利害を一致させて多様な関係者の合意を得るクラウド勤怠チーム SREチームセールスチーム カスタマーサクセスチーム・・・・・・・・・・・・エラーバジェットポリシーの合意を得る
#srenext_b今後の展望 - エラーバジェットの運用を更に広げるSRE活動 → 突き詰めようとすると合意形成の連続クラウド勤怠チーム SREチームセールスチーム カスタマーサクセスチーム・・・・・・・・・・・・・・・より上位の意思決定者
#srenext_b今後の展望エラーバジェットの運用は関係者との合意形成の旅
#srenext_bまとめ- エラーバジェットの運用には、SLOやエラーバジェットポリシーへの合意が欠かせない- チームの「感覚」を明文化してポリシーを定義するのが大事- 開発と運用のバランスを取るエラーバジェットの運用、始めてみませんか?
#srenext_bさいごにマネーフォワード MFBC-CTO室ではSREを募集しています!
ご清聴ありがとうございました