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
ABEMA SREの挑戦 〜Frontend & Backend TeamへのEmbedded...
Search
RyoIshikawa
December 31, 2021
Technology
0
30
ABEMA SREの挑戦 〜Frontend & Backend TeamへのEmbedded SRE導入〜
ABEMA DEVELOPER CONFERENCE 2021
"ABEMA SREの挑戦 〜Frontend & Backend TeamへのEmbedded SRE導入〜"の発表スライドです
RyoIshikawa
December 31, 2021
Tweet
Share
More Decks by RyoIshikawa
See All by RyoIshikawa
NewRelic_Media_Industry_ABEMA_Frontend_SRE.pdf
rinov
1
550
開発スピード × アプリ品質
rinov
0
81
What's new in Xcode10 Build System
rinov
0
67
【第5回】CA Swift
rinov
1
600
iPadをサブディスプレイにする実装に挑戦してみよう
rinov
11
2.8k
Other Decks in Technology
See All in Technology
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
140
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
540
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
160
Amazon Kendra GenAI Index 登場でどう変わる? 評価から学ぶ最適なRAG構成
naoki_0531
0
110
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
460
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
170
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
170
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
540
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
170
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Speed Design
sergeychernyshev
25
670
4 Signs Your Business is Dying
shpigford
181
21k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
How STYLIGHT went responsive
nonsquared
95
5.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
YesSQL, Process and Tooling at Scale
rocio
169
14k
We Have a Design System, Now What?
morganepeng
51
7.3k
Building Your Own Lightsaber
phodgson
103
6.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Transcript
None
AbemaTV, Inc. All Rights Reserved 今日お話すること 2 1. 背景 2.
Backend Team's Embedded SRE 3. Frontend Team's Embedded SRE 4. まとめ
1. 背景 ~ Embedded SRE 体制にいたるまで ~
AbemaTV, Inc. All Rights Reserved ABEMAの変化 4 サービス規模の成長 ダウンロード 7300万
(2018年比 約100%増) WAU 1303万 (2018年比 約100%増) ※ 出典 CyberAgent, inc. 2021 年通期決算発表資料
AbemaTV, Inc. All Rights Reserved ABEMAの変化 5 システム規模の増加 90 →
150+ k8s Nodes 1000 → 2500+ k8s Pods 50 → 350+ k8s Services 2018年比 66%増 2018年比 600%増 2018年比 150%増
AbemaTV, Inc. All Rights Reserved ABEMAの目指すかたち 6
AbemaTV, Inc. All Rights Reserved ABEMAの目指すかたち 7 新しい未来のテレビとは • 無料・同時性
◦ 報道・スポーツ ◦ ドラマ・バラエティ • 時間・空間からの開放 ◦ オンデマンド・追っかけ再生 ◦ マルチデバイス・ダウンロード再生 出典: CyberAgent, inc. 2021 年通期決算発表資料
AbemaTV, Inc. All Rights Reserved ABEMA SREとして向き合うポイント 8 • 映像が途切れることなく視聴出来る環境
• 障害発生時に即座に復旧出来る対応環境 サービスの特性 • 利用規模に応じたシステムキャパシティの確保 • 各デバイスやシステムの拡大に応じた適切な品質維持 サービス・システム・組織規模の拡大
AbemaTV, Inc. All Rights Reserved 2020年までの体制 9 Frontend Backend Platform
Project B Project C Team A Team B Team C Team D SRE Project A • 横断組織としてインフラを軸とした SREチーム • 各チーム横軸で複数の開発が平行で動いている Cloud Platform
AbemaTV, Inc. All Rights Reserved 2020年までの活動 10 • On-Call環境の改善
• SLI/SLO基盤の開発 • Production Readiness Checklist の作成 1. プラクティスの導入 • GCP Networkの移設 • 冗長Loadbalancerの構築 3. 基盤システムの改善 • インフラキャパシティの確保 • 各インフラのメンテナンス • システムコストの管理・改善 2. 基盤システムの運用
AbemaTV, Inc. All Rights Reserved 課題点 11 1. サービスの成長速度に対するシステム理解速度の乖離 2.
各サービスの品質と潜在的リスクの把握不足 3. プラクティスの実験や検証における協力チームのキャパシティ 4. SREプラクティスの導入と基盤システム改善の実施バランス
AbemaTV, Inc. All Rights Reserved 2021年からの体制 12 Frontend Backend Platform
Project B Project C Team A Team B Team C Team D Project A Frontend SRE Backend SRE SRE Cloud Platform • 既存SRE一部メンバーをCloudPlatformとEmbeddedSREに役割変更 • Frontendチームの一部メンバーがSREの役割も担う
AbemaTV, Inc. All Rights Reserved 2021年からの体制 13 体制変更の狙い 1. 注力するポイントの最適化
2. 担当チームと密にコミュニケーションを計り、各プラクティス導入の速度と質を上げる 3. チーム個別の課題やリスクを把握し、全体効率のよい施策の実施する 4. 改善プラクティスを他チーム (SRE) に伝播し、組織全体で信頼性の底上げを行う
2. Backend Team's Embedded SRE
AbemaTV, Inc. All Rights Reserved Backend Team's Embedded SRE 15
• (継続) : SLI / SLO の設定 • (継続) : インシデントプロセスの改善 • (継続) : Service Doc (design doc + α) • (継続) : Production Readiness Checklistの刷新 • (新規) : 連携サービスのキャパシティ情報管理の半自動化 • (新規) : 継続的負荷試験の導入 取り組み
AbemaTV, Inc. All Rights Reserved Backend Team's Embedded SRE 16
• (継続) : SLI / SLO の設定 • (継続) : インシデントプロセスの改善 • (継続) : Service Doc (design doc + α) • (継続) : Production Readiness Checklistの刷新 • (新規) : 連携サービスのキャパシティ情報管理の半自動化 • (新規) : 継続的負荷試験の導入 取り組み 時間の関係で割愛 🙏
AbemaTV, Inc. All Rights Reserved Backend Team's Embedded SRE 17
SLI / SLO の設定
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 18
なぜ ABEMA にとって SLI / SLO が必要だと考えているのか “ Reliability Is the Most Important Feature ‘’ Ben Treynor, Google's VP • サービス特性である同時性の担保 • 機能・システム・組織規模の拡大 • 様々な改善やプラクティスへの活用性 • 組織との共通言語化
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 19
1. 重要ドメインの選定 2. 各サービス構成の理解 3. CUJの特定 4. SLIの測定対象と方法の決定 5. SLOの設定 6. SLO Documentを利用した合意 SLO 設定の始め方
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 20
アーキテクチャ メトリクス収集 永続化 可視化
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 21
Dashboard 一覧 詳細
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 22
Dashboard 一覧 詳細 機能単位のSLI / SLO / ErrorBudget SLO Documentなどの各Link SLO/SLIに関する情報 Featureに関わる様々なメトリクス
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 23
Dashboard 一覧 詳細 機能単位のSLI / SLO / ErrorBudget SLO DocumentなどLink SLO/SLIに関する情報 Featureに関わる様々なメトリクス ※ 少しずつ改善中💪
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 24
設定範囲の進捗 (重要ドメイン) 視聴 導線 購入・登録 視聴
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 25
設定範囲の進捗 (重要ドメイン) 視聴 導線 購入・登録 視聴 順調👍 順調👍
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 26
設定範囲の進捗 (重要ドメイン) 視聴 導線 購入・登録 視聴 順調👍 順調👍 難航😓
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 27
映像配信システムにおける指標の策定 映像の視聴はABEMAにとって 最も重要なユーザージャーニー
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 28
映像配信システムにおける指標の策定 難しいポイント① : 指標の粒度を決めるのが難しい • 配信規格ごとに扱うリソースは様々 • 配信形態ごとにやりとりする頻度や内容が異なる 配信規格 配信形態 リニア VOD Payperview 低遅延配信 追っかけ Playlist TS TS TS MPD MP4 MP4 MP4 CM HLS mpeg- DASH
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 29
映像配信システムにおける指標の策定 難しいポイント② : 単純なHTTPの成功・失敗のみでは信頼性を表現出来ない • 視聴プレイヤーのバッファリングにより映像ファイル取得の失敗 =映像の停止とならない ケースがある • ABRの仕組みにより映像ファイルの取得遅延 =映像の停止とならないケースがある 出典: cloudinary. Product Updates 出典: Qiita HLSやMPEG-DASHの時間的な変化をグラフで理解する
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 30
映像配信システムにおける指標の策定 難しいポイント③ : レスポンスの中身の検査が必要 • e.g , 取得したmanifestが前回取得時の内容と整合性が取れているか • e.g , 計画された配信スケジュール通りになっているか (番組やフィラーなど) manifest 番組表 フィラー ↑正常 ↓異常
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 31
映像配信システムにおける指標の策定 難しいポイント① : セグメント粒度を決めるのが難しい 難しいポイント② : 単純なHTTPの成功・失敗のみでは表現出来ない 難しいポイント③ : レスポンスの中身の検査が必要 他にもたくさん...
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 32
映像配信システムにおける指標の策定 計画中のアプローチ 配信形態 リニア VOD News PPV ... 配信規格 HLS DASH リソース種別 Manifest Segment 検査種別 Availability Latency Correctness ... x x x 各指標の組み合わせに対し、 計測方法(RUM/STM)と観測点(CDN/Origin)を選択して測定
AbemaTV, Inc. All Rights Reserved SLI / SLO の設定 33
映像配信システムにおける指標の策定 計画中のアプローチ 配信形態 リニア VOD News PPV ... 配信規格 HLS DASH リソース種別 Manifest Segment 検査種別 Availability Latency Correctness ... x x x 各指標の組み合わせに対し、 計測方法(RUM/STM)と観測点(CDN/Origin)を選択して測定
AbemaTV, Inc. All Rights Reserved Backend Team's Embedded SRE 34
今後について
AbemaTV, Inc. All Rights Reserved 今後の挑戦していきたいこと 35 • SLI /
SLO ◦ 活用のユースケースを増やす ▪ e.g , 監視,リリース管理,パフォーマンステスト ◦ 設定の簡略化 ◦ 開発フローへの組み込み • 潜在的リスクの発掘・改善 ◦ 継続的負荷試験 ◦ カオスエンジニアリング • 自律的防御システムの開発 ◦ キャパシティに応じたトラフィック制御
3. Frontend Team's Embedded SRE
AbemaTV, Inc. All Rights Reserved 動画市場の拡大 37 市場規模の拡大 出典: 2020,
サイバーエージェント 国内動画広告の市場調査 ABEMAサービス規模の拡大
AbemaTV, Inc. All Rights Reserved ABEMAの変化 38 よりユーザーに近い部分での品質 に着目した高い信頼性が必要
AbemaTV, Inc. All Rights Reserved Frontend SRE の必要性 39 端末のリソースとスペックの向上
• 64bit処理系の普及 • CPU/GPUの性能向上 オンデバイス処理の普及 高速で大容量のストレージ • SSDの普及 • 安価で大容量なHD • LTEの普及 • 5Gの普及 ネットワークの高速化
AbemaTV, Inc. All Rights Reserved ABEMAにおけるFrontend SREの必要性 40 サポートデバイスの多様化
AbemaTV, Inc. All Rights Reserved ABEMA frontendの課題 41 モニタリング •
基本的なログやクラッシュ情報しかない • 機能ごとの正常性を判断出来る指標がない • 障害の基準や判断があいまい • 影響範囲をすぐに把握できない インシデント対応
AbemaTV, Inc. All Rights Reserved SREプラクティスの導入 42 SLOの導入
AbemaTV, Inc. All Rights Reserved 計測ソリューションの導入 43
AbemaTV, Inc. All Rights Reserved 計測ソリューションの導入 44 iOS, Android, Browser,
TV Deviceなどで導入 - SLI の計測 - ダッシュボード作成 - アラート管理 (PagerDuty 連携) - クエリでの柔軟な情報収集 NewRelic の導入 SaaS 型のオブザーバビリティプラットフォーム
AbemaTV, Inc. All Rights Reserved オブザーバビリティの確保 45
AbemaTV, Inc. All Rights Reserved SLI / SLOの定義 46 1.
機能が提供できていると言える条件を定義する 2. 計測対象を明確化する 3. 計測実装を入れる 4. ベースラインを確認する 5. SLOを設定する SLI / SLOの設定手順
AbemaTV, Inc. All Rights Reserved 計測戦略の統一 47 • テーブル・アトリビュート設計 •
計測仕様・インターフェース • SLO Document フロントエンド共通の計測戦略 → 実装から可視化までのフローを共通化
AbemaTV, Inc. All Rights Reserved SLOの監視・アラート 48
AbemaTV, Inc. All Rights Reserved 段階リリースによるメトリクスの確認 49 Youbora (視聴品質) NewRelic
(プロダクト品質)
AbemaTV, Inc. All Rights Reserved アラートの自動化と運用 50 SLOを設定すると自動でダッシュボードと アラートに反映される仕組みを構築
・バーンレートに基づくアラート設定 ・エラーバジェットの算出 ・AvailabilityとLatencyそれぞれに設定 Terraform による自動化 出典: https://sre.google/workbook/alerting-on-slos/
AbemaTV, Inc. All Rights Reserved SLOの監視・アラート 51
AbemaTV, Inc. All Rights Reserved Frontend SRE の難しさ 52 •
SLO のベースラインが低い • 同一ユーザーで多発したり、端末や通信環境に依存することが多い 実際に起きた問題
AbemaTV, Inc. All Rights Reserved Frontend SRE の難しさ 53 •
SLO のベースラインが低い • 同一ユーザーで多発したり、端末や通信環境に依存することが多い 実際に起きた問題 → セッションベースではなくユニークユーザに対する影響率で集計 → ノイズを加味したアラート設定
AbemaTV, Inc. All Rights Reserved Frontend SRE の難しさ 54 スケール
モバイルアプリにおけるの課題 モニタリング 制御 変更管理 膨大なデバイスモデルと外部要因を考慮しながら 複数バージョンをサポートする等の制約が多い モニタリングコストとして端末リソースや影響が 避けられない (全てを観測することは不可能) ユーザーが更新しなければならず バイナリの更新を強制できない ロールバックができず バージョンが長く残り続けてしまう 出典: https://sre.google/resources/practices-and-processes/engineering-reliable-mobile-applications/
AbemaTV, Inc. All Rights Reserved 活動まとめ 55 • NewRelicの導入 •
SLI / SLOの導入 • ダッシュボード&アラートの自動化 • PagerDutyとの連携 • 段階リリースでのチェック • RUNBOOKの作成 運用 活動内容
AbemaTV, Inc. All Rights Reserved frontend SREの今後の方針 56 • サポートデバイス全体での品質の維持/向上
• MTTD(平均検知時間)とMTTR(平均復旧時間)の短縮 • 品質指標によるロールアウト戦略の自動化
4. 全体まとめ
AbemaTV, Inc. All Rights Reserved Embedded SRE 体制を振り返って 58 良かった点
• Frontend、Backend間で協力関係が強化された • 各チームのナレッジがより共有されるようになった • チーム毎に異なっていた障害対応フローを統一できた 苦労した点 • チームへのインストールコストが高い • 費用対効果を実感できるまでが長い • オーバーエンジニアリングの境界を見極めるのが難しい
AbemaTV, Inc. All Rights Reserved これからの挑戦 59 Embedded SREがチームのプラクティスを持ち寄り サービス品質を自律的に維持・向上できる組織を目指します
None