Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
クリティカルユーザージャーニーを利用した SLI/SLO の改善 / #mackerelio
Search
heleeen
December 20, 2023
Technology
12k
13
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クリティカルユーザージャーニーを利用した SLI/SLO の改善 / #mackerelio
heleeen
December 20, 2023
More Decks by heleeen
See All by heleeen
アラートと運用知見から始める、自律的なインシデント調査への第一歩
heleeen
0
260
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
3.4k
SRE のはじめ方 / DevOps と SLI/SLO #mackerelio
heleeen
1
2.8k
CloudNative 移行で実現した Mackerel における SaaS 開発 / Saas on AWS 2023
heleeen
0
210
Mackerel におけるTerraform 運用 / Our (Best?) Practice
heleeen
0
520
Other Decks in Technology
See All in Technology
AWSセキュリティで活用するAI機能
cmusudakeisuke
1
160
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
1.4k
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
160
価値について
gree_tech
PRO
0
140
導入から定着へ ~コーディングエージェントを日常業務に組み込む実践知~
yukisakai1225
0
170
How to Design Configuration for Rails Applications
willnet
1
1.1k
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
320
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
2
370
Metadata - Section 2: Simple Metadata & Meta Tags
mohab1
0
100
20261017福岡devIO 「AIは"良いダッシュボード"を作れるか?
jtakeda
0
220
DevelopersIO 2026 Tokyo 現時点の衛星通信サービスの現状を整理してみる
maroon1st
0
120
Classmethod Company Deck
satoshi7
1
800
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
3
610
How to Talk to Developers About Accessibility
jct
2
590
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
500
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
A Tale of Four Properties
chriscoyier
163
24k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
KATA
mclloyd
PRO
35
16k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
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