[リポート]How Sony Interactive Entertainment launched PlayStation 5 #reinvent #GAM201

「AWS re:Invent 2021」で行われた、「How Sony Interactive Entertainment launched PlayStation 5」(GAM201) セッションのレポートです。

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

概要

Sony Interactive Entertainment (SIE) is a global leader in interactive and digital entertainment that is responsible for creating the world-renowned PlayStation brand and family of products. This session explores how SIE prepared for the launch of PlayStation 5 (PS5) against the backdrop of a global pandemic. Learn how SIE delivered PS5 without downtime to millions of players around the world using a coordinated-operations planned response program and a robust, scalable, and secure infrastructure using AWS services, including Amazon EKS, Amazon EC2, Amazon Route 53, and Amazon CloudWatch.

PlayStation5は次世代ゲーム機として相当な人気があります。この素晴らしいゲーム機のシステムはどういう風に開発されましたかについて、リーダーエンジニアのNathan NorthcuttJess Loebが語り合いました。

挑戦

新しいゲーム機にはいろんな革新により求められること:

  • UXによる新しいユーザー体験
  • SDKでより深層的な機能統合
  • 運営サポート側に対する挑戦

 

まず、全世界各地に合計1億以上のユーザーがいるので、全てのユーザーにスムーズな体験を提供するため、複数のリジョンにサーバーを配置する。

 


そして、ユーザー体験についてにもいくつチャレンジがあります:

  • PS5のSSDは非常に早いので、それに合わせて、高速なネットサービスを含めて、全てのものを高速化することが必要です。
  • ゲーム機はゲーム用の機械なので、インフラに使えるリソースが限られてます。
  • PS5はPlayStationの歴史に初めて前世代の互換性を持たせる機種です。
  • データを正確的に、高速的に転送すること。

対策

高速なネットサービスを実現するため、ネットワークコールを低減します。それでゲーム内リアルタイムのネット情報を収集でき、表示されます。   ゲームを最小化にされる状態でも、メニュー画面サクサク動いてます。

 

ゲーム内の状態を検知しながら、PlayStationのAPI経由でAmazon Kinesisと通信し、情報を受け取ります。

在宅勤務と対抗的な実践

2020年いろんな事情がありまして、グローバルチームが在宅勤務という形で開発することになりました。
どうすればうまく開発作業を進めまか?問題点は三つあります:

  • コミュニケーションを円滑的に取れますか?
  • 全員新しいワークフローで効率的に作業できますか?
  • 限られたリソースはインフラにどう使いますか?

 


COPR(Coordinated Operation Plan Readiness)という実践プログラムで対抗的な(Wargameのような)開発フローが行われました。

 

開発部隊は二つチームに分けられた。

青チーム: Application、SDK、Network Services、Developer Tooling
赤チーム: ツールとデータの検証(青チームのメンバーが赤チームに変更可能)

 

事前想定した特定な危機に向けて安全な仕組みで開発練習をしながら、各自担当する部分のワークフローに馴染んで、検証してから本番の製品を作ります。

 

「Controlled Burns」: Breaking system for good. 
(制御された危機: 良い製品を作るためいろんな実験をすること。)

 

いくつ実験をうまく行った上で、全体像を把握し、問題を解決しながら新しい発見もありました。
例の一つ: 仕様書にはゲーム内の通知機能がちゃんと書かれてなかったのに、ものが作られた。システム全体にはまり合っているかを確かめるため、関わったメンバーと相談し、「なにを作る」というより、「どうしてこういう構造にしたか」を詳しく確認しました。

 

それからエラー検出だけではなく、作成したものに漏れがあるか、そしてリリースに向ける問題点が存在しているかなどの確認を行い、自信がある状態で製品発表の準備に進みます。

 

PS5にデプロイするものは既存PS4ユーザーに影響させないようにし、通信量を増やしたり、各サービスを無理やり切断させながらテストを行いました。

結果

結果としては、PS4が発売した33件問題と比べて、4件問題だけの非常に素晴らしい結果でした。