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を導入・運用
● より安全なリリースの実現