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.9k
SRE のはじめ方 / DevOps と SLI/SLO #mackerelio
heleeen
January 30, 2024
Tweet
Share
More Decks by heleeen
See All by heleeen
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
2.6k
クリティカルユーザージャーニーを利用した SLI/SLO の改善 / #mackerelio
heleeen
11
7.5k
CloudNative 移行で実現した Mackerel における SaaS 開発 / Saas on AWS 2023
heleeen
0
66
Mackerel におけるTerraform 運用 / Our (Best?) Practice
heleeen
0
390
Other Decks in Technology
See All in Technology
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
7
440
RustとWebAssemblyを使って高速な画像処理をWebアプリで実行しよう
rebonire626
0
100
AWS パートナー企業でテクニカルサポートに従事して 3年経ったので思うところをまとめてみた
kazzpapa3
1
220
今、始める、第一歩。 / Your first step
yahonda
2
680
利きプロセススケジューラ
sat
PRO
4
2.6k
福岡新卒エンジニアの会
teba_eleven
1
180
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
1
170
Spring Frameworkの新標準!? ~ RestClientとHTTPインターフェース入門 ~
ogiwarat
2
250
AI長期記憶システム構築のための LLMマルチエージェントの取り組み / Awarefy-LLM-Multi-Agent
iktakahiro
2
340
徹底比較!HA Kubernetes ClusterにおけるControl Plane LoadBalancerの選択肢
logica0419
2
140
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
220
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
100
Featured
See All Featured
Music & Morning Musume
bryan
46
6.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Side Projects
sachag
452
42k
How GitHub (no longer) Works
holman
310
140k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Building Applications with DynamoDB
mza
90
6.1k
Documentation Writing (for coders)
carmenintech
65
4.4k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
Gamification - CAS2011
davidbonilla
80
5k
Code Reviewing Like a Champion
maltzj
520
39k
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