$30 off During Our Annual Pro Sale. View Details »
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
0
2.5k
SRE のはじめ方 / DevOps と SLI/SLO #mackerelio
heleeen
January 30, 2024
Tweet
Share
More Decks by heleeen
See All by heleeen
アラートと運用知見から始める、自律的なインシデント調査への第一歩
heleeen
0
120
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
3.2k
クリティカルユーザージャーニーを利用した SLI/SLO の改善 / #mackerelio
heleeen
11
11k
CloudNative 移行で実現した Mackerel における SaaS 開発 / Saas on AWS 2023
heleeen
0
150
Mackerel におけるTerraform 運用 / Our (Best?) Practice
heleeen
0
470
Other Decks in Technology
See All in Technology
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
0
110
コンテキスト情報を活用し個社最適化されたAI Agentを実現する4つのポイント
kworkdev
PRO
1
1.5k
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
190
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
120
評価駆動開発で不確実性を制御する - MLflow 3が支えるエージェント開発
databricksjapan
1
210
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
1
200
業務のトイルをバスターせよ 〜AI時代の生存戦略〜
staka121
PRO
2
220
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
440
S3を正しく理解するための内部構造の読解
nrinetcom
PRO
2
150
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
220
1人1サービス開発しているチームでのClaudeCodeの使い方
noayaoshiro
1
350
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
390
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
Become a Pro
speakerdeck
PRO
31
5.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
We Have a Design System, Now What?
morganepeng
54
7.9k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
GraphQLとの向き合い方2022年版
quramy
50
14k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
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