Slide 1

Slide 1 text

AbemaTV, Inc. All Rights Reserved
 1 ABEMAにおけるFrontend SRE活動について 
 株式会社AbemaTV Native Application Engineer 石川 諒

Slide 2

Slide 2 text

AbemaTV, Inc. All Rights Reserved
 今日お話すること
 2 1. ABEMAにおけるFrontend SREの背景
 2. NewRelicを活用したSLI/SLOの管理
 3. まとめ


Slide 3

Slide 3 text

AbemaTV, Inc. All Rights Reserved
 Frontend SRE の必要性
 3 端末のリソースとスペックの向上
 ● 64bit処理系の普及
 ● CPU/GPUの性能向上
 オンデバイス処理の普及 
 高速で大容量のストレージ 
 ● SSDの普及
 ● 安価で大容量なHD
 ● LTEの普及
 ● 5Gの普及
 ネットワークの高速化 


Slide 4

Slide 4 text

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


Slide 5

Slide 5 text

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


Slide 6

Slide 6 text

AbemaTV, Inc. All Rights Reserved
 2021年からの体制
 6 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の役割も担う

Slide 7

Slide 7 text

AbemaTV, Inc. All Rights Reserved
 ABEMA frontendの課題
 7 モニタリング
 ● 基本的なログやクラッシュ情報しかない
 ● 機能ごとの正常性を判断出来る指標がない
 ● 障害の基準や判断があいまい
 ● 影響範囲をすぐに把握できない
 インシデント対応


Slide 8

Slide 8 text

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


Slide 9

Slide 9 text

AbemaTV, Inc. All Rights Reserved
 計測ソリューションの導入
 9 iOS, Android, Browser, TVデバイスなどで導入 
 
 ・SLI の計測
 ・ダッシュボード作成
 ・アラート管理 (PagerDuty 連携) 
 ・クエリでの柔軟な情報収集 
 NewRelic の導入
 SaaS型のオブザーバビリティプラットフォーム 


Slide 10

Slide 10 text

AbemaTV, Inc. All Rights Reserved
 (Beta) サービスレベル管理機能
 10 
 
 ・NRDBのイベントから定義が可能
 ・エラーバジェットの可視化
 
 Service level management
 出典: https://docs.newrelic.com/jp/docs/service-level-management/intro-slm/

Slide 11

Slide 11 text

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


Slide 12

Slide 12 text

AbemaTV, Inc. All Rights Reserved
 計測戦略の統一
 12 ● テーブル・アトリビュート設計
 ● 計測仕様・インターフェース
 ● SLO Document
 フロントエンド共通の計測戦略
 → 実装から可視化までのフローを共通化


Slide 13

Slide 13 text

AbemaTV, Inc. All Rights Reserved
 メトリクス化による中長期の分析
 13 分析対象があらかじめ存在し 
 中長期の変化を観察したい場合に有効 
 
 ・13ヶ月のデータ保存が可能
 ・通常のデータ保存より廉価
 Events-to-metrics service
 出典: https://newrelic.com/jp/blog/nerdlog/product-announcements-metrics-service

Slide 14

Slide 14 text

AbemaTV, Inc. All Rights Reserved
 ダッシュボードとアラートの自動化
 14 SLOを設定すると自動でダッシュボードと 
 アラートに反映される仕組みを構築 
 
 ・バーンレートに基づくアラート設定 
 ・エラーバジェットの算出
 ・AvailabilityとLatencyそれぞれに設定 
 Terraform による自動化
 出典: https://sre.google/workbook/alerting-on-slos/

Slide 15

Slide 15 text

AbemaTV, Inc. All Rights Reserved
 SLI/SLO メタデータ
 パラメーター ・SLOの閾値 ・SLO Document ・バーンレート ・アラートトリガーの有無 ・Runbook URL …

Slide 16

Slide 16 text

AbemaTV, Inc. All Rights Reserved
 ダッシュボード(一部抜粋)
 表示しているもの ・SLI / SLO (SingleValue) ・SLI (TimeSeries) ・SLO Document ・Error Budget

Slide 17

Slide 17 text

AbemaTV, Inc. All Rights Reserved
 Frontend SRE の難しさ
 17 ● SLO のベースラインが低い
 
 ● 同一ユーザーで多発したり、端末や通信環境に依存することが多い
 実際に起きた問題


Slide 18

Slide 18 text

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


Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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


Slide 21

Slide 21 text

AbemaTV, Inc. All Rights Reserved
 段階リリースチェッカーの要件
 21 ● 任意のプラットフォーム・任意のバージョンを指定可能
 ● SLI/SLOがリリース基準を満たしているか自動でチェックできる
 ● 満たしていない場合はダッシュボードへ誘導する
 機能要件


Slide 22

Slide 22 text

AbemaTV, Inc. All Rights Reserved
 Nerd Graph


Slide 23

Slide 23 text

AbemaTV, Inc. All Rights Reserved


Slide 24

Slide 24 text

AbemaTV, Inc. All Rights Reserved
 実行結果(サンプル) 


Slide 25

Slide 25 text

まとめ


Slide 26

Slide 26 text

AbemaTV, Inc. All Rights Reserved
 まとめ
 26 NewRelicの活用ポイント
 
 ● メトリクス化による中長期の品質分析
 
 ● Terraformを利用した自動化
 
 ● NerdGraphを活用したリリース判定
 frontend SREの活動
 
 ● Embedded SREの体制への変更
 
 ● SLI/SLOを導入・運用
 
 ● より安全なリリースの実現


Slide 27

Slide 27 text

AbemaTV, Inc. All Rights Reserved
 ご視聴ありがとうございました