アジャイル開発の文脈から、IT管理者やエンジニアの間でサーバーレスコンピューティングが注目を集めている。ただ、同技術は、起動時にレイテンシ(通信の遅延)が生じたり可観測性の確保が難しいといったようないくつかの課題を内包しており、これを理由にしてサーバーレスへの移行をためらう企業は少なくない。

Fastlyの提供する「Compute@Edge」は、こうしたサーバーレスコンピューティングが内包する課題を解決して高パフォーマンスかつ可視性と安全性の向上を可能にする、次世代サーバーレスコンピューティング環境だ。以下のリンクでは「Compute@Edge」の概要を説明する資料と、同環境を使用して行ったある実験についてまとめた資料がご覧いただける。詳細は資料を参照されたいが、本稿では今述べた実験の模様から、「Compute@Edge」の持つ可能性を探っていきたい。

Fastly提供資料
[製品紹介] Fastly Compute@Edge : 柔軟で安全なサーバーレスコンピューティング環境
[実験レポート] Fastly Compute@Edge : 名作ビデオゲーム「DOOM」を移植する

> > 資料ダウンロードはこちら

「Compute@Edge」環境上に名作ビデオゲームを移植する

資料で報告している実験は、id Software社の名作ビデオゲーム「DOOM」を「Compute@Edge」環境上に移植する、というものだ。1993年12月に発売された「DOOM」は、その移植性の高いコードベースとクリーンな抽象化を背景に、ゲーム史上有数の移植回数を誇るゲームである。

「DOOM」が1993年当時に採用していたコードやゲームループの仕組みを今現在の技術で再現する。そして十分なパフォーマンスを出しレイテンシも最小にとどめる。こうしたことが実現できれば、サーバーレスや「Compute@Edge」の持つ優れた柔軟性、性能を示すことに繋がるわけだ。

同実験にあたり、Fastlyは次に述べる2ステップで「DOOM」の移植を進行。資料ではその細かなプロセスについて、後述の構成のもと詳細に報告している。

「DOOM」の移植のステップ

  1. プラットフォーム非依存のコード (つまり、特定のアーキテクチャやプラットフォームのシステムコール、SDK に依存しないコード) をコンパイルして実行
    ※これが一般的な「ゲームプレイ」の大部分にあたる
  2. 必要に応じ、プラットフォーム固有の API コールをターゲットプラットフォーム用に置き換え
    ※こちらは主にレンダリングやオーディオなどの入出力を扱うコードとなる

資料構成

・ 共通コードの開発
・ ゲームループの変更
・ 出力の再現
・ ステートの保存
・ 入力イベントの送信
・ 最適化

結論として、同実験ではわずか3週の間で、「DOOM」を「Compute@Edge」環境上に移植することに成功。Fastlyは資料のなかで、デプロイの信頼性やデバッグの容易性といった「Compute@Edge」の持つ優位性を駆使することにより短期間で様々な面での改善を進めることができたとし、「Compute@Edge」がこのような "プロジェクトを反復して実行するケース" において極めて有効だと結論づけている。

サーバーレス化をすでに進めている、これから検討を進める、いずれのケースでも資料にある情報は参考になるはずだ。ぜひダウンロードのうえ、目を通してみてほしい。

ダウンロード資料のご案内

Fastly提供資料
[製品紹介] Fastly Compute@Edge : 柔軟で安全なサーバーレスコンピューティング環境
[実験レポート] Fastly Compute@Edge : 名作ビデオゲーム「DOOM」を移植する

> > 資料ダウンロードはこちら

[PR]提供:Fastly