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

SREって何? 現場で学んだサイト信頼性の第一歩

Avatar for syossan27 syossan27
July 25, 2025
190

SREって何? 現場で学んだサイト信頼性の第一歩

TechRAMEN 2025の発表資料です。
https://techramenconf.github.io/

Avatar for syossan27

syossan27

July 25, 2025
Tweet

Transcript

  1. ©MIXI SREとは? SREは手法であるため、様々なプラクティスが存在しています。 • SLI / SLO の定義 • モニタリング

    / オブザーバビリティ • トイルの最適化 • エラーバジェットの策定 / 運用 • リリースエンジニアリング • インシデント管理 • ポストモーテム(ポストインシデントレビュー) • etc…
  2. ©MIXI SLI / SLO の定義 そもそも"信頼性"とはなに か? サービスによって大きく異なる • 店舗予約システム

    ◦ 予約ができること • ニュースサイト ◦ 記事が正しく読み込まれて、閲 覧できること ⇒ ユーザーの関心が高い・そのサービス の根幹となる体験が損なわれないこと
  3. ©MIXI SLI / SLO の定義 そもそも"信頼性"とはなに か? サービスによって大きく異なる • 店舗予約システム

    ◦ 予約ができること • ニュースサイト ◦ 記事が正しく読み込まれて、閲 覧できること ⇒ ユーザーの関心が高い・そのサービス の根幹となる体験が損なわれないこと これをSLI / SLOとして定義していく
  4. ©MIXI SLI / SLO の定義 どのようにSLI / SLOを定義するのか? SLI ユーザー観点でのシステムメトリクス

    • ユーザー体験に基づいたメトリクスを取得 • CUJを設計し、ユーザー体験を理解して、SLIを見つ け出す • まずはサービスの可用性/レイテンシなど SLO ユーザーが満足する目標値 • SLIに対してパーセンテージで 目標値を設定 する ◦ 例:一ヶ月の間にサービスは99.9%正常に稼働している • "時間"をもとに決めるのもGood
  5. ©MIXI エラーバジェットの策定 / 運用 信頼性を保てるエラーの許容量を策 定 SLOから許容できるエラー量を算出 SLOが99.9%だと0.1%はエラーを発生させ る余裕があるということ ポリシーを設定

    し、エラーバジェットが 減った場合にどうするか?の運用を決めて おく ⇒ 基本的には使い切ったら 機能リリースを ストップし、エラーへの対応を最優先
  6. ©MIXI エラーバジェットの策定 / 運用 信頼性を保てるエラーの許容量を策 定 "挑戦"と"安定"のバランスを保つ指標とする SLOから許容できるエラー量を算出 SLOが99.9%だと0.1%はエラーを発生させ る余裕があるということ

    ポリシーを設定 し、エラーバジェットが 減った場合にどうするか?の運用を決めて おく ⇒ 基本的には使い切ったら 機能リリースを ストップし、エラーへの対応を最優先
  7. ©MIXI モニタリング / オブザーバビリティ サービスを"知る"ためのプラクティ ス モニタリング: 「既知の未知」を知ることができる リアクティブに 既知の障害

    で未知な状態 である ことをユーザーに知らせる (例. 特定時間帯にCPU負荷が高くなる現象が発生し ている[既知]が、何故かはわからない[未知]) オブザーバビリティ: 「未知の未知」を知ることができる プロアクティブに 未知の障害 で未知な状態 を調 査することができる (例. サービスが動いていないと一部ユーザーから報 告が来た[未知]が、何故かはわからない[未知])
  8. ©MIXI モニタリング / オブザーバビリティ サービスを"知る"ためのプラクティ ス モニタリング: 「既知の未知」を知ることができる リアクティブに 既知の障害

    で未知な状態 である ことをユーザーに知らせる (例. 特定時間帯にCPU負荷が高くなる現象が発生し ている[既知]が、何故かはわからない[未知]) オブザーバビリティ: 「未知の未知」を知ることができる プロアクティブに 未知の障害 で未知な状態 を調 査することができる (例. サービスが動いていないと一部ユーザーから報 告が来た[未知]が、何故かはわからない[未知]) モニタリングとオブザーバビリティの特性の違いを踏まえて環境を整える
  9. ©MIXI トイルの最適化 繰り返して行われる手作業を最適化 大量の作業が発生する前に最適化を • 戦術的である • 長期的価値がない • 自動化できる

    • サービス成長に比例する に当てはまるものは優先的に対応しましょ う トイルは自動化して変容させたり、 仕組み の再設計で不要化させることで対応する
  10. ©MIXI トイルの最適化 繰り返して行われる手作業を最適化 大量の作業が発生する前に最適化を • 戦術的である • 長期的価値がない • 自動化できる

    • サービス成長に比例する に当てはまるものは優先的に対応しましょ う トイルは自動化して変容させたり、 仕組み の再設計で不要化させることで対応する 恒常的にトイル対応して、信頼性の高い組織へ
  11. ©MIXI インシデント管理 障害時の対応を標準化す る 個々が自由に対応するのではなく、 "障害が起きたらこうする "を決める • ウォールームの設置 •

    役割の設定 • エスカレーションプロセス 突然やりましょう!となっても上手く動く ことが難しいので、事前に ロールプレイ を やって慣れておきましょう
  12. ©MIXI インシデント管理 障害時の対応を標準化す る 信頼性の毀損を最小化するための備え 個々が自由に対応するのではなく、 "障害が起きたらこうする "を決める • ウォールームの設置

    • 役割の設定 • エスカレーションプロセス 突然やりましょう!となっても上手く動く ことが難しいので、事前に ロールプレイ を やって慣れておきましょう
  13. ©MIXI ポストモーテム(ポストインシデントレビュー) インシデントをその後の糧にす る インシデントは解決して終わりでは ない インシデント後になるたけ早くチーム全体で行 う • インシデント状況の共通理解

    • ネクストアクション を中心に記録し、話し合いすることで インシデ ントへのレジリエンスを高め 、より信頼性を高 めるキッカケにする
  14. ©MIXI ポストモーテム(ポストインシデントレビュー) インシデントをその後の糧にす る 大事なのは"非難なき話し合い" インシデントは解決して終わりでは ない インシデント後になるたけ早くチーム全体で行 う •

    インシデント状況の共通理解 • ネクストアクション を中心に記録し、話し合いすることで インシデ ントへのレジリエンスを高め 、より信頼性を高 めるキッカケにする
  15. ©MIXI トイルの最適化 運用が始まって一年ほど経ってから、SREの実践が始まったのでトイルはた んまりありました。 初期 • スクラム運用ツールの開発 • QA作業円滑化のためにデバッグツールを開発 •

    開発環境の使用状況管理ツールの開発 • Xでのサービスに対するポストをSlack通知 • メンテナンスモードの簡易化 初期はコスパの良いトイルを優先的に
  16. ©MIXI トイルの最適化 運用が始まって一年ほど経ってから、SREの実践が始まったのでトイルはた んまりありました。 現在 • Slack bot × OpenAI

    APIでの自然言語による一時権限付 与 • GPTsを利用したQAチーム向けSQL作成支援 • Claude Code Actionを利用したRenovateの自動一次調 査 現在はAIの興隆で 最適化に新たな視点が芽生えた
  17. ©MIXI ポストモーテム(ポストインシデントレビュー) SRE本を参考にしたテンプレートを用意し、インシデント後に必ずレビュー を行う • 障害概要 ◦ 「詳細な障害発生時刻」「対応者」「ステータス(どういう状態になったのか経過と結 果)」を記載 •

    時系列 ◦ 箇条書きで「起こったこと」「行ったこと」についてコンパクトに記載 • 詳細 ◦ 「発生した要因」「発生に至った根本原因」「影響範囲」について記載 • 対応内容 ◦ 修正したPRのリンクや実行したコマンドなど、技術観点を忘れず対応した内容を記載
  18. ©MIXI ポストモーテム(ポストインシデントレビュー) SRE本を参考にしたテンプレートを用意し、インシデント後に必ずレビュー を行う • モニタリング情報 ◦ インシデントに気付いた際のモニタリング情報や、調査/解決までのプロセスで利用した モニタリング情報を記載 •

    再発防止策 ◦ インシデントの再発を防止するための案を記載 ◦ チームで考えた結果を記載するのが良い • 気付き ◦ 個人的なメモ、教訓など気付いたことを記載 • 参考情報 ◦ インシデント対応で参考になった情報など
  19. ©MIXI 他チームとのコラボレーション ※ David N. Blank-Edelman 編, 山口 能迪 監訳、渡

    邉 了介 訳 (2021年) SREの探求 - オライリージャパン より引用 SREを実施する場合には、他チームとの"信頼関係"を構築することをよく考 えなくてはいけない 弾力性が高いサービスを構築するためには、考え方の多様性がチーム内に存在し ている必要があります。 この最後の要因は、技術的な知識のレベルよりもエンジニア同士の関係性のほう がはるかに大きな影響を与えます。※
  20. ©MIXI サービス規模に関わらず、SREは誰かが必ずやってい る 何故SREは必要となったか? 気付いたら"SRE"と呼ばれることをやっていた ※ Betsy Beyer, Chris Jones,

    Jennifer Petoff, Niall Richard Murphy (2017年) SRE サイトリライアビリティエンジニアリング - Googleの信頼性を支えるエンジニアリングチー ム SREとは、 ソフトウェアエンジニアに運用チームの設計を依頼したときにでき あがるもの です。※ 小さなチームでは運用チームを持たないことが多いので(雰囲気兼任が多い) "明確な"運用チームの動きが生まれたらそれがSREのはじまりと言える
  21. ©MIXI SREの始め方 How SRE teams are organized, and how to

    get started (SREチームの編成方法とその始め方) ※ Google社のブログ記事の中で6つのSREの導入パターンが紹介されています。 ※ Goolge Cloud Blog 「How SRE teams are organized, and how to get started」 https://cloud.google.com/blog/products/devops-sre/how-sre-teams-are-organized-and-how-to-get-started より引用
  22. ©MIXI SREの始め方 How SRE teams are organized, and how to

    get started (SREチームの編成方法とその始め方) ※ Google社のブログ記事の中で6つのSREの導入パターンが紹介されています。 ※ Goolge Cloud Blog 「How SRE teams are organized, and how to get started」 https://cloud.google.com/blog/products/devops-sre/how-sre-teams-are-organized-and-how-to-get-started より引用 1. SREも開発もやるなんでも屋さん 2. インフラの保守や、CI/CDなどの保守 3. SREに関するツールを開発・導入・運用 4. 主要なアプリケーションのみの信頼性向上を担 う 5. 特定の開発チームに組み込まれたSREチーム 6. 開発チームに組み込まれないSREチーム
  23. ©MIXI SREの始め方 How SRE teams are organized, and how to

    get started (SREチームの編成方法とその始め方) ※ Google社のブログ記事の中で6つのSREの導入パターンが紹介されています。 ※ Goolge Cloud Blog 「How SRE teams are organized, and how to get started」 https://cloud.google.com/blog/products/devops-sre/how-sre-teams-are-organized-and-how-to-get-started より引用 1. SREも開発もやるなんでも屋さん 2. インフラの保守や、CI/CDなどの保守 3. SREに関するツールを開発・導入・運用 4. 主要なアプリケーションのみの信頼性向上を担 う 5. 特定の開発チームに組み込まれたSREチーム 6. 開発チームに組み込まれないSREチーム 初期はこち ら
  24. ©MIXI SREの始め方 How SRE teams are organized, and how to

    get started (SREチームの編成方法とその始め方) ※ Google社のブログ記事の中で6つのSREの導入パターンが紹介されています。 ※ Goolge Cloud Blog 「How SRE teams are organized, and how to get started」 https://cloud.google.com/blog/products/devops-sre/how-sre-teams-are-organized-and-how-to-get-started より引用 1. SREも開発もやるなんでも屋さん 2. インフラの保守や、CI/CDなどの保守 3. SREに関するツールを開発・導入・運用 4. 主要なアプリケーションのみの信頼性向上を担 う 5. 特定の開発チームに組み込まれたSREチーム 6. 開発チームに組み込まれないSREチーム 今はこちら
  25. ©MIXI 何からやるか? その後はDickersonの信頼性の階層構造 ※ を参考にするのがオススメ ※ David N. Blank-Edelman 著

    / 山口 能迪 訳 (2024年) SREをはじめよう - オライリージャパン より引用 あくまでも一つの"型"。組織に合わせてプラクティスをチョイスしよ う!
  26. ©MIXI 何からやるか? 「SREをはじめよう」にもあるが、まずはモニタリング・オブザーバビリティ とインシデントレスポンスを整備することで、耐障害性を向上させる ※ David N. Blank-Edelman 著 /

    山口 能迪 訳 (2024年) SREをはじめよう - オライリージャパン より引用 Done • Cloud Monitoringによるアラートポリシー拡充 • Cloud Loggingに沿った構造化ロギング • 各種サービスでのAudit Logsの導入と通知設定 • Cloud Trace × OpenTelemetryの導入 • 各種Runbookの作成
  27. ©MIXI SRE × AIを考える SREのどこにでもAIを活用できる余地がある 既に関連サービスはいち早く取り組んでいる • PagerDuty ◦ Agentic

    Site Reliability Engineer ◦ Agentic Operations Analyst ◦ Agentic Scheduler • Datadog ◦ Bits AI サービスを使うも良し、作るも良し。可能性は無限大!
  28. ©MIXI 作る以外もやるよ! "モノをつくる"以外にも様々なAIに関するアレコレを一手に引き受けた • AI利用の書類業務 ◦ 申請 / 契約や、それに付随する説明 •

    利用推進 ◦ Slackチャンネルを作成し、AIに関する情報を逐一放流 ◦ 困っている利用者の拾い上げ • ガイドラインなどのドキュメント整備 ◦ Claude Codeなどツールの利用ドキュメント ◦ MCPサーバーの安全利用のためのガイドライン • etc…
  29. ©MIXI 失敗→成功事例:依存ライブラリのアップデート運用 Renovateを利用したライブラリアップデートを一人で担っていた そのため、頻度が半年に一回に・・・ リベンジ 運用を開発チームを巻き込む形に • コラボレーションの意識が希薄だったなと反省をもと に運用に開発チームを巻き込むことにした •

    今ではスプリントプランニングにライブラリアップ デートを盛り込んでもらえることに • さらに、AIを活用してClaude Code Acitonを利用し た一次調査、またアップデートにもClaude Codeを利 用 失敗も糧にして成功施策を生み出していこう!