Vision

ヤフーのファンタジーフットボールプラットフォームの内幕:トラフィックの急増とライブスコアリングを支える技術

ヤフーのファンタジーフットボールプラットフォームの内幕:トラフィックの急増とライブスコアリングを支える技術

[スポーツとテクノロジーがお好きですか?GeekWireのTaylor Soperによるこの概要を毎週メールで受け取るには、当社のスポーツテクノロジーニュースレターにご登録ください。]

テイラーのスポーツテクノロジーの週の見解: 過去 4 か月間、毎週日曜日に何百万人ものファンタジー フットボール ユーザーが Yahoo アプリやブラウザーを起動し、ラインナップを設定したり、チームのスコアを確認したりしてきました。

Yahoo!の技術プラットフォームがトラフィックの急増に耐え、ライブスコアの更新を継続的に提供できるようにするには、膨大な技術が必要です。今週のスポーツ技術ニュースレターでは、GeekWireはYahoo!ファンタジースポーツのエンジニアリング担当シニアディレクター、EJ Campbell氏にインタビューを行い、NFLシーズン中、彼と彼の同僚たちが毎週どのように最新のクラウドベースの技術ツールを活用しているかを詳しく聞きました。

「私たちは、回復力のあるシステムの構築に多大な努力を払ってきました」と彼は語った。

Yahoo は、スコアや選手データの更新 (ピーク時には 1 秒あたり 10 万件を超えるパーソナライズされた通知) 以外にも、ユーザー向けにかなり詳細なデータに基づく調査ツールや、対戦の自動要約も提供しています。

Yahoo が共有したデータの中には、デスクトップ パソコンよりもスマートフォンを使用する人の方が多いという大きな傾向を反映しているものもあります。

シーズン中、Yahoo!の利用が最も高くなる9月17日(日曜日)に、アクセス数の急増が見られます。キャンベル氏とのQ&A(編集版)では、Yahoo!のファンタジースポーツプラットフォームを支える技術の舞台裏について解説しています。ぜひご覧ください。

GeekWire: 全体的に、技術的な観点から、日曜日に Yahoo のファンタジー フットボール サービスをすべて実行し続けるための鍵は何でしょうか。

EJ Campbell:  「私たちは、回復力の高いシステムの構築に多大な労力を費やしてきました。Kubernetesでは、ノードは広範なヘルスチェックと準備状況の調査によって継続的に監視されています。ノードが「不良」と検出された場合、速やかにシャットダウンされ、トラフィックは自動的に別のシステムに移行されます。Kubernetes以外のシステムでは、自動ヘルスチェックシステム「Halo」を導入しています。これはシステムと並行して動作し、障害が検出されると自動的にシステムを修復します。

シーズン開始前には、システムの機能性を検証し、前シーズンからのリグレッション(後退)がないことを確認するため、非常に大規模な負荷テストを実施しています。アプリやサイトからのすべてのウェブサービスリクエストを精査するエンジニアを配置し、すべてが最適化されていること、そしてトラフィックの多いページで予期せぬ呼び出しがないことを確認しています。

回復力のあるシステムを構築するだけでなく、問題が発生した場合に備えて、ランブック、機能フラグ、手順を幅広く整備しています。「Defcon」レベルという概念を用いて、チーム内でシステムの状態を伝えています。

各段階では、ユーザーに優れた体験を提供し続けるために、実践的な一連の改善策を実施しています。例えば、サイトの平均応答時間が400ミリ秒を超えている場合は、マッチアップページの更新間隔を15秒から60秒に減らし、システム負荷を軽減します。

スムーズなファンタジーを実現するための最後の鍵は、サイトを運営するエンジニアと、チームをサポートするOathの何百人ものエンジニアの細心の注意です。シーズン前の4週間の「ドラフトシーズン」のピーク時には、エンジニアが週7日、夜間も常駐し、システムのあらゆる障害に迅速に対応し、ドラフトで問題を抱えているお客様をサポ​​ートできるよう努めています。NFLシーズンの最初の数週間は、NFLの試合中、システムが前シーズンからの負荷やユーザー行動の変化に対応できるよう、全員が全力で取り組みます。これは、シーズン最初の木曜日のキックオフ直前、試合に向けて準備するチームの一部の様子です。

GeekWire: パフォーマンスを向上させるために、過去数年間でどのような変更を加えましたか?

キャンベル氏:「Kubernetesでホストされた高性能Javaサービング層を、サービススタックに追加しました。Full Fantasyの信頼できる情報源は、引き続きLinuxマシン群に展開されたPHPウェブサービスによって提供されていますが、最新のスコア情報を可能な限り高速に提供するために、専用のJavaベースシステムを追加しました。」

これらの Java サービスは、同等の PHP サービスよりも 10 倍高速で、ユーザーのファンタジー チームに関する最新情報をユーザーに返します。このレベルのパフォーマンスを実現するために、ファンタジー チームとプレーヤーの情報 (基本的にはプレーヤーの名簿) を、プライベート クラウドでホストされる共有 Vespa インスタンスに同期します。その時点で、Apache Storm タスクを使用してこのストアから読み取り、ユーザーのファンタジー プレーヤーによって蓄積されているライブの現実の統計を適用します。計算されたデータはシャーディングされた Redis インスタンスに保存され、Java Web サービスで使用できるようになるため、ほぼ瞬時にユーザーに提供されます (以前は、このデータを PHP 内で計算していました)。この同じシステムを使用して、ライブ スコア情報を含むパーソナライズされたスコア通知も送信します (これは業界でもユニークです)。

GeekWire: どのようなクラウドコンピューティングサービスを使用していますか? AWS ですか? Azure ですか?

キャンベル氏:「現在、Oathデータセンター内の『プライベートクラウド』でホストされています。ノードはOpenStack Ironicでプロビジョニングされ、SportsがホストされているKubernetesクラスターのプロビジョニングにはChefが使用されています。」

日曜日の試合日にチームで働いている人は何人ですか?

キャンベル氏:「シーズン最初の数週間を過ぎると、オンコールモデルに移行します。システムに問題が発生した場合は、エンジニアに呼び出しがかかります。専任のNOC(Nothing On Call:ノーシング・オンコール)がサイトを監視し、カスタマーケアと編集スタッフが終日体制でお客様の質問に答え、サイトのコンテンツを最新の状態に保っています。統計ベンダーからのスコアの受信、データベースとファンタジースコア情報の更新は自動化されたプロセスで行われています。エンジニアとプロダクトマネージャーはSlackで常に連絡を取り合い、質問に迅速に回答し、サイトがスムーズに稼働していることを確認しています。」

スポーツテックの今週のハイライト

Valve は毎年、Key Arena で大規模な e スポーツ イベント「The International」を主催しています。
  • Valveは、大規模な「Dota 2」eスポーツトーナメント「The International」をシアトルからカナダに移転する可能性がある。
  • サンデーナイトフットボールマンデーナイトフットボールはどちらも過去10年間で最低の視聴率を記録した。
  • 大学フットボールの大きな試合が数日後に迫っています。ESPNプレーオフの対戦中継で「メガキャスト」を実施し、新しいファースト ダウン マーカー カメラを導入します。
  • ここでは、ブロックチェーンeスポーツをどのように連携して活用できるかについて説明します。
  • 今後、ファンはスポーツの生中継を視聴する方法をもっと自由にコントロールできるようになるだろう。
  • スマートウォッチ業界は2018年も成長率が引き続き低下する見込みです。
  • ウォリアーズの新しいチェイスセンターが、チームの「新生王朝」にとってどのように大きな役割を果たす可能性があるのか​​、ここにご紹介します。
  • そういえば、ゴールデンステートは脳震盪の診断にSyncThinkの技術を利用しています。
  • NBAとその放送局はテクノロジーを活用してファンとつながる新しい方法を模索している。
  • ミネソタ・バイキングスは、Oculus 向け VR アプリをリリースする最初の NFL チームです。

今週末の注目試合: 今週末は大学フットボールの素晴らしい試合が盛りだくさん。今夜午後 5 時 (太平洋標準時) の USC 対オハイオ州立大学戦は素晴らしい試合になるはずです。一方、土曜日には UW 対ペンシルベニア州立大学、ウィスコンシン対マイアミ大学戦が行われます。プレーオフは元旦に始まります。

ご視聴ありがとうございました!新年あけましておめでとうございます! — テイラー・ソーパー