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
4
2.4k
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
1
1.5k
Cookpad summer internship 2019 - infra intro
itkq
2
10k
Where Chaos Engineering comes from, and what's next
itkq
6
7.7k
Re:silience から始めるカオスエンジニアリング生活 / A Life of Chaos Engineering Starting with Resilience
itkq
12
3.9k
サービスのパフォーマンス数値と 依存関係を用いたサービス同士の 協調スケール構想 / Web System Architecture #1
itkq
0
820
Other Decks in Technology
See All in Technology
生成 AI プロダクトを育てる技術 〜データ品質向上による継続的な価値創出の実践〜
icoxfog417
PRO
5
1.8k
The Future of SEO: The Impact of AI on Search
badams
0
240
ローカルLLMを活用したコード生成と、ローコード開発ツールへの応用
kazuhitoyokoi
0
130
Windows の新しい管理者保護モード
murachiakira
0
170
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
810
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
130
現場で役立つAPIデザイン
nagix
35
13k
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
2
350
JEDAI Meetup! Databricks AI/BI概要
databricksjapan
0
270
エンジニアが加速させるプロダクトディスカバリー 〜最速で価値ある機能を見つける方法〜 / product discovery accelerated by engineers
rince
4
480
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
270
2.5Dモデルのすべて
yu4u
2
930
Featured
See All Featured
Become a Pro
speakerdeck
PRO
26
5.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Git: the NoSQL Database
bkeepers
PRO
427
64k
The Pragmatic Product Professional
lauravandoore
32
6.4k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
We Have a Design System, Now What?
morganepeng
51
7.4k
Code Reviewing Like a Champion
maltzj
521
39k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
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!