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
1.6k
SRE のはじめ方 / DevOps と SLI/SLO #mackerelio
heleeen
January 30, 2024
Tweet
Share
More Decks by heleeen
See All by heleeen
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
2.3k
クリティカルユーザージャーニーを利用した SLI/SLO の改善 / #mackerelio
heleeen
10
6.4k
CloudNative 移行で実現した Mackerel における SaaS 開発 / Saas on AWS 2023
heleeen
0
28
Mackerel におけるTerraform 運用 / Our (Best?) Practice
heleeen
0
370
Other Decks in Technology
See All in Technology
Scaling Technical Excellence at 104: Evolution in AWS and Developer Empowerment
scotthsieh825
1
150
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
0
190
初中級者用如何使用backlog -VALE TUDOEDITION-
in0u
0
140
クラウド利用者の「責任」をどう果たす?AWSセキュリティ対策のススメ #AWSSummit
hiashisan
0
270
[NIKKEI Tech Talk] KDDI/KAG Scrum & Community for Engineering Training
curanosuke
2
220
テストケースの自動生成に生成AIの導入を試みた話と生成AIによる今後の期待
shift_evolve
0
180
ゆめみのアクセシビリティの現在地と今後
ryokatsuse
3
290
AWSでRAGを作る法方
sonoda_mj
1
140
Azure Pipelinesを使用したCICDベースラインアーキテクチャ実践
yuriemori
0
190
Classmethod流のPlatform Engineering / classmethod-platform-engineering-devio2024
tomoki10
0
470
[2024最新版]AWS Control Towerを使ったセキュアなマルチアカウント環境の作り方
hiashisan
0
270
How to Think Like a Performance Engineer
csswizardry
4
590
Featured
See All Featured
How to Ace a Technical Interview
jacobian
274
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
Art, The Web, and Tiny UX
lynnandtonic
291
20k
Designing the Hi-DPI Web
ddemaree
276
34k
Web development in the modern age
philhawksworth
203
10k
How To Stay Up To Date on Web Technology
chriscoyier
784
250k
Thoughts on Productivity
jonyablonski
64
4.1k
Being A Developer After 40
akosma
72
580k
Into the Great Unknown - MozCon
thekraken
20
1.3k
In The Pink: A Labor of Love
frogandcode
139
22k
YesSQL, Process and Tooling at Scale
rocio
166
14k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
662
120k
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