プロダクトオーナーとしてSLOに向き合う〜Mackerelチームの事例〜id:wtatsuru / @tatsuru2023/09/29 SRE NEXT 20231
View Slide
自己紹介● 渡辺 起 id:wtatsuru / @tatsuru● 株式会社はてな● 現 Mackerel プロデューサー○ 2011年からインフラエンジニア○ 開発基盤部署のマネージャーなどを経験○ 2022年までMackerel プロダクトオーナー2
3
4今日話すこと
5プロダクトオーナーとしてSLOに向き合うMackerelチームの事例
今日話すことMackerelチームでSLOを使って運用してきたPOとして何が嬉しいのか、という話をします6
メニュー● Mackerelチームの紹介● SLO導入背景● なぜSLOを使うのか● 実際の運用風景7
メニュー● Mackerelチームの紹介● SLO導入背景● なぜSLOを使うのか● 実際の運用風景8
Mackerelチームの紹介Mackerel開発チーム● 10人前後 (うちSRE 1~3)● 2014年リリース9
Mackerelチームの紹介● エンジニア向けプロダクト○ 運用ノウハウを乗せて提供する● 自分たちでもドッグフーディング○ SLOもその流れで機運あり10
メニュー● Mackerelチームの紹介● SLO導入背景● なぜSLOを使うのか● 実際の運用風景11
SLO導入背景監視運用のサービスとして● 信頼性と開発速度をうまくバランス取りたい● ドッグフーディングしたい…正直半々くらい12
プロダクトの状況● 信頼性は「低くて困る」状況ではない● 開発速度は当然上げたい13
プロダクトの状況現実の課題たち● 可用性はそんなに困ってない● 停止メンテナンス時間が長い● デプロイが遅い、リリース頻度が低い14
プロダクトの状況152022 Accelerate Stete of DevOps Report https://cloud.google.com/devops/state-of-devops?hl=ja
プロダクトの状況● サービス復旧時間:数時間以内● 変更失敗率:5%くらい● 運用パフォーマンス:「たいてい期待にかなう」● リードタイム:数日程度● デプロイ:週2回(2019年当時)16
プロダクトの状況● 運用パフォーマンスはあまり困ってない● 開発速度は上げたい● 目に見える課題はいくつかあるおそらくよくある状況17
メニュー● Mackerelチームの紹介● SLO導入背景● なぜSLOを使うのか● 実際の運用風景18
なぜSLOを使うのか信頼性と開発速度をうまくバランス取りたい● 開発速度を上げたい● 信頼性は担保されていて欲しい19
信頼性って● ではない○ レイテンシ、エラー率● 主語はユーザー○ ユーザーの期待に沿っているか○ SLO本にあります20
信頼性ってMackerel の場合、例えば● ダッシュボードが遅いとつらい○ 慣れるかもしれない。障害対応の時は厳しい。● 多少のエラーは許容できる○ クライアントがリトライする21
22
信頼性との関わり方まずは観測する● ユーザーに聞く○ インタビュー、満足度調査、問い合わせ● システムを観測する23
信頼性との関わり方判断する、意思決定する● 観測結果に対応する○ 満足度が下がっている、エラーが増えている● 瞬発力が必要○ これはすぐに対応が必要?24
信頼性との関わり方まとめ:大変● PO = 意思決定者の介在が必要な場面が増える● 普段から考えることは多いのに...25
そこで SLO ってやつが● 信頼性を定量化して扱うと○ 数値化して改善サイクルに乗せられる○ チームで判断できる● うまく回る!○ 楽になる○ 数字で語れる26
なぜSLOを使うのか信頼性と開発速度をうまくバランス取りたい● 開発速度を上げたい● 信頼性は担保されていて欲しい● 判断と改善をチームで回したい27
メニュー● Mackerelチームの紹介● SLO導入背景● なぜSLOを使うのか● 実際の運用風景28
実際に入れてみた● SLIと仮の値を決めて● 見直しフローを作って● とりあえず始めてみた29詳しくは:Mackerel開発チームのリードSREが考える働き方と組織作りhttps://speakerdeck.com/masayoshi/developers-summit-2021-summer
30
始めやすく● SREが叩き台を作った● Error Budget Policy は緩く○ 「調査をするか判断する」○ 徐々に判断を減らしていく31
活用シーン例● P99がちょっと悪化した○ →SLO割らないから無視する● 大きな仕組みの変更でエラーがでた○ →ちょっとリリーススケジュールを調整しよう32
信頼性って難しい● ユーザーの反応は観測が難しい○ オブザーバビリティが低い○ いいメトリックを見つける必要がある● 実験しづらい○ 反応の遅れが大きい、など33
システムの難しさに向き合うSLIの定義と観測が難しいところ● 例えば Mackerel の外形監視○ 「到達できない状態」も正しい挙動34
システムの難しさに向き合うSLIの定義と観測が難しいところ● 機械学習● そもそも考えられてなかったり重要なところから、一つずつ解決していこう35
開発速度は上がったか● 導入当時よりは上がった 😀○ デプロイの仕組み変更が一番大きい● そもそも継続的改善はやるもの○ ここに効いたと直接実感することは少ない○ 下支えにはなっているだろう36
まとめ● SLO導入して使ってます● 判断が減るのが嬉しいポイント● 難しい問題は解決しないので頑張っていこう37
宣伝● Mackerel をよろしくお願いします○ エンジニアも積極採用中● 最近 OpenTelemetry 対応中です○ ベータユーザー募集してます38
39以上です