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
SRE のはじめ方 / DevOps と SLI/SLO #mackerelio
Search
heleeen
January 30, 2024
Technology
1
2.6k
SRE のはじめ方 / DevOps と SLI/SLO #mackerelio
heleeen
January 30, 2024
Tweet
Share
More Decks by heleeen
See All by heleeen
アラートと運用知見から始める、自律的なインシデント調査への第一歩
heleeen
0
140
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
3.2k
クリティカルユーザージャーニーを利用した SLI/SLO の改善 / #mackerelio
heleeen
11
11k
CloudNative 移行で実現した Mackerel における SaaS 開発 / Saas on AWS 2023
heleeen
0
160
Mackerel におけるTerraform 運用 / Our (Best?) Practice
heleeen
0
480
Other Decks in Technology
See All in Technology
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
1
300
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
330
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
110
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.2k
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.3k
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
130
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
410
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
400
Context Engineeringの取り組み
nutslove
0
290
データ民主化のための LLM 活用状況と課題紹介(IVRy の場合)
wxyzzz
2
670
システムのアラート調査をサポートするAI Agentの紹介/Introduction to an AI Agent for System Alert Investigation
taddy_919
2
1.9k
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.7k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
270
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Done Done
chrislema
186
16k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
450
For a Future-Friendly Web
brad_frost
182
10k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Designing Experiences People Love
moore
144
24k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
160
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
250
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Transcript
ja.mackerel.io SRE のはじめ方 / DevOps と SLI/SLO 2024.01.30 Mackerel チーム
SRE テックリード 井口景子
井口 景子 (id:heleeen) • 2019年9月に Mackerel に SRE として入社 •
現在は Mackerel の SRE テックリード • SRE, Serverless が好き • カメラも好き 自己紹介 2 あるテラス席でぼんやりしていたら 目の前にカラスが来て綺麗だった→
今日はなすこと • SRE とは • SLI/SLO 運用のはじめ方 3
SRE とは • “class SRE implements interface DevOps” (SRE workbook
第1章より) ◦ 「SRE は DevOps というインタフェースの実装である」 ▪ => DevOps (思想) を実現する手段が SRE 4
DevOps とは • 開発者と運用者が協調する開発手法 • SRE workbook 第1章より 5
サイロ化しない 運用と開発を分断しない. コラボレーションが大事 事故は日常にあるもの 絶対壊れないシステムはない. 事故を前提にして, 素早く回復することが大事 変化は小さく頻繁に 変化にはリスクが伴うので, 小さくリリースして 事故の復旧を早める ツールと文化は相互に影響する 優れた文化であれば合わないツールを回避できる が、その逆は難しい. まずは組織文化が大事 測定は大事 客観的に事実を把握し, 議論するための土台を作る
DevOps を SLI/SLO で実現する • “コラボレーション” ◦ SRE がアプリケーションを理解し, 開発者がインフラを理解するこ
とでオーナーシップを共有し, 効率的な運用や開発を行う ◦ => SLI/SLO の共有, SLO 違反しないための迅速な対応 • “事故を前提にして” ◦ 一切のバグなしに新しい機能を開発してリリースするのはとても コストがかかる. 事故を前提にして運用する ◦ => エラーバジェット • “測定は大事” ◦ 共通認識を作り, 客観的な指標を持つ ◦ => SLI/SLO の策定 6
100% SLI/SLO とは • サービスの信頼性を担保する指標と目標値 ◦ 信頼性 ... サービスの挙動に対する期待が実現されること ◦
SLI/SLO は SRE の特に中心的なプラクティス • 用語 ◦ SLI (service level indicator) … サービスの信頼性を計測する指標 ◦ SLO (service level objective) … SLI の目標値 ◦ SLA (service level agreement) … SLO に関するユーザーとの契約 ◦ エラーバジェット … サービスの信頼性が損なわれる許容度 7 0% SLO エラーバジェット
話しきれない話題はこちらにて... • SRE 本 ◦ https://sre.google/books/ ▪ 今回特に触れたのは Site Reliability
Engineering, The Site Reliability Workbook • 信頼性の育て方 / mackerel-meetup-15 8
SLI/SLO 運用のはじめ方 • 信頼性を表す指標を何にするべきか ◦ クリティカルユーザージャーニーを利用した SLI/SLO の改善 / #mackerelio
の11~19ページあたりのお話です 9
SLI を決めるために • ユーザー目線を理解する必要がある ◦ ユーザー体験をモデリング ▪ どんなユーザーがサービスを利用するのか ▪ このサービスはどんな体験をユーザーに提供するのか,
など • クリティカルユーザージャーニー(CUJ)を採用 ◦ ユーザーがサービスを利用して, 目的を達成するために行う作業の 一覧を作り, プロダクトのステークホルダーと重要な顧客体験の認識を 揃える ◦ SRE workbook の Modeling User Journeys¹ に出てくる 1... https://sre.google/workbook/implementing-slos/#modeling-user-journeys 10
Mackerel のクリティカルユーザージャーニー • 特に重要な顧客体験に着目して, ユーザーの体験とタスクを整理する • 例: Mackerel でホストを監視できる 1...
厳密にはアカウント作成やログインもインタラクションに含まれますが, ここではスライドに 収まらないため省略しています 11 目標(ゴール)¹ 達成するためのタスク ホストを登録する ▪ VM を用意する ▪ mackerel-agent をインストールする 監視ルールを追加する ▪ 監視条件を入力し保存する 通知を設定する ▪ 通知先を用意する ▪ 通知チャンネルを作成する ▪ 通知が届くか検証する
クリティカルユーザージャーニー • 指標として表すことができる体験を選択する ◦ 例 ▪ 安定して結果が返却される ▪ 正しく表示される ◦
SLI では表しにくい例 ▪ 手軽に監視運用できる ▪ よりコストを抑えて監視できる ▪ => 他の手法かブレイクダウンが必要 12
Mackerel の CUJ から期待を特定する • このタスクを達成する上で, ユーザーにとって何が重要なのか? • 例: Mackerel
でホストを監視したいときに重要なことはなにか? 13 目標(ゴール) ユーザーにとって重要なこと ホストを登録する ▪ ホストが登録できること ▪ ブラウザでメトリックが確認できること 監視ルールを追加する ▪ 監視が登録できること ▪ 条件に従ってアラートが発生すること 通知を設定する ▪ 通知が届くこと
Mackerel への期待を指標にする • ユーザーにとって重要なことを測る指標はなにか? • 例: Mackerel でホストを監視したいユーザーにとって重要なことを測る 指標はなにか? 14
目標(ゴール) ユーザーにとって重要なことを測る指標 ホストを登録する ▪ ホストが登録できること ▪ => API の可用性 ▪ ブラウザでメトリックが確認できること ▪ => Web コンソールの可用性 監視ルールを追加する ▪ 監視が登録できること ▪ => API, Web コンソールの可用性 ▪ 条件に従ってアラートが発生すること ▪ => バッチの可用性, 正確さ, 処理時間
SLI はイメージできてきた. その次は... • とにかく運用を始めてみましょう ◦ 始めることでわかることもたくさんある ▪ 例: SLI
が妥当ではなかった, SLO が厳しすぎた... など ◦ 悩みすぎず, 運用してから改善していくことも必要 • 小さく始めてみましょう ◦ 最初から完璧を実現する必要はない ▪ 例: 可用性とレイテンシの SLI/SLO だけで始める, SRE だけで 試運転して開発者や責任者を巻き込んでいく 15