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.3k
クリティカルユーザージャーニーを利用した 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.3k
CloudNative 移行で実現した Mackerel における SaaS 開発 / Saas on AWS 2023
heleeen
0
120
Mackerel におけるTerraform 運用 / Our (Best?) Practice
heleeen
0
440
Other Decks in Technology
See All in Technology
シンプルな設定ファイルで実現する AWS IAM Identity Center のユーザー管理と開発チームへの委譲 / Delegating AWS IAM Identity Center User Management with a Simple DSL
yamaguchitk333
3
520
MCP Clientを活用するための設計と実装上の工夫
yudai00
0
650
Machine Intelligence for Vision, Language, and Actions
keio_smilab
PRO
0
440
君だけのオリジナル async / await を作ろう / TSKaigi 2025
susisu
17
13k
Slackひと声でブログ校正!Claudeレビュー自動化編
yusukeshimizu
3
140
Contract One Dev Group 紹介資料
sansan33
PRO
0
5.9k
CSS polyfill とその未来
ken7253
0
130
AIに実況させる / AI Streamer
motemen
3
1.4k
Data Hubグループ 紹介資料
sansan33
PRO
0
1.7k
RDRA3.0を知ろう
kanzaki
2
410
大事なのは、AIの精度だけじゃない!〜1円のズレも許されない経理領域とAI〜
jun_nemoto
10
5k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
8
65k
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
68
11k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
Balancing Empowerment & Direction
lara
1
81
Statistics for Hackers
jakevdp
799
220k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
123
52k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
610
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.3k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Automating Front-end Workflow
addyosmani
1370
200k
Building Applications with DynamoDB
mza
95
6.4k
Speed Design
sergeychernyshev
30
960
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