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
クリティカルユーザージャーニーを利用した SLI/SLO の改善 / #mackerelio
Search
heleeen
December 20, 2023
Technology
11
9.5k
クリティカルユーザージャーニーを利用した SLI/SLO の改善 / #mackerelio
heleeen
December 20, 2023
Tweet
Share
More Decks by heleeen
See All by heleeen
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
3k
SRE のはじめ方 / DevOps と SLI/SLO #mackerelio
heleeen
0
2.4k
CloudNative 移行で実現した Mackerel における SaaS 開発 / Saas on AWS 2023
heleeen
0
120
Mackerel におけるTerraform 運用 / Our (Best?) Practice
heleeen
0
450
Other Decks in Technology
See All in Technology
なぜ私はいま、ここにいるのか? #もがく中堅デザイナー #プロダクトデザイナー
bengo4com
0
1.2k
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
360
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
5
660
AI導入の理想と現実~コストと浸透〜
oprstchn
0
120
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
140
Witchcraft for Memory
pocke
1
630
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
490
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
340
生成AI開発案件におけるClineの業務活用事例とTips
shinya337
0
150
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
230
論文紹介:LLMDet (CVPR2025 Highlight)
tattaka
0
160
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
6
2.6k
Featured
See All Featured
Building an army of robots
kneath
306
45k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
24k
Balancing Empowerment & Direction
lara
1
390
How STYLIGHT went responsive
nonsquared
100
5.6k
Building Applications with DynamoDB
mza
95
6.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
A Tale of Four Properties
chriscoyier
160
23k
How to Ace a Technical Interview
jacobian
277
23k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Transcript
ja.mackerel.io クリティカルユーザージャーニーを利用した SLI/SLO の改善 2023.12.19 Mackerel チーム SRE テックリード 井口景子
井口 景子 (id:heleeen) • 2019年9月に Mackerel に SRE として入社 •
現在は Mackerel の SRE テックリード • SRE, Serverless が好き • カメラも好き 自己紹介 2 由緒あるスポットのはずが, 諸々噛み合わさって 怖い雰囲気になってしまった →
今日はなすこと • Mackerel の SLI/SLO の改善 • クリティカルユーザージャーニーとは 3
Mackerel の SLI/SLO • 誕生(2019年) ◦ Mackerel の SRE チーム
reboot ◦ CloudNative への移行 4
Mackerel の SLI/SLO の誕生 • まずは SLI/SLO をとにかく定めた ◦ SRE
Workbook¹ の実装例がとても参考になる • 詳しくは Mackerel開発チームのリードSREが考える働き方と組織作り にて ◦ 他にも... ▪ 定期的に見直すフローを組み込む • SLO を割っていないか, 定義した SLI/SLO は適切か... ▪ チーム全体(ステークホルダー全員)で SRE の理解を深める • SRE は運用チームだけで達成するものではない 1... https://sre.google/workbook/implementing-slos/ 5
(余談) 意思決定者を巻き込むのは大変かもしれない • チーム, プロダクト, 会社によって状況はさまざま... • アプローチ ◦ 小さくシンプルにまずは作ってみる
▪ 最小限の定義 ▪ 仮の目標値にする • 組織としての SRE への取り組みについては SRE の文化と組織 がおす すめです 6
Mackerel の SLI/SLO • ざっくり構成 ◦ Mackerel 全体 (ここから始まった) ▪
Availability, Latency ◦ 時系列データベース ▪ Availability, Latency, Coverage... ◦ バッチ ▪ Availability, Coverage, Correctness... ◦ プロキシ ▪ Availability, Latency ◦ ラベル付きメトリック ▪ ... ◦ ... 7
SLI/SLO で何が変わったか • MackerelにおけるEC2からFargate移行の軌跡とFargateのメリットデ メリットについて ◦ 移行の意思判断が SLO でできるようになった ◦
担当者の精神的負担にも好影響 • プロダクトオーナーとしてSLOに向き合う 〜Mackerelチームの事例〜 / SRE NEXT 2023 ◦ 判断と改善がチームで回るようになった ◦ 特に PO としては判断の負荷が下がる 8
SLO 策定から数年... • 本当にユーザーの体験を測れているのか? ◦ Yes とは言い切れない ◦ ユーザーの目線より実装に沿っている定義がある ◦
=> 信頼性を量る指標になれていない 9
Mackerel の SLI/SLO の不全 • 信頼性に影響のある障害が SLI に現れなかった ◦ デプロイフローの改善により開発体験・速度は改善した
▪ その分, 障害頻度は上がるはず ◦ ユーザー体験に影響のある障害検知があまりできていない... ◦ => SLI の定義か実装が適切ではない? 10
Mackerel の SLI/SLO の再編 • ユーザー目線を理解したい ◦ ユーザー体験をモデリング ▪ どんなユーザーがサービスを利用するのか
▪ このサービスはどんな体験をユーザーに提供するのか, など • クリティカルユーザージャーニー(CUJ)を採用 ◦ ユーザーがサービスを利用して, 目的を達成するために行う 作業の一覧を作り, ステークホルダーと重要な顧客体験の認識を揃える ◦ SRE workbook の Modeling User Journeys¹ に出てくる 1... https://sre.google/workbook/implementing-slos/#modeling-user-journeys 11
クリティカルユーザージャーニー • 特に重要な顧客体験に着目して, ユーザーの体験とタスクを整理する • オンラインショッピングサイトの場合 12 目標(ゴール) 達成するためのタスク 検索して商品を見つける
▪ 検索ワードを入力する ▪ 目的を満たす商品を選択し詳細を確認する カートに追加する ▪ 個数を選択してカートへ追加する 決済を行う ▪ 配送先の指定 ▪ クレジットカード情報の入力
ユーザーの期待を特定する • このタスクを進める中で, ユーザーにとって何が重要なのか? • オンラインショッピングサイトの場合 13 目標(ゴール) ユーザーにとって重要なこと 検索して商品を見つける
▪ショッピングサイトを使いたいときに使えること ▪条件通りの商品が表示されること ▪素早く結果が表示されること カートに追加する ▪指定の個数でカートに追加されること ▪素早く結果が表示されること 決済を行う ▪決済の処理が成功すること ▪商品が届くこと
ユーザーの期待を指標にする • ユーザーにとって重要なことを測る指標はなにか? • オンラインショッピングサイトの場合 14 目標(ゴール) ユーザーにとって重要なことを測る指標 検索して商品を見つける ▪ショッピングサイトを使いたいときに使えること
•=> 可用性 ▪条件通りの商品が表示されること •=> 正確さ, 新鮮さ ▪素早く結果が返ってくること •=> レイテンシ 決済を行う ▪決済の処理が成功すること •=> 正確さ
Mackerel のクリティカルユーザージャーニー • 特に重要な顧客体験に着目して, ユーザーの体験とタスクを整理する • 例: Mackerel でホストを監視できる 1...
厳密にはアカウント作成やログインもインタラクションに含まれますが, ここではスライドに 収まらないため省略しています 15 目標(ゴール)¹ 達成するためのタスク ホストを登録する ▪ VM を用意する ▪ mackerel-agent をインストールする 監視ルールを追加する ▪ 監視条件を入力し保存する 通知を設定する ▪ 通知先を用意する ▪ 通知チャンネルを作成する ▪ 通知が届くか検証する
クリティカルユーザージャーニー • 指標として表すことができる体験を選択する ◦ 例 ▪ 安定して結果が返却される ▪ 正しく表示される ◦
SLI では表しにくい例 ▪ 手軽に監視運用できる ▪ よりコストを抑えて監視できる ▪ => 他の手法かブレイクダウンが必要 16
Mackerel の CUJ から期待を特定する • このタスクを達成する上で, ユーザーにとって何が重要なのか? • 例: Mackerel
でホストを監視したいときに重要なことはなにか? 17 目標(ゴール) ユーザーにとって重要なこと ホストを登録する ▪ ホストが登録できること ▪ ブラウザでメトリックが確認できること 監視ルールを追加する ▪ 監視が登録できること ▪ 条件に従ってアラートが発生すること 通知を設定する ▪ 通知が届くこと
Mackerel への期待を指標にする • ユーザーにとって重要なことを測る指標はなにか? • 例: Mackerel でホストを監視したいユーザーにとって重要なことを測る 指標はなにか? 18
目標(ゴール) ユーザーにとって重要なことを測る指標 ホストを登録する ▪ ホストが登録できること ▪ => API の可用性 ▪ ブラウザでメトリックが確認できること ▪ => Web コンソールの可用性 監視ルールを追加する ▪ 監視が登録できること ▪ => API, Web コンソールの可用性 ▪ 条件に従ってアラートが発生すること ▪ => バッチの可用性, 正確さ, 処理時間
クリティカルユーザージャーニーで見えないもの • ユーザージャーニーに現れにくいものも存在する ◦ 例: データお掃除のバッチ ▪ ユーザー体験にはほぼ影響しないけど, システム的には必要な機能 ◦
CUJ から決めた SLI/SLO とはわけて管理している = エラーバジェット ポリシーの適応範囲・内容を分けている 19
指標を実装する • 信頼性に関連していそうな指標を計測する • 機能のアーキテクチャごとの実装例が SRE Workbook で公開されている¹ ◦ Request
Driven ▪ Availability, Latency, Quality ◦ Pipeline ▪ Freshness, Correctness, Coverage ◦ Storage ▪ Durability 1... https://sre.google/workbook/implementing-slos/ 20
SLI/SLO を再編して • SLI からユーザー影響が想定しやすくなった ◦ コンポーネント単位ではなくユーザー目線にした ◦ とはいえまだ大絶賛実装中... そう感じているのは自分だけかもしれない
• SRE workbook の実装例はとても参考になる ◦ 初版から参考にしていて, 指標の実装に大きな変化はない ◦ 実装に悩んだらまずは真似てみるのがよさそう • SLI/SLO は見直して育てていくもの ◦ 始めていなかったら課題感に気づいていなかったかもしれない ◦ とりあえず始めていてよかった ◦ 最初から完璧を求めない 21