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 Lounge #13 Service Level at Ubie
Search
itkq
November 18, 2021
Technology
3
2.3k
SRE Lounge #13 Service Level at Ubie
だいたい3ヶ月でサービスレベルを運用に乗せて「ちゃんとした」Webサービスにした話
https://sre-lounge.connpass.com/event/227250/
の発表資料です。
itkq
November 18, 2021
Tweet
Share
More Decks by itkq
See All by itkq
アクセス制御にまつわる改善 / Improving access control
itkq
0
740
Cookpad summer internship 2019 - infra intro
itkq
1
9.8k
Where Chaos Engineering comes from, and what's next
itkq
6
7.6k
Re:silience から始めるカオスエンジニアリング生活 / A Life of Chaos Engineering Starting with Resilience
itkq
12
3.7k
サービスのパフォーマンス数値と 依存関係を用いたサービス同士の 協調スケール構想 / Web System Architecture #1
itkq
0
760
Other Decks in Technology
See All in Technology
GitHub Actions/Docker/Terraform/Renovate で最小限の Monorepo CD パイプラインを作る / Minimalistic Monorepo CD Pipeline with GitHub Actions, Docker, Terraform and Renovate
yuyatakeyama
4
340
リスクから学ぶKubernetesコンテナセキュリティ/k8s-risk-and-security
mochizuki875
1
250
エムスリー全チーム紹介資料 / Introduction of M3 All Teams
m3_engineering
0
180
Interfacing Kernel C APIs from Rust
ennael
PRO
0
200
たった一人で始めた音楽制作が気がついたら会社公認の部活動になっていた話〜組織の垣根を超えるコラボレーションを実現するには〜 / On-KAG-bu
piyonakajima
0
110
AI時代のアジャイル開発(XP祭り2024版) / Agile Development in the AI Era in XPJUG
takaking22
13
3.4k
Report of JAWS PANKRATION 2024, a global online event using Amazon IVS
yoshimi0227
1
130
Create Inquiry via Bedrock / 生成 AI で問い合わせ品質は変わるのか?思いついてぱっと作ったものを供養してみる
kazzpapa3
1
190
位置情報とオープンソースがやりたくてMIERUNEに転職した話 〜経歴、事例紹介、GISへのいざない〜 / MIERUNE JCT - Tokyo 2024
mierune
PRO
0
390
ORM と向き合う
hoto17296
7
5.8k
小さな勉強会の始め方、広げ方、あるいは友達の作り方 / How to Start, Grow, and Build Connections with Small Study Groups
ar_tama
1
220
スモールスタート、不都合な真実 〜 耳当たりの良い言葉に現場が振り回されないために/20240930-ssmjp-small-start
opelab
12
1.7k
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
104
48k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
KATA
mclloyd
27
13k
Designing on Purpose - Digital PM Summit 2013
jponch
114
6.9k
Testing 201, or: Great Expectations
jmmastey
38
7k
GitHub's CSS Performance
jonrohan
1030
450k
Creatively Recalculating Your Daily Design Routine
revolveconf
216
12k
Building Your Own Lightsaber
phodgson
101
6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
278
13k
GraphQLとの向き合い方2022年版
quramy
43
13k
[RailsConf 2023] Rails as a piece of cake
palkan
49
4.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
32k
Transcript
だいたい3ヶ月でサービスレベルを運用に乗せて 「ちゃんとした」Webサービスにした話 2021-11-19 @itkq SRE Lounge #13
2 - ID: itkq - 経歴:Cookpad → Ubie Discovery -
最近の業務領域:SRE業80%、その他20% (情シスorセキュリティ) - 興味:Load testing, Test in production About me 2
3 - 話すこと - 短期間でサービスレベルを導入し運用するまでの事例 - 話さないこと - SRE、SLI/SLO自体 -
チューニングなど技術的詳細。後日ブログに書く(予定) 発表内容 3
4 目次 1.UbieとAI受診相談 2.エイヤでサービスレベル 3.サービスレベル達成に向けた取り組み 4.そして運用へ 5.学びと今後 4
5 About us (https://ubie.life)
6 Ubieのサービス 6 生活者向け 医療機関向け 今日のテーマ
7 ユビーAI受診相談 https://ubie.app 7
8 300M+ MAU 8 https://prtimes.jp/main/html/rd/p/000000025.000048083.html 今日の話
9 ホラクラシー組織 9 4 SREs 19 SWEs
10 - 四半期毎にOKRをつくり、アライン。途中で変更もありうる OKR 10
11 - Infra: Fastly, GKE, Istio - Frontend: Next.js -
BFF: DGS (Kotlin, GraphQL) - APIs: Python, etc. AI受診相談のアーキテクチャ 11
12 目次 1.UbieとAI受診相談 2.エイヤでサービスレベル 3.サービスレベル達成に向けた取り組み 4.そして運用へ 5.学びと今後 12
13 - これまで:ミッション達成のための1サービス - これから:ユビーが目指す世界の起点 - 1. リーチが拡大した(MAU急増、アプリリリースも) - 2.
クリニックや製薬企業との提携 AI受診相談の転換 13
14 - 信頼性観点では「ベストエフォート」 - toBに注力していたため - 今後も機能開発しながら信頼性を保ちスケールしなければならない - プロダクト基盤OKRに組み込まれる(全社OKRにも”SLO”が登場) -
社内外で、定性的に「遅い」「エラーが頻発」という声が上がる - 優先度を変更 当時のAI受診相談 14
15 - エラーレートやレイテンシを定量的に算出してみる - Sentry荒野、本当の「エラーレート」がわからない、特定の画面が遅い - それを踏まえて「守らなければならない価値は何か?」 - SREsとプロダクトチームでディスカッション -
現状の認識と、あるべき姿が見えてきた - 同時にプロダクトチームの熱量も上がった AI受診相談を”診断” 15
16 - 現状に対してどこまで改善するかの基準が必要 - 1. 症状チェック完走率99.5%(当時最低で98.2%) - 2. LP表示成功率99.9%(当時最低で99.2%) -
3. 症状チェック結果画面のレイテンシp90<=3s(当時最悪で15s) 議論をもとにエイヤで目標値を決める 16
17 - 週次の全社共有会にて、現状やばいからなんとかするぜ!とやっていき宣言 - 「サービスレベルロール」が爆誕、SREsも参加 - 専用のSlackチャンネルを作成して関係者を突っ込み、臨戦態勢 やれることはすぐやる 17 New!!
18 目次 1.UbieとAI受診相談 2.エイヤでサービスレベル 3.サービスレベル達成に向けた取り組み 4.そして運用へ 5.学びと今後 18
19 - プロダクトチーム - エラービューにログを仕込んで計測 - SREs - GraphQLサーバのオペレーションレベルでの観測 -
レイテンシ分析 - Tracingを実用段階に 計測からはじめよ 19
20 - イベントログと同様に計測 - Pub/Sub経由でBigQueryに投入 エラービューのログ 20
21 計測! 21
22 計測!計測!計測! 22
23 - 数が多いエラーから原因究明して直したり、無視すべきエラーを分類 - トレース、ログ、メトリクスを見ながらレイテンシ悪化の原因を探る - 根本原因:graphql-javaのDataLoaderの使い方とDNS解決 - 改善されたらみんなで喜ぶ 🙌
あとは気合でがんばる 23
24 結果、2ヶ月で達成 24 可用性:99.2% → 99.9% p90レイテンシ:15s → 2s
25 目次 1.UbieとAI受診相談 2.エイヤでサービスレベル 3.サービスレベル達成に向けた取り組み 4.そして運用へ 5.学びと今後 25
26 - これまで出てきた「サービスレベル」!= SLI/SLO - 計測ウインドウや行動指針など含めきちんと定義し直す - BigQueryへのクエリだとリアルタイム性に乏しい - 扱いやすくするため、Prometheusメトリクスに
運用のためのSLI/SLO 26
27 - 可用性:1ヶ月のウィンドウで`1 - (error_view / page_view)` >= 99.9% -
レイテンシ:1ヶ月のウィンドウでバックエンドのp99 <= 1s - アラート:SRE本に基づく複数バーンレートアラートでSlack通知 - エラーバジェットが尽きた場合:信頼性向上アクション(開発は止めない) - サービスレベルロールでトリアージ シン・SLI/SLO 27
28 Grafana dashboard powered by Sloth (sloth.dev) 28
29 - 平日Slackにグラフを投稿 - ホラクラシーの定期MTGでチェック - Redashでエラー分析 - SLI/SLOの定期レビューは今後 定期的にSLI/SLOを確認する仕組み
29
30 - 各環境リリース時にお手製E2Eテストで主導線チェック - 追加で保証したい導線はmablで実装 E2Eテストでリグレッション検知 30
31 目次 1.UbieとAI受診相談 2.エイヤでサービスレベル 3.サービスレベル達成に向けた取り組み 4.そして運用へ 5.学びと今後 31
32 これまでのタイムライン 32 8月 10月 9月 OKR決定 目標値達成 SLO運用開始 優先度変更
8月 7月 プロジェクト 発足
33 - 現状の分析結果をチームが自分ごととして問題意識、優先度の引き上げ - 専門ロールをつくり、SREsから2人がプロダクトチーム軸足に - ホラクラシー、OKRの移動、スクラムへの半参加 - そもそも、全員が全社観点を持ちサービスレベルの必要性を理解していた -
採用要件、PMFガイド、オンボーディングの効果 - 優先度やリソース割当の変更がスムーズ なぜ短期間でできたのか? 33
34 - エラー・レイテンシへの疲弊が下がった - プロダクトチームが自分たちのサービスの信頼性を知れる状態に - 好例を示すことで他のサービスへの導入機運も高まった 導入の効果 34
35 - 機能単位でのSLI/SLO・リトライを考慮したSLI - インシデントハンドリングフローの整備 w/ incident.io - 開発生産性の可視化と向上 -
Production readiness checklist的な何か - 継続的な負荷試験 今後やりたいこと 35
36 We are hiring! 36 recruit.ubie.life twitter.com/itkq or Thank you!