Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ABEMA SREの挑戦 〜Frontend & Backend TeamへのEmbedded SRE導入〜

ABEMA SREの挑戦 〜Frontend & Backend TeamへのEmbedded SRE導入〜

ABEMA DEVELOPER CONFERENCE 2021

"ABEMA SREの挑戦 〜Frontend & Backend TeamへのEmbedded SRE導入〜"の発表スライドです

2e2d200e4cb0e42f113e366c9060b1cd?s=128

RyoIshikawa

December 31, 2021
Tweet

More Decks by RyoIshikawa

Other Decks in Technology

Transcript

  1. None
  2. AbemaTV, Inc. All Rights Reserved
 今日お話すること
 2 1. 背景
 2.

    Backend Team's Embedded SRE
 3. Frontend Team's Embedded SRE
 4. まとめ

  3. 1. 背景 ~ Embedded SRE 体制にいたるまで ~


  4. AbemaTV, Inc. All Rights Reserved
 ABEMAの変化
 4 サービス規模の成長
 ダウンロード 7300万

    (2018年比 約100%増) WAU 1303万 (2018年比 約100%増) ※ 出典 CyberAgent, inc. 2021 年通期決算発表資料
  5. 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%増

  6. AbemaTV, Inc. All Rights Reserved
 ABEMAの目指すかたち
 6

  7. AbemaTV, Inc. All Rights Reserved
 ABEMAの目指すかたち
 7 新しい未来のテレビとは
 • 無料・同時性


    ◦ 報道・スポーツ
 ◦ ドラマ・バラエティ
 • 時間・空間からの開放
 ◦ オンデマンド・追っかけ再生
 ◦ マルチデバイス・ダウンロード再生 
 出典: CyberAgent, inc. 2021 年通期決算発表資料
  8. AbemaTV, Inc. All Rights Reserved
 ABEMA SREとして向き合うポイント
 8 • 映像が途切れることなく視聴出来る環境


    • 障害発生時に即座に復旧出来る対応環境
 
 サービスの特性
 • 利用規模に応じたシステムキャパシティの確保
 • 各デバイスやシステムの拡大に応じた適切な品質維持
 サービス・システム・組織規模の拡大

  9. 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
  10. AbemaTV, Inc. All Rights Reserved
 2020年までの活動
 10 • On-Call環境の改善 


    • SLI/SLO基盤の開発 
 • Production Readiness Checklist の作成
 1. プラクティスの導入
 • GCP Networkの移設 
 • 冗長Loadbalancerの構築 
 3. 基盤システムの改善
 • インフラキャパシティの確保 
 • 各インフラのメンテナンス 
 • システムコストの管理・改善 
 2. 基盤システムの運用

  11. AbemaTV, Inc. All Rights Reserved
 課題点
 11 1. サービスの成長速度に対するシステム理解速度の乖離
 2.

    各サービスの品質と潜在的リスクの把握不足
 3. プラクティスの実験や検証における協力チームのキャパシティ
 4. SREプラクティスの導入と基盤システム改善の実施バランス

  12. 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の役割も担う
  13. AbemaTV, Inc. All Rights Reserved
 2021年からの体制
 13 体制変更の狙い
 1. 注力するポイントの最適化

    
 2. 担当チームと密にコミュニケーションを計り、各プラクティス導入の速度と質を上げる 
 3. チーム個別の課題やリスクを把握し、全体効率のよい施策の実施する 
 4. 改善プラクティスを他チーム (SRE) に伝播し、組織全体で信頼性の底上げを行う 

  14. 2. Backend Team's Embedded SRE


  15. AbemaTV, Inc. All Rights Reserved
 Backend Team's Embedded SRE
 15

    • (継続) : SLI / SLO の設定
 • (継続) : インシデントプロセスの改善
 • (継続) : Service Doc (design doc + α)
 • (継続) : Production Readiness Checklistの刷新
 • (新規) : 連携サービスのキャパシティ情報管理の半自動化
 • (新規) : 継続的負荷試験の導入
 取り組み

  16. AbemaTV, Inc. All Rights Reserved
 Backend Team's Embedded SRE
 16

    • (継続) : SLI / SLO の設定
 • (継続) : インシデントプロセスの改善
 • (継続) : Service Doc (design doc + α)
 • (継続) : Production Readiness Checklistの刷新
 • (新規) : 連携サービスのキャパシティ情報管理の半自動化
 • (新規) : 継続的負荷試験の導入
 取り組み
 時間の関係で割愛 🙏 

  17. AbemaTV, Inc. All Rights Reserved
 Backend Team's Embedded SRE
 17

    SLI / SLO の設定

  18. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 18

    なぜ ABEMA にとって SLI / SLO が必要だと考えているのか
 “ Reliability Is the 
 Most Important Feature ‘’
 Ben Treynor, Google's VP 
 • サービス特性である同時性の担保
 • 機能・システム・組織規模の拡大
 • 様々な改善やプラクティスへの活用性
 • 組織との共通言語化

  19. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 19

    1. 重要ドメインの選定
 2. 各サービス構成の理解
 3. CUJの特定
 4. SLIの測定対象と方法の決定
 5. SLOの設定
 6. SLO Documentを利用した合意
 SLO 設定の始め方

  20. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 20

    アーキテクチャ
 メトリクス収集 永続化 可視化
  21. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 21

    Dashboard
 一覧 詳細
  22. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 22

    Dashboard
 一覧 詳細 機能単位のSLI / SLO / ErrorBudget 
 SLO Documentなどの各Link 
 SLO/SLIに関する情報 
 Featureに関わる様々なメトリクス 

  23. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 23

    Dashboard
 一覧 詳細 機能単位のSLI / SLO / ErrorBudget 
 SLO DocumentなどLink 
 SLO/SLIに関する情報 
 Featureに関わる様々なメトリクス 
 ※ 少しずつ改善中💪

  24. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 24

    設定範囲の進捗 (重要ドメイン)
 視聴
 導線
 購入・登録
 視聴

  25. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 25

    設定範囲の進捗 (重要ドメイン)
 視聴
 導線
 購入・登録
 視聴
 順調👍
 順調👍

  26. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 26

    設定範囲の進捗 (重要ドメイン)
 視聴
 導線
 購入・登録
 視聴
 順調👍
 順調👍
 難航😓

  27. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 27

    映像配信システムにおける指標の策定
 映像の視聴はABEMAにとって 最も重要なユーザージャーニー
  28. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 28

    映像配信システムにおける指標の策定
 難しいポイント① : 指標の粒度を決めるのが難しい
 • 配信規格ごとに扱うリソースは様々 • 配信形態ごとにやりとりする頻度や内容が異なる 配信規格 配信形態 リニア VOD Payperview 低遅延配信 追っかけ Playlist
 TS
 TS
 TS
 MPD
 MP4
 MP4
 MP4
 CM HLS mpeg- DASH
  29. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 29

    映像配信システムにおける指標の策定
 難しいポイント② : 単純なHTTPの成功・失敗のみでは信頼性を表現出来ない
 • 視聴プレイヤーのバッファリングにより映像ファイル取得の失敗 =映像の停止とならない ケースがある • ABRの仕組みにより映像ファイルの取得遅延 =映像の停止とならないケースがある 出典: cloudinary. Product Updates 出典: Qiita HLSやMPEG-DASHの時間的な変化をグラフで理解する
  30. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 30

    映像配信システムにおける指標の策定
 難しいポイント③ : レスポンスの中身の検査が必要
 • e.g , 取得したmanifestが前回取得時の内容と整合性が取れているか • e.g , 計画された配信スケジュール通りになっているか (番組やフィラーなど) manifest 番組表 フィラー ↑正常 ↓異常
  31. AbemaTV, Inc. All Rights Reserved
 SLI / SLO の設定
 31

    映像配信システムにおける指標の策定
 難しいポイント① : セグメント粒度を決めるのが難しい
 難しいポイント② : 単純なHTTPの成功・失敗のみでは表現出来ない
 難しいポイント③ : レスポンスの中身の検査が必要
 他にもたくさん...
  32. 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)を選択して測定

  33. 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)を選択して測定

  34. AbemaTV, Inc. All Rights Reserved
 Backend Team's Embedded SRE
 34

    今後について

  35. AbemaTV, Inc. All Rights Reserved
 今後の挑戦していきたいこと
 35 • SLI /

    SLO
 ◦ 活用のユースケースを増やす 
 ▪ e.g , 監視,リリース管理,パフォーマンステスト 
 ◦ 設定の簡略化
 ◦ 開発フローへの組み込み 
 • 潜在的リスクの発掘・改善
 ◦ 継続的負荷試験
 ◦ カオスエンジニアリング 
 • 自律的防御システムの開発
 ◦ キャパシティに応じたトラフィック制御 

  36. 3. Frontend Team's Embedded SRE


  37. AbemaTV, Inc. All Rights Reserved
 動画市場の拡大
 37 市場規模の拡大
 出典: 2020,

    サイバーエージェント 国内動画広告の市場調査 ABEMAサービス規模の拡大

  38. AbemaTV, Inc. All Rights Reserved
 ABEMAの変化
 38 よりユーザーに近い部分での品質
 に着目した高い信頼性が必要


  39. AbemaTV, Inc. All Rights Reserved
 Frontend SRE の必要性
 39 端末のリソースとスペックの向上


    • 64bit処理系の普及
 • CPU/GPUの性能向上
 オンデバイス処理の普及 
 高速で大容量のストレージ 
 • SSDの普及
 • 安価で大容量なHD
 • LTEの普及
 • 5Gの普及
 ネットワークの高速化 

  40. AbemaTV, Inc. All Rights Reserved
 ABEMAにおけるFrontend SREの必要性
 40 サポートデバイスの多様化


  41. AbemaTV, Inc. All Rights Reserved
 ABEMA frontendの課題
 41 モニタリング
 •

    基本的なログやクラッシュ情報しかない
 • 機能ごとの正常性を判断出来る指標がない
 • 障害の基準や判断があいまい
 • 影響範囲をすぐに把握できない
 インシデント対応

  42. AbemaTV, Inc. All Rights Reserved
 SREプラクティスの導入
 42 SLOの導入


  43. AbemaTV, Inc. All Rights Reserved
 計測ソリューションの導入
 43

  44. AbemaTV, Inc. All Rights Reserved
 計測ソリューションの導入
 44 iOS, Android, Browser,

    TV Deviceなどで導入 
 
 - SLI の計測
 - ダッシュボード作成
 - アラート管理 (PagerDuty 連携) 
 - クエリでの柔軟な情報収集 
 NewRelic の導入
 SaaS 型のオブザーバビリティプラットフォーム 

  45. AbemaTV, Inc. All Rights Reserved
 オブザーバビリティの確保
 45

  46. AbemaTV, Inc. All Rights Reserved
 SLI / SLOの定義
 46 1.

    機能が提供できていると言える条件を定義する 
 2. 計測対象を明確化する 
 3. 計測実装を入れる 
 4. ベースラインを確認する 
 5. SLOを設定する
 SLI / SLOの設定手順

  47. AbemaTV, Inc. All Rights Reserved
 計測戦略の統一
 47 • テーブル・アトリビュート設計
 •

    計測仕様・インターフェース
 • SLO Document
 フロントエンド共通の計測戦略
 → 実装から可視化までのフローを共通化

  48. AbemaTV, Inc. All Rights Reserved
 SLOの監視・アラート
 48

  49. AbemaTV, Inc. All Rights Reserved
 段階リリースによるメトリクスの確認
 49 Youbora (視聴品質)
 NewRelic

    (プロダクト品質)

  50. AbemaTV, Inc. All Rights Reserved
 アラートの自動化と運用
 50 SLOを設定すると自動でダッシュボードと 
 アラートに反映される仕組みを構築

    
 
 ・バーンレートに基づくアラート設定 
 ・エラーバジェットの算出
 ・AvailabilityとLatencyそれぞれに設定 
 Terraform による自動化
 出典: https://sre.google/workbook/alerting-on-slos/
  51. AbemaTV, Inc. All Rights Reserved
 SLOの監視・アラート
 51

  52. AbemaTV, Inc. All Rights Reserved
 Frontend SRE の難しさ
 52 •

    SLO のベースラインが低い
 
 • 同一ユーザーで多発したり、端末や通信環境に依存することが多い
 実際に起きた問題

  53. AbemaTV, Inc. All Rights Reserved
 Frontend SRE の難しさ
 53 •

    SLO のベースラインが低い
 
 • 同一ユーザーで多発したり、端末や通信環境に依存することが多い
 実際に起きた問題
 → セッションベースではなくユニークユーザに対する影響率で集計
 
 → ノイズを加味したアラート設定

  54. AbemaTV, Inc. All Rights Reserved
 Frontend SRE の難しさ
 54 スケール


    モバイルアプリにおけるの課題
 モニタリング
 制御
 変更管理
 膨大なデバイスモデルと外部要因を考慮しながら 
 複数バージョンをサポートする等の制約が多い 
 モニタリングコストとして端末リソースや影響が 
 避けられない (全てを観測することは不可能) 
 ユーザーが更新しなければならず 
 バイナリの更新を強制できない 
 ロールバックができず 
 バージョンが長く残り続けてしまう 
 出典: https://sre.google/resources/practices-and-processes/engineering-reliable-mobile-applications/
  55. AbemaTV, Inc. All Rights Reserved
 活動まとめ
 55 • NewRelicの導入
 •

    SLI / SLOの導入
 • ダッシュボード&アラートの自動化
 • PagerDutyとの連携
 • 段階リリースでのチェック
 • RUNBOOKの作成
 運用
 活動内容

  56. AbemaTV, Inc. All Rights Reserved
 frontend SREの今後の方針
 56 • サポートデバイス全体での品質の維持/向上

    
 
 • MTTD(平均検知時間)とMTTR(平均復旧時間)の短縮
 
 • 品質指標によるロールアウト戦略の自動化

  57. 4. 全体まとめ


  58. AbemaTV, Inc. All Rights Reserved
 Embedded SRE 体制を振り返って
 58 良かった点


    
 • Frontend、Backend間で協力関係が強化された
 • 各チームのナレッジがより共有されるようになった
 • チーム毎に異なっていた障害対応フローを統一できた
 苦労した点
 
 • チームへのインストールコストが高い
 • 費用対効果を実感できるまでが長い
 • オーバーエンジニアリングの境界を見極めるのが難しい
 

  59. AbemaTV, Inc. All Rights Reserved
 これからの挑戦
 59 Embedded SREがチームのプラクティスを持ち寄り サービス品質を自律的に維持・向上できる組織を目指します

  60. None