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
0
2.4k
SRE のはじめ方 / DevOps と SLI/SLO #mackerelio
heleeen
January 30, 2024
Tweet
Share
More Decks by heleeen
See All by heleeen
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
3k
クリティカルユーザージャーニーを利用した SLI/SLO の改善 / #mackerelio
heleeen
11
9.5k
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
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
1
170
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
500
「Chatwork」の認証基盤の移行とログ活用によるプロダクト改善
kubell_hr
1
240
KubeCon + CloudNativeCon Japan 2025 に行ってきた! & containerd の新機能紹介
honahuku
0
120
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
1.3k
asken AI勉強会(Android)
tadashi_sato
0
140
整頓のジレンマとの戦い〜Tidy First?で振り返る事業とキャリアの歩み〜/Fighting the tidiness dilemma〜Business and Career Milestones Reflected on in Tidy First?〜
bitkey
0
220
ハッカソン by 生成AIハッカソンvol.05
1ftseabass
PRO
0
130
PHP開発者のためのSOLID原則再入門 #phpcon / PHP Conference Japan 2025
shogogg
4
930
自律的なスケーリング手法FASTにおけるVPoEとしてのアカウンタビリティ / dev-productivity-con-2025
yoshikiiida
0
320
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
4
170
Oracle Cloud Infrastructure:2025年6月度サービス・アップデート
oracle4engineer
PRO
2
310
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
54
13k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Making Projects Easy
brettharned
116
6.3k
The Language of Interfaces
destraynor
158
25k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
How GitHub (no longer) Works
holman
314
140k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
680
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
BBQ
matthewcrist
89
9.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Typedesign – Prime Four
hannesfritz
42
2.7k
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