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
530
開発スピード × アプリ品質
rinov
0
80
What's new in Xcode10 Build System
rinov
0
67
【第5回】CA Swift
rinov
1
590
iPadをサブディスプレイにする実装に挑戦してみよう
rinov
11
2.8k
Other Decks in Technology
See All in Technology
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
300
Lambdaと地方とコミュニティ
miu_crescent
2
370
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
190
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
210
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
470
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
380
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.2k
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
250
いざ、BSC討伐の旅
nikinusu
2
780
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
120
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
334
57k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
A better future with KSS
kneath
238
17k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Site-Speed That Sticks
csswizardry
0
23
Being A Developer After 40
akosma
86
590k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Optimizing for Happiness
mojombo
376
70k
Faster Mobile Websites
deanohume
305
30k
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