TVerサービスの継続的安定への取り組み

はじめに

TVerのSREチームでインフラ周りやサービス監視オブザーバビリティーを担当しています西尾です。 この度はサービスとしての認知が広まり、配信プラットフォームとしての社会的な重要性も高まってきたTVerサービスについて運用面からの取り組みを紹介していきたいと思います。 現在Tverに関しては、多くのユーザーから視聴していただいていますが、サービス提供に関するステークホルダーとしてはこの視聴されていますユーザー以外にも、配信を行うコンテンツを制作提供している各放送局の方々も含まれ、サービスとしてはBtoC/BtoBの両方の性質をもっています。 そのため、サービスの安定稼動についてはこれからもっと多くのユーザーに必要とされ、また信頼できる動画配信プラトフォーム業者として各放送局の方々から選ばれるように高いレベルで求められています。 安定稼働の取り組みとしては各チームで様々な施策を行なっていますが、SREチームとしてどのような事を行い、どのような姿を目指しているかを書いていきたいと思います。

動画配信サービスの構成

TVerのサービスに関しては、このサービスを提供するにあたって様々なコンポーネントで構成されています。 ここでは個々の領域に踏み込むと説明が長くなってしまうので割愛し、一般的に使われているサービス名を利用しながら紹介したいと思います。 まずTVerのサービスに関しては大部分がAWS上で稼働しています、一部のコンポーネントに関してはGCP上でも動いていますが、これはサービス(サービスを構成する個々のコンポーネント)やデータ特性などにより各種パブリッククラウドの事業者のサービスを使い分けているのでこのような構成となっています。 動画配信の部分を除けば、一般的なAPI構成で使われているAWSサービスを利用して構築されていますので、その部分はイメージがつきやすいと思います。 パブリッククラウドのサービス以外の部分ですと、CDNではJOCDNを、動画配信のメディアに関してはPLAY社のSTREAKSなどを利用しています。

TVerインフラ構成

CMSに関しては、TVerで配信を行なっているコンテンツを登録するために専用の画面を作ってそこで配信素材を管理しています。

運用面

SREチームが関わる非機能要件部分の運用業務としては、CI/CD周りやインフラのスケーリングなどが存在します。 CI/CD周りに関してはGitHub Actionsでコードが含まれるイメージをbuildして、それにタグ付けを行なってからECRにイメージをpushしています。 そしてそのイメージがpushされたのをトリガーとして、ECS上のサービスが更新されるようになっています。 デプロイの更新に関しては、通常はローリングアップデートを行なっていますが、重要な更新を含むリリースの場合はカナリアリリースを行うようにしています。 カナリアリリースに関しては、カナリアリリース用のECSサービスが別途稼働していますので、そのターゲットグループに対して流すトラフィックのウェイトをALB側で設定しています。 カナリアリリース後問題なければ、本番稼働していますECSサービスに全てのトラフィックを流してリリースが完了となります。 ECSサービスでカナリアリリースする場合、いくつかの方法がありますが、当初はブルーグリーン・デプロイメントも利用することができるデプロイ方式のAWS CodeDeployを検討しました。 ただこれに関してはサービスの再作成が必要になり導入の際にダウンタイムを無くす場合の準備と検証に時間がとれなかったので見送りになりました。

カナリアリリース

しかし将来的にはリリース時のサービス影響を極力無くすために、今後ブルーグリーン・デプロイメントの採用はどこかの時点でやっていきたいと思っています。

インフラ周りのスケーリングに関しては、過去の記事で取り上げていますがOmniscientという独自のシステムを利用して行なっています。 このシステムではECSサービスのタスク数やリソース、RDSのレプリカ数などをGUI上のコンソールで指定することがで、その指定した内容で最終的にはCloudFormationを通して実際の変更が行われています。 事前に具体的なスケーリング内容を設定してテンプレートを準備しておく事が出来るので、スケーリングすべき日時にそのテンプレートを適用するだけでインフラのスケーリング作業を完了する事ができます。 実際のスケーリングをどのタイミングで行うかですが、例えば多くのユーザーに注目されるコンテンツ配信については事前にどれくらいユーザーが流入するか過去の経験や別チームから提供される情報で対象を特定する事が可能ですので、そのコンテンツの配信可能となる時間に合わせて行われています。

イメージ - XX月XX日 21:00
サッカー日本対XXX ユーザー想定同接数 XX万人 →  x10倍テンプレート利用

監視面

サービスを安定稼働させるには欠かせないのが監視、最近では予防的な措置を含めて観測するオブザーバビリティーとしてシステムの安定稼働に必要な要素として再定義されています。 TVerサービスとしては、原則はNew Relicにデータを送りそこでアラート設定も含めてメトリクス、ログの監視を行なっています。 New Relicにデータを送る方法ですが、現在稼働するサービスが複数のAWSアカウントやサービスに跨っていますので下記の通り複数経路が存在します。

APM

・コード上にAPMエージェントを組み込み、New Relicに直接送信

インフラ面

  • メトリクス

・ コンテナのサイドカーとしてinfra agent組み込んでNew Relicに送信

・ EC2についてはinfra agentを直接配置してNew Relicに送信

  • ログ

・ コンテナのサイドカーとしてFireLensを組み込み、New Relicに直接送信 (*FireLensでS3、CloudWatch Logs、New Relicにカスタムルーティングを行なっている)

・ EC2に関してはfluentを利用してCloudWatch Logsにエラーログのみ転送し、トリガーとしてlambdaを設定しNew Relicに送信

・ ALBのログなどAWS固有のサービスログに関しては、S3に保存し、その後Athenaを利用して集計しlambda経由でNew Relicに送信

Log Forwarder 構成

監視アラートに関しては、設定できるポイントはいくつかありますが一元的にアラート管理を行いたいのでアラート設定を行う必要のあるメトリクスやログはNew Relicに流してそこで設定するようにしています。 New Relicに関してはAPM機能を利用するために、バックエンド、フロントエンド、ネイティブアプリにエージェントのインストールを行なっていますが、Androidアプリに関してはFirebaseやGoogle Play Consoleで補完しているものもあります。

通知アラート

アラートの閾値、通知設計は的確にサービスの問題を検知し対応するためにサービスの安定提供に重要な要素になります。 当初はあまり通知先や閾値設計ができてなかったので、どこに何のアラートが飛んでるかわからず、またこのアラートがどの程度のサービスインパクトがあるか把握しにくい部分がありました。 そのため、現在はサービスインパクト別にセベリティで分けた通知先を準備し、アラートの閾値は現在まで蓄積されたメトリクスを利用し障害時の状況から逆算的に設定できるように取り組んでいます。 まだこれに関しては、進行中の作業になりますが設定が終わる頃には以前よりは問題把握のスピードアップができエスカレショーンフローもスムーズになると信じています。

SLA/SLO

TVerでは特に現在のところSLA/SLOを公表していませんが、必要性を理解していますのでまずは内部的な指標としてその準備を現在進めています。 New Relicにデータを一元的に集めることで、エンドポイント監視、ログ監視、Syntheticモニター機能を利用して全体的なサービス、個々の機能の広く見渡せるよう定義していく予定です。 現在までにこの作業で実施している取り組みに関しては、下記のようなものがあります。

  • New Relic Synthetics scripted browserを利用して実際のユーザー体験を考慮した(CUJ)監視計測
  • スパイク時、障害時のメトリクスデーターの蓄積を行い問題発生時に注視すべき対象を特定
  • 遅延などデグラデーションも認識できるようにポイント、コンポーネントごとの指標の定義
  • WEB、アプリ、コネクテッドTVなど複数のデバイスで視聴されるので、デバイス固有の問題を特定できる指標の定義

SLA/SLOダッシュボード(New Relic)

これらはのデータはすぐに揃えることが難しくなかなかSLA/SLOの着手ができなかったので時間を要しましたが、各サービスの開発担当者と協力しながらある程度形になるものは出来ようとしてます。

目指すべき姿

残念ながら今年に入ってもTVerサービスでは一時的な接続障害を発生させてしまっています。 起因となる理由は複数ありますが、本来SREとしてカバーしていれば防げたところもありました。 特に挙げられるものとしては、TVer独特の事象としまして地上波放送からの流入により一時的に急激な流入でインフラのスケールが追いつかずにトラフィックを捌けない事があります。 前もってわかるような同接数であれば、事前にスケールする事が可能ですが、スポーツなどのリアルタイム配信に関しては試合展開によっては地上波放送時間内に収まらずにTVerに誘導される事があるかと思いますがこれがあたります。 ECS構成は管理しやすく運用も比較的に楽ではありますが、ユーザー数の増加やサービスの重要性を考えるとこのスケールが間に合わない問題に対して抜本的なインフラ構成のリファクタリングを考える時期にきていると思っています。 合わせて開発側のCI/CD周りの利便性やリリース方式の検討もできれば、今までボトルネックになっている問題に対しても解決策を提示できるのではないかと思います。

まとめ

サービスを安定稼働するためにSREとして関わることが出来る業務として複数あります。

  • 各サービス開発者に対して、適切な指標の提供
  • サービスの問題を素早く検知しエスカレーションが出来る体制の整備
  • 運用管理しやすいインフラ構成の提供
  • SLA/SLOを整備することにより、サービス関係者に現在のシステム状態の周知    

これらの事はどれも重要ですので全て進めていきたいですが、時間も人も有限なので現状は優先順位をつけて取り組んでいる状況です。 そのためTVerサービスを支えていただける方(SRE業務)を幅広く求めています。 サービスとしては非常に社会的に求められるサービスであり、大規模なトラフィックを捌ける業務となりますのでやりがいはあるかと思います。

TVerはtry! Swift Tokyo 2025に協賛します!

こんにちは、TVerでエンジニアリングマネージャーをしている高橋 (@ukitaka) です。 TVerはtry! Swift Tokyo 2025にゴールドスポンサーとして協賛させていただくことになりました!

TVeriOSチームの近況

以前iOSDC Japan 2024で発表させていただいたタイミングではまだまだ立ち上がり途中だったチームも、当時から人数がなんと3倍 (※1人 → 3人) になり順調に大きくなってきています。

また昨年末からtry! Swiftオーガナイザーの1人である松舘さんにも技術アドバイザーとしてご参画いただいています。

techblog.tver.co.jp

TVerとしてはもう少しiOSエンジニアを採用していく予定なので、去年も大盛況だったtry! Swiftにスポンサーをさせていただくことに決めました!

まずは去年の様子を弊社iOSエンジニアの小森から発表させていただきます。

try! Swift Tokyo 2024の参加レポート

こんにちは、TVeriOSエンジニアをしている小森(@mathtanguu)です。 今更ですが、try! Swift Tokyo 2024の参加レポートになります。

5年ぶりの開催ということでオープニングから盛り上がってました!

ブースに関して

様々なコンテンツが用意されており、各社参加者が有意義に過ごせるように工夫されていました。

  • LINEヤフーさんのソースコードレビュー

  • RIZAPさんのアンケート

  • RevenueCatさんのくじ引き

ぬいぐるみも当てましたw

セッションに関して

セッションスライド等は有志の方々がまとめてくれています。

qiita.com

特に印象的だったセッションは、Swiftの型推論を学ぼう | Let’s Learn About Type Inference in Swiftです。 Swiftの型推論に関するメカニズムを解説したセッションでした。

speakerdeck.com

正直、私はこのメカニズムを深く意識した開発はしていないので内容を理解するのに非常に苦労しました。(まだ理解しきれていない) Swift言語仕様に関しての理解力をあげていきたいと考えるきっかけになりました。 (内容薄くてすみません、本当に言語仕様って難しい)

最後に

最高に有意義な3日間でした。アフターパーティーではHACKING WITH SWIFTのPaulさんに声をかけて写真を取っていただきました!

try! Swiftへの参加は初めてだったのですが、世界中から集まった登壇者や参加者の熱量に圧倒され、TVerとしてもtry! Swiftに何らかの形で貢献できないかと考えるようになりました。

そして try! Swift Tokyo 2025 協賛へ...

try! Swift Tokyo 2024の盛り上がりを踏まえ、Swiftの開発者コミュニティへ貢献したいという想いと、そこにいる人たちに少しでもTVerでのiOS開発に興味を持ってもらえればという想いから、今年はTVerもゴールドスポンサーとして協賛させていただくことにしました。

当日はスポンサーブースも出しているので、ぜひ遊びに来てください!

herp.careers

松館大輝 (@d-date)さんに iOSの技術アドバイザーとして就任いただきました

こんにちは、TVerでエンジニアリングマネージャーをしている 高橋 (@ukitaka) です! 昨年末から松館大輝 (@d-date) さんにTVeriOSアプリの技術アドバイザーに就任いただきましたので、この記事でお知らせさせていただきます。

松館 大輝(まつだて だいき)

東京を拠点に活動する iOS Developer。世界中から Swift の開発者が集まる try! Swift Tokyo のメインオーガナイザーを務める。またスタートアップ数社、内閣官房 IT 総合戦略室(デジタル庁準備室)を経て、現在ではデジタル庁エンジニアユニット長を務める傍ら、さまざまな企業でアプリ開発の支援や技術顧問・アドバイザリーを行う。

※著書「iOSアプリ設計パターン入門」(PEAKS)

今回の取り組みの背景

iOSDCやこのTech Blogでも何度かお伝えさせていただいている通りTVeriOSアプリは現在リアーキテクチャに取り組んでいます。

speakerdeck.com

もちろんリアーキテクチャを行わず枯れた技術を使い続けるという選択自体はできなくはないですが、以下のような観点を踏まえて、TVerではリアーキテクチャに取り組むことに決めました。

  • 採用市場での競争力低下のリスク

  • 新しい技術や体験への適応に時間がかかりすぎることによる、サービスとしての競争力の低下リスク

ただし、アーキテクチャの変更はそれ自体が技術的に難易度の高いタスクであり高度なソフトウェアエンジニアリングスキルを必要とします。さらに、iOS開発を取り巻く環境は数年前に比べて大きく変化しており、SwiftUIやSwiftConcurrencyの登場によりiOSエンジニアに求められる標準的なスキルは上がっていっているように感じています。

ベースとして「自分たちでやりきるぞ!」という気合いも持ちつつも、技術的に詰まってしまった時にサクッとトップレベルのエンジニアに相談できる環境があること自体がスピーディーに開発を進める上でも重要だと考え、TVerが採用していく予定のTCAやSwift Package Managerでのマルチモジュール構成などに業界トップレベルの深い知見を持っている @d-dateさんに技術アドバイザーとして参画いただくことに決めました。

実際の取り組み

数回のミーティングを通してまずは現状のコードベースと、幾つかのフィードバックをいただいています。

松館大輝 (@d-date)さん からのひとこと

ご縁ありまして、技術アドバイザーに就任いたしました。私自身お世話になっているサービスですし、TVeriOSエンジニアのみなさんのお力になれるように一緒に頑張りたいと思っています。

さいごに

トップレベルのエンジニアのサポートを受けながら開発できるというのはある意味最高の福利厚生だと考えています。 TVerではまだまだiOSエンジニアを募集していますので、ご興味持っていただけた方はぜひご応募よろしくお願いします!

herp.careers

TVerのエンジニア組織の歩み

サービスプロダクト本部技術統括(TVerサービス開発部門内のVPoEみたいなポジション)兼バックエンド部部長の脇阪(@tohae)です。 この記事はTVerアドベントカレンダー 2024 25日目の記事です。24日目の記事はSREチームの鈴木さんの「AWS re:Invent 2024に1人で参加してきました」でした

今年の1月からEMとして入社し、約1年間開発組織の拡大や開発生産性の向上のためにいろいろな取組みを行ってきました。 本記事では約1年前のTVerのエンジニア組織がどのような課題を抱えていて、それに対してどのような手を打ってきたかというところをまとめます。

続きを読む

テレビとTVerと私 2024

1、はじめに

この記事は、TVerアドベントカレンダー23日目の記事です。

qiita.com

22日目の記事は@a-matsuoka-tverさんの「大規模サービスを支える小さな開発組織のプロダクトマネジメントチャレンジしたこと」でした。

皆さん、こんにちは、コネクテッドTV(以下CTV)に関するビジネス領域を担当している井出と申します。 業務内容としては、毎度説明に迷うのですが、 すごくシンプルにいうと業務内容としては、TVer(特にCTV)を商材とした営業です。 TVerに関わる全ての人が作り上げているTVerをよりパートナー様にとって価値を感じてもらえるよう、 日々TVerの市場における価値向上に努めています。

去年書いた記事はこちらです。

techblog.tver.co.jp

そもそも、CTVってなんやねんという方向けに補足させていただくと、

CTVとは、テレビ自体がインターネットに接続されているスマートテレビはもちろん、 Fire TV、Chromecastなどのストリーミングメディアプレイヤー、 PlayStationXboxなどのゲーム機、プロジェクター、セットトップボックスなどの外部機器を接続している場合のテレビも含んでいるものを指します。 (※TVerはゲーム機にはまだ対応しておりません、ごめんなさい!) 自分の家のテレビや、モニターがインターネット接続に対応していない場合も、外部機器を接続することで、コネクテッドTVとして、動画サービスなどのエンタメを堪能することができます。

2、今日は何の話を?

去年はCTVの概要から、TVerにおけるCTVの位置付けなどについてお話ししました。

今回は、その続き及びCTVにまつわる世界の流れなどについて書いていきたいと思います。

具体的には、

  • CTVの概況
  • TVerのCTV状況 Update
  • TVerにおける私の近況

について書いていきます。

3、CTVの概況

①CTV市場の状況

TVは市場としても拡大しており、 下記の記事では、

近年、動画ストリーミングや見逃し配信の視聴者数の増加に伴って、CTVの普及が進んでいます。テレビ端末のネット結線率は、2015年に東京50Km圏の24.5%でしたが、2021年には半数の50%を突破。2023年には59.6%まで上昇しています。2015年からの9年で2.4倍増と、着実に増加していることが分かります。

「コネクテッドTV(CTV)とは?」今さら聞けない!基本の『キ』|VR Digest plus メディアとビジネスのミライを見つめる。 | ビデオリサーチ

と書かれている通りに、約60%がインターネットに接続されたテレビ、つまりCTVとなっています。

普及が進んでいるアメリカにおいては、

Leichtman Research Groupの調査によると、米国のTV世帯の87%がなんらかのCTVデバイスを少なくとも1台所有していることが明らかになっています。この数字は、2020年の80%、2017年の69%、2012年の38%から劇的に増加している状況です。

米国のテレビを取り巻く環境の変化

と実に、90%近くがCTVとなっているようです。急速に伸びている背景には、NetflixなどのVODサービスの普及の影響が強いとは思いますが、 アメリカの潮流は少し先の日本と考えられますので、日本も近い将来こういった流れになると考えられます。

②CTV広告を取り巻く状況について

サイバーエージェント社の調査によると、動画広告の市場は、2024年には7,209億円の市場規模になる見込みで、

「コネクテッドテレビ向け動画広告需要は昨年対比137.0%となる740億円と、市場全体の成長をけん引する高い成長を遂げています。」

とのことで、急成長を遂げていることがわかります。

サイバーエージェント、2023年国内動画広告の市場調査を発表 | 株式会社サイバーエージェント

アメリカにおいても、状況は変わらず、伸びていますが、CTV広告を取り巻くプレイヤーに変化がみられています。 従来CTV広告は、主にメディアや、広告代理店が販売していたものでしたが、 昨今では、小売企業、つまり、リテール企業が参入しています。

日本でいうリテールメディアというと店頭にあるデジタルサイネージなどを思い浮かべると思いますが、 アメリカでは少々状況が違います。

アメリカで、リテールメディアというと、店舗での広告はもちろん、検索広告、ECサイト上での広告など全てを含みます。

ここで、急速に広告ビジネスを伸ばしているウォルマートの例をご紹介したいと思います。

大手スーパーチェーンであるウォルマートは、自社の購買データとマッチさせ、広告を表示させるビジネスを展開してきました。

ここにさらなるビジネス展開として、テレビメーカーのVIZIOを買収しました。

なぜ、テレビメーカーを買収したかですが、プライベートブランドでの販売の拡充ではなく、 CTV広告を自社で売りたいという意図があるようです。

対象となるのはVIZIOのTVを所有しているユーザーであり、 広告バイヤーに対してはウォルマートのデータとVISIOのデータを組み合わせて分析し、より精度の高いターゲット広告を売ることができます。

例えばテレビでセサミストリートを見始めて、ウォルマートのECでは子供服やおむつを買い始めた人がいた場合、 ウォルマートは、ウォルマートのECや、VIZIOの双方のデータを合わせて分析しながら、 その特定ユーザーに対して、セサミストリートが好きな子供がいるユーザーとして、 ターゲットを絞った広告を双方で配信できるようになるため、広告主としてはより効率の良い配信ができるようになります。

ウォルマートのように、買収までいかないまでも、自社で持っているデータを活用し、 アメリカのリテール企業は、自社広告だけでなく、 他社広告であるCTV広告を販売することで広告ビジネスを急速に成長させています。

この背景には、3rdPartyのCookie規制も強く影響を与えており、 1stPartyでデータを持っているリテール企業が強みを活かしているというところがあるようです。

日本においては、まだまだ店舗が強いリテール企業が多く、ECサイトの広告ビジネスまで手を回せていない印象がありますが、 アメリカの例を参考に今後増えていくかもしれません。

リテールメディアの事例については、下記で詳しく解説されているようですので、気になる方はご覧ください。

www.wwdjapan.com

余談ですが、セブン-イレブン・ジャパンの方がリテールメディアについて語られている記事もありました。 リテールメディアについて気になる方はご覧になってみてください。

digital-shift.jp

③テレビに準じたエンターテインメントデバイスについて

スマートフォン/タブレット、PC Webサイトに加えてCTVが登場しましたが、 スクリーンを持つデバイスは他にもあります。

例えば、EchoShowなどのモニター付きのAIスピーカー、コネクテッドカー、VRグラスなどが挙げられます。

AIスピーカーについて

AIスピーカーにはすでに一部端末で、TVerは対応しており、EchoShowTVerをご覧いただけます。 ぜひ、キッチンや、寝室などAIスピーカーを置いている場所で、ご活用ください!

コネクテッドカーについて

車載については、世界の車がインターネットに接続されるようになり、コネクテッドカーと言われるようにもなりました。 当初は、カーナビや車のOSなどの車の機能に関するアップデートなどに用途は限られていましたが、 5Gの登場で、高速化が始まり、車内でのVOD視聴ができるようになりました。

韓国企業であるLGも運転席のモニターはもちろん、後部座席でのエンタメ体験ができるソリューションを出す予定です。 Press Release | LG's Advanced Automotive Content Platform Features in Kia's Newest Electric Vehicle

後部座席は第二のリビングのようにくつろぐためにはエンタメは欠かせない存在になってきそうです。

VRゴーグル

VRグラスについても、メタ社の「Meta Quest」シリーズや、ByteDance社の「Pico」シリーズ、ソニー社の「PlayStationVR」シリーズに 加え、2024年は、Apple社が満を持して投入したVisionProなどもあり、 各デバイスでエンタメを楽しめます。

苦戦しているイメージのVRですが、2024年は上向くことが予想されているようです。 世界AR/VRヘッドセット市場、2023年第2四半期は44.6%減--2024年に上向き46.8%増へ - CNET Japan

4、TVerのCTV状況

TVerのCTVデバイス対応状況

スマートテレビで9社、ストリーミングメディアプレイヤーで2社、プロジェクターで3社、セットトップボックスで3社 が去年執筆時の対応状況でしたが、 現在では、ニトリ様販売のAndroidTV、MAXZEN(マクスゼン)、スカパー!+ネットスティックが加わり、20メーカーへの対応ができております。

スカパー!+ネットスティックにはTVerボタンも搭載されています。

この記事をご覧になっている方々のお持ちのデバイスももしかしたら、対応しているかもしれません。 ぜひ、TVerをCTVデバイスでお楽しみください!

TVerにおけるCTVの立ち位置のその後

今では、リリース当初1.9%ほどだったデバイス別再生割合は、2023年1月には、31%達し、

tver.co.jp

2024年10月には、36.9%と20倍以上に成長しました。

tver.co.jp

TVerを使う3人に1人以上は、CTVを利用して、視聴しているということになります。

また、再生数も、

tver.co.jp

パリ2024オリンピック™や、ドラマのヒットを追い風に、1.5億回を突破しました。

5、TVerにおける私の仕事の近況

私は、冒頭触れた通り、TVerでCTVのマーケティング領域に限らず、 BizDevをメインに担当しています。 具体的には、 * 各メーカー様とアライアンスの調整 * CTV領域の外部へのマーケティング活動全般 * 社内のCTV関連部署との連携

などを行なっております。

マーケティング面での効果最大化、効果検証(CTVの出稿はまだまだ未成熟で計測できないことも多いので、試行錯誤しています)などの 挑戦はもちろん、CTVにまつわる全ての部署、プロジェクトとの連動性を持って、 TVerのCTVグロースのために日々社内外の皆さんにお力を借りて奮闘しています。

6、おわりに

最後に去年書いたことを改めて記したいと思います。

自分自身の思いとして、 自分の仕事を通して、エンドユーザーに、 感動体験を届けることを仕事の軸にしています。 TVerでもたくさんの感動をユーザーに届けられるよう仕事に取り組んでいます。 UIUXの改善、リモコンボタンからのダイレクト起動、作品との出会い、など TVerのCTV体験を今よりもよく、 そして、テレビを解放するために、日々邁進してまいります。 ぜひ、CTVの領域にも注目してみてください!

ちなみに採用も頑張っています、ご興味ある方はぜひ! カジュアル面談しましょう! herp.careers

以上です。長々と稚拙な文章にお付き合いいただきありがとうございました。 また、別の話題でどこかで書いてみたいと思います。 引き続き、TVerを宜しくお願いします!

明日は @ayt_szkさんの「AWS re:Invent 2024に1人で参加してきました」です。お楽しみに!!!

iOSDC Japan 2024登壇してきました&その後!

はじめに

この記事はTVerアドベントカレンダー2024 20日目の記事です。 19日目の記事は @0906koki さんの TVerのWeb フロントチーム内製化への道のりとこれから でした。

こんにちは。TVeriOSエンジニアをしている 小森 @mathtanguu です。
今回は少し間が空いてしまいましたがiOSDC Japan 2024で登壇した話と結果その後どのような反響があったのかを記事にしたいと思います。

iOSDC Japan 2024

以前の参加レポートで弊社EMの高橋が記事にしてくれたように、今年のiOSDC Japan2024のスポンサーセッションにて、「月間4.5億回再生を超える大規模サービスTVer iOSアプリのリアーキテクチャ戦略」という内容で登壇しました!
初めてのiOSDC Japan登壇かつリアーキテクチャという擦られまくっている内容で皆さんに受け入れてもらえるのか正直不安はありましたが、多くの方々にセッションを聞いていただけただけでなく、

Ask The Speakerにも沢山の方々が来てくださり、リファクタリングやリアーキテクチャの向き合い方について同じ課題感を持っている方々と ディスカッションできとても有意義な時間を過ごせました。
来てくださった方々ありがとうございました。

techblog.tver.co.jp

speakerdeck.com

www.youtube.com

詳細な登壇内容については是非、動画やスライドを参照していただければと思います!!

登壇した結果

TVerではカンファレンススポンサーなどを含む技術広報の活動は採用活動の一環として行っており、結果候補者の方々の興味・認知を獲得できたのかという観点も重要になってきます。

直接的な興味・認知を効果検証するのは難しいのですが、iOSDC登壇前後のカジュアル面談数をみてみると、明らかにiOSDCが開催された2024年8月直後に大きな反響があったことがわかります。

iOSDCを聞いてカジュアル面談に応募してくださった方もいましたし、元々スカウトを送っていた方がiOSDCの登壇を聞いて再度メッセージを送ってきてくれるパターンもありました。
また、カジュアル面談の短い時間では伝えきれなかったリアーキテクチャの詳細な取り組みもiOSDCでの発表やその資料を元に詳細日お伝えしやすくなったことで、候補者の方がTVer入社後の働くイメージを持ちやすくなり、応募により繋がりやすくなったのではないかと考えています。

その結果、採用にも繋げることができて私しかいなかったiOSエンジニアが

なんと来年の1月から2名増える予定になりました!!!

このように一定採用活動への効果が出たと考えておりますので、引き続きカンファレンスや技術イベントなどの登壇を通してTVeriOS開発の現状を皆さんにお伝えできるような機会を増やしていきたいと思います。

明日は @yoshi001201 の 「PdMとして持ちたい「施策を出す前に考える心のチェックリスト」 です。ご期待ください!

TVerのWebフロントチーム内製化への道のりとこれから

TVer で Web フロントエンドエンジニアをしている永井です。 この記事は TVer アドベントカレンダー 2024 19 日目の記事です。 18 日目の記事は @k0bya4 さんによる 「Atlasを使った宣言的マイグレーションでDBスキーママイグレーションを自動化する」 でした。

19 日目の記事では、Web フロントエンドチームの内製化について紹介します。

TVer の Web フロントエンドは、広告プロダクトである「TVer 広告」の配信システム・広告周辺領域の開発を行うチームと、tver.jp といったユーザー向けのプロダクトを開発するチームの 2 つあり、今回の話は後者に関するものとなります。

はじめに

現在 TVer の Web フロントエンドチームでは、tver.jp の フロントエンドを開発をしています。2024 年 12 月時点では、 3 名の正社員と 1 名の業務委託の計 4 名体制で開発しており、月間ユニークブラウザ数が 4,000 万 MUB を超える大規模プロダクトではあるものの、各々が高い専門性とオーナーシップを持ちながら少数精鋭で開発を進めています。

しかし、1 年前を振り返ると、TVer の Web フロントエンドの開発は外部ベンダーに委託しており、TVer 社内で Web フロントエンドのチームは存在していませんでした。

そうした状況の中、私が今年の 3 月に 1 人目の Web フロントエンジニアとして TVer に入社し、そこから約半年をかけて外部ベンダーとの契約終了と内製チームの立ち上げを行ってきました。

今回は、TVer の Web フロントチームの内製化への道のりと、これからの Web フロントチームについてお話しできればと思います。

内製化の背景

先ほど Web フロントエンドを外部ベンダーに委託をして開発をしていたとお話ししましたが、今まで TVer では Web フロントエンド以外にも iOSAndroid も同様に外部ベンダーに委託し、TVer はその開発の管理を行う形でユーザーに TVer を届けていました。

我々のミッションは「テレビを開放して、もっとワクワクする未来を TVer と新しい世界を、一緒に」であり、ミッションを軸に更なる成長を求めて 、スピード感を持って TVer の開発を進めていく必要があります。

そのためには、更なる品質を求めて引き継いだコードの拡張性や保守性や、開発イテレーションを改善していくことが重要です。

そのような課題感の中からモバイル、Web、QA 含めたフロントエンドの開発を内製化する計画が始まり、内製化の走り始めとして Android の内製チームが 2023 年の 1 月から立ち上がりました。 そこから 2023 年 8 月に QA エンジニアが入社して QA 内製チームの立ち上げ、 10 月に iOS エンジニアが入社して iOS 内製チームの立ち上げがスタートし、Web フロントエンドも、私が 2024 年 3 月に入社して内製チームが立ち上がりました。

ここのフロントエンド全般に関する内製化のお話は、以前 HR note の中で、EM と iOSAndroid エンジニアのインタビュー記事がありますので、詳しく知りたい方は是非読んでみてください。

note.com

内製化への道のり

先ほど書いた通り、Web フロントチームの内製化は 2024 年の 3 月から立ち上がり、そこから半年をかけて内製チームを作っていきました。 入社した当時は私 1 人だったので、内製チームを作っていく上で、以下のことが最初のミッションとなりました。

  1. ドメイン知識とコードのキャッチアップ
  2. チームを作るための採用

ドメイン知識とコードのキャッチアップ

入社した当時のチーム体制は、TVer 側は私 1 名と、外部ベンダーの Web フロントエンジニア 2 名の計 3 名でスタートしました。 当時は私が 1 人目の Web フロントエンジニアでしたので、Web フロントエンドに関する社内外からの質問や相談が集中することになります。しかし、私自身放送業界が未経験だったため、まずは 放送業界、動画配信技術、TVer 社内で使用される用語の整理や、コンテンツ入稿から TVer で配信されるまでの流れ、上司との 1on1 での細かい不明点の整理を行い、自分の知らないことを徐々に減らしていきました。

特に Web フロントエンドにおけるコア機能である VOD(ビデオ・オン・デマンド)や LIVE を視聴できるプレーヤー周辺の理解には苦労しました。一口にプレーヤーといっても、そのプレーヤーには広告を視聴できるようにするためのアドサーバーとの連携や、視聴ログの送信、画質や音量調整など、様々な処理や機能を包含してユーザーに提供しています。こうした部分に関しては、実際の不具合修正によるキャッチアップや外部ベンダーとの MTG などで疑問点をつぶしていきました。

とてもありがたかったこととして、外部ベンダーのエンジニアが内製化を見据えたコードの実装やドキュメンテーションをしてくれたことです。例えば、外部ベンダーとの契約が終了した後にコードの意図や背景を聞くことは難しくなりますが、それに備えてコードの各所にそのコードを実装した意図、背景のコメントや、そのコードを実装するために TVer サイドとやり取りをしたチケットや Slack のリンクを添えてコミットしてもらっています。

契約が終了した現在でも、コメントやリンクを辿ることでそのコードの意思決定の背景を掴み取ることができているので、内製チームで開発を進めていく上で大変助かりました。

上記のように私がキャッチアップしてきた内容は後から入社したエンジニアも必要になる知識であるので、入社した後に体系的にキャッチアップできるようにオンボーディング資料にまとめて共有するようにしました。

onboarding reference
オンボーディング資料

チームを作るための採用

内製化を進めていく上で、私 1 人ではこの大規模プロダクトの Web フロントエンドは開発できません。そのため、TVer の開発と並行して、入社して早い段階から正社員と業務委託の両軸で TVer のフロントエンドを一緒に作ってくれる方を探しました。

Web フロントエンドの採用を進めていく上で、以下のようなことを重視していました。

  • 自立的にオーナーシップを持って開発を進めることができる方
  • フロントエンドに関しての高い専門性を持つ方

TVer の Web フロントチームはサービスの規模からすると小さく、各々が持つ裁量はその分だけ大きくなります。また、既存のコードには拡張性や保守性の観点で様々の課題があり、そうした課題を自ら発見し、時には関係者を巻き込みながら修正していく動き、そして技術力が必要になってきます。

このように、まずは今のフェーズで必要な Web フロントエンジニアの候補者イメージを定め、それを上司や人事の方とすり合わせながらジョブディスクリプションを精査していきました。そして、こうしたイメージに合う候補者のスクリーニングや、カジュアル面談、面接の実施、内定者へのオファーレターなどを作成していきました。

そのような形で採用を進めていった結果、先ほども書いた通り、私含めて合計 4 名の Web フロントチームになりました。各々が高い専門性やそれを土台にした推進力を持っており、私 1 人ではできなかった様々な改善がこの数ヶ月で進んでいくことができ、とても感謝しています。

Web フロントチームの現在とこれから

TVer の Web フロントエンドは内製化が始まったばかりで、解決したい課題は山のようにあります。ただ、この数ヶ月でもチームで沢山の改善を行うことができました。 代表的なところで言うと、以下のような感じです。

  • React や Next.js、Node.js のバージョンアップ
  • Feature-Sliced Design をベースにしたディレクトリ構成の変更
  • デザインシステムの整備、Storybook の導入
  • ESLint, Prettier から、Biome への移行
  • GitLab から GitHub への移行、GitHub Actions の整備

私たちは各々がプロジェクトを別で持って進めていますが、朝会で毎朝集まって、それぞれが改善したい内容やちょっとした共有、相談事項をカンバン形式で持ち寄って議論しています。

kanban board for morning meeting
朝会のカンバンボード

その他にも、通常リリースに含めるチケットの数の増加や PR Open から Merge までのリードタイムの短縮など、内製化する前とした後で大きく改善できていると実感しています。

しかし、私たちが解決したい技術的な課題や開発フローの改善点はまだまだ山積みです。そして、TVer というプロダクトも更なる成長を求めて様々な拡張が予想されています。その為には更なる仲間が必要です。

TVer の Web フロント技術は、tver.jp に留まらず、CTV(コネクテッド TV) というデバイスやその他様々な場所で使用されており、Web フロントエンドエンジニアが活躍できる場所は多く用意されています。

TVer の Web フロントエンジニアは絶賛採用中ですので、もし少しでも興味がある方はお気軽に下記からご応募ください!

herp.careers

最後に

TVer アドベントカレンダー 19 日目の記事では、Web フロントエンドチームの内製化について書きました。内製化はスタートラインに立っただけなので、ここからどのように内製チームとして TVer の成長に寄与するかが大切になります。2025 年も変化を楽しみながら開発していきます。

明日は @hide0101 の 「iOSDC Japan 2024登壇してきました&その後!」 です。ご期待ください!