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
PLAID マルチプロダクト環境下で SLO運用を浸透させるために 20230705
Search
Jun
July 10, 2023
Programming
0
1.1k
PLAID マルチプロダクト環境下で SLO運用を浸透させるために 20230705
マルチプロダクト環境下でSLOを運用していく上での取り組みや背景にある考え方を具体例を交えながら紹介
Jun
July 10, 2023
Tweet
Share
More Decks by Jun
See All by Jun
20230713_PLAID_マルチプロダクトでのデータ分析基盤(集中と分散)
kusahana
0
140
Cloud Bigtable を使いこなす秘訣 2022
kusahana
0
1.7k
KARTE リアルタイムユーザー解析基盤のDB (450TB)をゼロダウンタイムで 新DBに移行したノウハウ
kusahana
3
4.3k
Other Decks in Programming
See All in Programming
Jakarta EE meets AI
ivargrimstad
0
310
Jasprが凄い話
hyshu
0
110
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
1
210
PEPCは何を変えようとしていたのか
ken7253
2
140
Unity Android XR入門
sakutama_11
0
180
Formの複雑さに立ち向かう
bmthd
1
920
Better Code Design in PHP
afilina
0
160
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
970
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
150
Bedrock Agentsレスポンス解析によるAgentのOps
licux
3
910
負債になりにくいCSSをデザイナとつくるには?
fsubal
10
2.6k
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
850
Featured
See All Featured
Music & Morning Musume
bryan
46
6.4k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Building Your Own Lightsaber
phodgson
104
6.2k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Transcript
| © PLAID Inc. yyyy.mm.dd | Event name here | 1 マルチプロダクト環境下で SLO運用を浸透させるために PLAID
日鼻旬
yyyy.mm.dd | Event name here | | © PLAID Inc. 株式会社プレイド 日鼻 旬(@junkusahara) 2019年にプレイドにジョイン。
リアルタイム解析基盤のリニューアルをリー ド。 その後はKARTEのインフラ基盤全体を統括 し、基盤およびその上で動く各プロダクトの SLOの運用などに注力
yyyy.mm.dd | Event name here | | © PLAID Inc. 今日話すこと 3 今日話すこと 各プロダクトチームへ
SLO運用を浸透させる上の 設計・運用の勘所
yyyy.mm.dd | Event name here | | © PLAID Inc. 想定する対象者 4 想定する対象者 SLO運用を始めたが
色々な課題が出て 対応を考えている人向け
yyyy.mm.dd | Event name here | | © PLAID Inc. アジェンダ 5 アジェンダ マルチプロダクトでの課題
SLO浸透に向けた取り組み 運用で出てきた問題と対応 まとめ
yyyy.mm.dd | Event name here | | © PLAID Inc. マルチプロダクト での課題 6 アジェンダ
マルチプロダクトでの課題 SLO浸透に向けた取り組み 運用で出てきた問題と対応 まとめ
yyyy.mm.dd | Event name here | | © PLAID Inc. 7 KARTEについて CX(顧客体験)プラットフォーム Webサイトの訪問者の⾏動を
顧客ごとにリアルタイムに解析 ⼀⼈ひとりに合わせた 顧客体験を提供
yyyy.mm.dd | Event name here | | © PLAID Inc. 8 Stats of KARTE
データ規模も爆発的に増加 199 億UU 累計ユーザー数 ※1 0.x 秒/解析 解析速度 134,000 over 秒間トラッキング数 ※3 2.59 兆円 年間解析流通金額 ※2 ※1 ローンチ〜2023年2月までのユニークユーザー数の実績 ※2 EC領域における解析流通金額。 2022年3月〜2023年2月までの単年の実績 ※3 閲覧、クリック、購入など KARTEで計測しているユーザーの全イベントが 対象。ローンチ〜 2023年3月までにおける最大値
yyyy.mm.dd | Event name here | | © PLAID Inc. 9 マルチプロダク トでの課題 プロダクト数増加にSLO設定・運用が追いつかない
yyyy.mm.dd | Event name here | | © PLAID Inc. マルチプロダクト での課題 10 アジェンダ
マルチプロダクトでの課題 SLO浸透に向けた取り組み 運用で出てきた問題と対応 まとめ
yyyy.mm.dd | Event name here | | © PLAID Inc. 11 SLO浸透に向け た取り組み SLO設定に向けたガイドライン作り
& 一緒に広める
yyyy.mm.dd | Event name here | | © PLAID Inc. 12 SLO浸透に向け た取り組み SLO設計時の悩ましいポイント
1. どのサービス・機能に対してSLOを設定するか? 2. どういう指標(SLI)を見るのか? 3. 目標値(SLO)をどのように設定するのか?
yyyy.mm.dd | Event name here | | © PLAID Inc. 13 SLO浸透に向け た取り組み どういうサービス・機能に対してSLOを設定するか?
⾃分達 & クライアントに対して信頼性が重要なクリティカルなポイントは? - End User体験に関わる配信機能 - Client側で⾃動‧半⾃動オペレーションに組み込まれている機能
yyyy.mm.dd | Event name here | | © PLAID Inc. 14 SLO浸透に向け た取り組み どういう指標(SLI)を見るか?
定番の指標 - 可⽤性 - APIの成功率(例. 成功request数 / 全request数) - パフォーマンス - レイテンシー(例. p95でx msec以内) - スループット(例. 1時間以内の処理件数xx件) 上の指標の課題 - エラーは出ていないけど機能していない問題をちゃんと捕捉できない - 本来表⽰すべきところが表⽰されてない etc - 外型監視でモニターすることも考えたが網羅できない
yyyy.mm.dd | Event name here | | © PLAID Inc. 15 SLO浸透に向け た取り組み 可用性・パフォーマンスでは補足できない指標を追加
正確さという項⽬を加え、近似値でもいいから定量的に取れるようにする - 可⽤性 - APIの成功率(例. 成功request数 / 全request数) - パフォーマンス - レイテンシー(例. p95でx msec以内) - スループット(例. 1時間以内の処理件数Y件) - 正確さ - 特定の期間内に正確さを損なうクリティカルな障害がX件以内であること
yyyy.mm.dd | Event name here | | © PLAID Inc. マルチプロダクト での課題 16 アジェンダ
マルチプロダクトでの課題 SLO浸透に向けた取り組み 運用で出てきた問題と対応 まとめ
yyyy.mm.dd | Event name here | | © PLAID Inc. 17 SLOのエラーバジェット超過した! どうする? 運⽤時の問題‧対応
yyyy.mm.dd | Event name here | | © PLAID Inc. 18 SLOのエラーバジェット超過した時、どうする? 使い果たす主要なパターン -
A. ⼤きな障害が起きて⼀気にエラーバジェット消費 - B. 定常的なバジェット消費率が想定より⾼い 運⽤時の問題‧対応
yyyy.mm.dd | Event name here | | © PLAID Inc. 19 障害でエラーバジェット超過時の対応 - 悩み
- 根本原因を解決するまで結構時間がかかるが対応まで開発ストップする? - ポイント - エラーバジェットの消費率を抑える対応(軽減策)を早急に⾏う - 根本原因の対応が重いケースは事後で⾏う 運⽤時の問題‧対応
yyyy.mm.dd | Event name here | | © PLAID Inc. 20 運⽤時の問題‧対応 定常的な消費率が高い時の対応 -
基本的にはSLO初期設定時に多い - 対応としては - 初期設定時はチューニングが必要なケースが多いため、閾値を⾒直す - ⼀定期間運⽤後は何かが悪化しているサインなので⼀次調査を⾏う
yyyy.mm.dd | Event name here | | © PLAID Inc. 21 どうやってSLOを見直す? 運⽤時の問題‧対応
yyyy.mm.dd | Event name here | | © PLAID Inc. 22 運⽤時の課題‧対応 ありがちなパターン 1.
どのサービス‧機能に対してSLOを設定するか? 考えずに現状維持してしまうことが多い 2. どういう指標(SLI)を⾒るのか? Quarterごとに実績や指標の過不⾜を振り返る 3. ⽬標値(SLO)をどのように設定するのか? Quarterごとに実績やフェーズをもとに閾値の⾒直し
yyyy.mm.dd | Event name here | | © PLAID Inc. 23 運⽤時の課題‧対応 今トライしているアプローチ やりたいこと
- クライアントのプロダクトに対する期待値を考慮した上でSLOを更新したい アプローチ - 障害発⽣時に障害に対するをクライアントから取得する - お互いの評価を付き合わせて認識のずれを把握する
yyyy.mm.dd | Event name here | | © PLAID Inc. 24 運⽤時の課題‧対応 SLO対象の更新について どのサービス‧機能に対してSLOを設定するか?
- 障害評価でのずれをもとにクリティカルなサービス‧機能の⾒直し
yyyy.mm.dd | Event name here | | © PLAID Inc. 25 まとめ まとめ -
KARTEでの様々なプロダクトでSLOを浸透させる上でのポイントを紹介 - “正確さ” という指標(SLI)の導⼊ - エラーバジェット超過時の対応⽅針 - SLOの⾒直し⽅法 - これからも試⾏錯誤を繰り返していきつつ、洗練させていく
yyyy.mm.dd | Event name here | | © PLAID Inc. エンジニア募集 26 画像が⼊ります エンジニアの仲間を積極的に募集中です!
https://recruit.plaid.co.jp/#SLO_20230705