Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SLOを組織文化にするための挑戦

Yuji Kinjo
September 29, 2023

 SLOを組織文化にするための挑戦

SRE NEXT 2023 登壇資料

Yuji Kinjo

September 29, 2023
Tweet

More Decks by Yuji Kinjo

Other Decks in Technology

Transcript

  1. SLOを組織文化にするための挑戦 〜 Biz/Dev/SREが一丸で進めるSLOジャーニー 〜 SRE NEXT 2023 9/29 (Fri) Room

    A 株式会社グロービス デジタル・プラットフォーム部門 金城 佑治
  2. GLOBIS DIGITAL PLATFORM 2 自己紹介 金城 佑治(Kinjo Yuji) 株式会社グロービス SRE

    2019年入社 @_yukin01(GitHub: yukin01) AWS/YAML/Go/TypeScript
  3. GLOBIS DIGITAL PLATFORM 5 プロダクトと各チームの関係性 GLOBIS 学び放題 Team A Team

    B Team ... Product B Product ... SRE Team (Enabling SRE + Platform SRE)
  4. GLOBIS DIGITAL PLATFORM 6 1. 平常時にSLOの重要性を訴えても、当事者意識を持ってもらうのは難しい 2. そもそも社内でのSLOの認知度が低い 3. CUJ(クリティカルユーザージャーニー)の決め方がわからない

    4. オブザーバビリティが低く、SLIを定義するのが難しい 5. 合意を求めすぎてコミュニケーションコストが高くなる 6. 各種プラクティスを一気に導入しようとした結果、先が見えなくなる 課題(PJ発足〜CUJ決定〜SLO運用開始)
  5. GLOBIS DIGITAL PLATFORM 7 1. 平常時にSLOの重要性を訴えても、当事者意識を持ってもらうのは難しい 2. そもそも社内でのSLOの認知度が低い 3. CUJ(クリティカルユーザージャーニー)の決め方がわからない

    4. オブザーバビリティが低く、SLIを定義するのが難しい 5. 合意を求めすぎてコミュニケーションコストが高くなる 6. 各種プラクティスを一気に導入しようとした結果、先が見えなくなる 課題(PJ発足〜CUJ決定〜SLO運用開始)
  6. GLOBIS DIGITAL PLATFORM 9 偶然、信頼性が揺らぐ出来事があった その結果、 障害対応のプロセスを見直す動きが発生 プロダクトチーム内で全体的に サービスの安定性に対する温度感が高くなる SLOの重要性を理解してもらう

     障害タイムライン概要 • 月初にDB高負荷によるアラートが発生 • 数時間で自然に収まる • 事後の調査で根本原因がわからず様子見 • 翌月にも同様のアラートが発生 • 実は多くのユーザーが影響を受けていた (問い合わせも発生していた)
  7. GLOBIS DIGITAL PLATFORM 11 1. 平常時にSLOの重要性を訴えても、当事者意識を持ってもらうのは難しい 2. そもそも社内でのSLOの認知度が低い 3. CUJ(クリティカルユーザージャーニー)の決め方がわからない

    4. オブザーバビリティが低く、SLIを定義するのが難しい 5. 合意を求めすぎてコミュニケーションコストが高くなる 6. 各種プラクティスを一気に導入しようとした結果、先が見えなくなる 課題(PJ発足〜CUJ決定〜SLO運用開始)
  8. GLOBIS DIGITAL PLATFORM 14 SLOの認知度を上げる 非エンジニア向けの資料作りも難航 事前に発表のフィードバックをもらったところ  認識のギャップがかなりあった SLI/SLO/SLAといった略語やIT系の専門用語が  多いとハードルが高くなってしまう

    当初説明する予定だったページを一部抜粋 「Appendix」と書いてある通り、付録に回して 本編では一切触れなかった 専門用語多めの意識高いページは全カット なるべく平易な表現になるよう見直す
  9. GLOBIS DIGITAL PLATFORM 16 SLOの認知度を上げる GLOBIS 学び放題 Team A Team

    B Team ... SRE Team SLO Project Team SREチームはなるべく後方支援 や事務局の役割に徹する
  10. GLOBIS DIGITAL PLATFORM 17 1. 平常時にSLOの重要性を訴えても、当事者意識を持ってもらうのは難しい 2. そもそも社内でのSLOの認知度が低い 3. CUJ(クリティカルユーザージャーニー)の決め方がわからない

    4. オブザーバビリティが低く、SLIを定義するのが難しい 5. 合意を求めすぎてコミュニケーションコストが高くなる 6. 各種プラクティスを一気に導入しようとした結果、先が見えなくなる 課題(PJ発足〜CUJ決定〜SLO運用開始)
  11. GLOBIS DIGITAL PLATFORM 18 ドメインエキスパートを巻き込む Site Reliability Workbookの日本語訳では 「あるユーザーの体験の中核部分となるタスクの並び」??? CUJ(クリティカルユーザージャーニー)とは?

    プロダクト側ではユーザーストーリーやカスタマージャーニーマップを扱うため、 それを参考にしつつ 「プロダクトにフォーカスしたユーザー体験の一連の行動」をUJ(ユーザージャーニー) その中でビジネス的にクリティカルなものをCUJとして扱うことにした
  12. GLOBIS DIGITAL PLATFORM 20 1. 平常時にSLOの重要性を訴えても、当事者意識を持ってもらうのは難しい 2. そもそも社内でのSLOの認知度が低い 3. CUJ(クリティカルユーザージャーニー)の決め方がわからない

    4. オブザーバビリティが低く、SLIを定義するのが難しい 5. 合意を求めすぎてコミュニケーションコストが高くなる 6. 各種プラクティスを一気に導入しようとした結果、先が見えなくなる 課題(PJ発足〜CUJ決定〜SLO運用開始)
  13. GLOBIS DIGITAL PLATFORM 21 オブザーバビリティを上げる ※可用性とレイテンシを採用 Datadogでの実装方針 全てのイベントをログとして記録 → カスタムメトリクス

    → メトリクスベースSLO (インテグレーションによるCloudWatch経由のELBメトリクス等は利用しなかった) SLI = × 100 Good Events Total Events 前提
  14. GLOBIS DIGITAL PLATFORM 22 オブザーバビリティを上げる 基本構成 Ruby on Rails +

    React GraphQLとREST APIを使い分け Sidekiqによる非同期ジョブ インフラはAWS(右図参照) 課題 SLIを計算可能なログになっていない
  15. GLOBIS DIGITAL PLATFORM 23 パスとステータスコードが固定されていて一般的 なアクセスログからは計測できない APMのサンプリングレートを1にしてもトレース の全件取得を保証できなかった オブザーバビリティを上げる GraphQL

    Operation Nameをリクエストヘッダに追加して Nginxログに出力 同じく、GraphQLのエラーコードをレスポンス ヘッダ経由でNginxログに出力 ステータスコードが200でもシステムエラーと  クライアントエラーを区別できるようになった
  16. GLOBIS DIGITAL PLATFORM 25 1. 平常時にSLOの重要性を訴えても、当事者意識を持ってもらうのは難しい 2. そもそも社内でのSLOの認知度が低い 3. CUJ(クリティカルユーザージャーニー)の決め方がわからない

    4. オブザーバビリティが低く、SLIを定義するのが難しい 5. 合意を求めすぎてコミュニケーションコストが高くなる 6. 各種プラクティスを一気に導入しようとした結果、先が見えなくなる 課題(PJ発足〜CUJ決定〜SLO運用開始)
  17. GLOBIS DIGITAL PLATFORM 28 1. 平常時にSLOの重要性を訴えても、当事者意識を持ってもらうのは難しい 2. そもそも社内でのSLOの認知度が低い 3. CUJ(クリティカルユーザージャーニー)の決め方がわからない

    4. オブザーバビリティが低く、SLIを定義するのが難しい 5. 合意を求めすぎてコミュニケーションコストが高くなる 6. 各種プラクティスを一気に導入しようとした結果、先が見えなくなる 課題(PJ発足〜CUJ決定〜SLO運用開始)
  18. GLOBIS DIGITAL PLATFORM 29 小さく運用を始める SLOドキュメント、バーンレートアラート、エラーバジェットポリシー etc... 段階を踏まず、最初から完璧な運用ルールを作ってプロダクト全体に広めようとしてしまった 背景 現実は、誰も導入プロセスの正解を知らないし、経験もない

    知っているのはSRE本にあるようなベストプラクティスだけ 「次はSRE本にあるこのプラクティスを組織に導入したいです」 「わかりました(イマイチよくわからないな...)」という実体のない議論が続く
  19. GLOBIS DIGITAL PLATFORM 33 今後やっていくこと • 信頼性回復の時間を確保するため、プロダクトチームのOKRにSLOを取り入れる • オブザーバビリティが上がったことを開発者に周知し、Datadogを通じてSLOへの 関心をさらに高めてもらう

    • カスタマーサポートが問い合わせを受けたとき、SLOダッシュボードを使って障害 かユーザー起因か判断できるようにする • MTTD、MTTRを計測して障害検知が改善したことをデータで示す