スケール可能で運用しやすいWebSocketサーバ設計の課題と工夫
受講スキル
現在運用中のスマートフォンゲームなどに、新しくリアルタイム通信を使った機能を付け加えてみたい方 HTTPを用いたゲーム向けAPIを提供するアプリケーションサーバを構築された経験のある方
受講者が得られるであろう知見
WebSocketなどのステートフル通信における、サーバアーキテクチャ上の課題と解決方法 運用中のゲーム向けWebアプリケーションサーバに、新しい通信方式などを付与するミドルウェアを作成する際の工夫の仕方
セッションの内容
本セッションでは、スマートフォンゲームに多く採用されるようになってきたリアルタイム通信について、サーバサイドの観点から課題を解説し、従来のソーシャルゲームで多く用いられている構成のアプリケーションに対して、どのようにしてリアルタイム通信機能を付加したかを説明します。
面白法人カヤックではリアルタイム通信基盤として、WebSocketを用いているゲームがあります。これらのプロジェクトでは独自のWebSocket通信を受け持つミドルウェアを介して、普通のWebアプリケーションサーバにリアルタイム通信機能を付け加えています。この構成を採用すると、ステートレス通信とステートフル通信の分離や、サーバアプリケーションの更新に伴う通信路の切断の克服など、様々なメリットが得られました。
リアルタイム通信部分をアプリケーションサーバから分離する構成上の工夫と、運用上のメリットについて詳しく解説します。
講演資料
※資料のダウンロードには ログイン が必要です。
講演者プロフィール
プロフィール
2012年から面白法人カヤックで、ソーシャルゲームのサーバサイドの開発及び運用を担当しています。
YAPC::Okinawa ONNASON 2018: https://speakerdeck.com/mackee/high-availability-performance-websocket-for-perl-real-time-application
WEB+DB PRESS Vol.102 Perl Hackers Hub: http://gihyo.jp/dev/serial/01/perl-hackers-hub/004801
《講演者からのメッセージ》
当セッションでは、WebSocketを用いたリアルタイムゲームサーバの構築を、従来のWebアーキテクチャの文脈の延長線で行った場合に埋めなければならなかった部分や、解決方法と実践についてお話していきます。
サーバアプリケーションが受け持つと面倒な部分を、分離して汎用化する知見についてお伝えしようと思います。