Outfit7事例研究
![]()
「コミュニティのサポートは本当に素晴らしいです。Knativeを使った実践的な経験は非常に印象的でした。Slackチャンネルでは、実際のエンジニアが私たちの質問に答えてくれました」
-- Outfit7ソフトウェアエンジニア Tilen Kavčič |
ゲームメーカーOutfit7は、Knative Servingを使用して高性能な広告入札を自動化2009年の設立以来、モバイルゲーム会社Outfit7は驚異的な成長を遂げ、昨年は170億回以上のダウンロードと850億回以上の動画視聴数を記録しました。Outfit7は、ゲームダウンロード数で6年連続(2015年~2020年)世界でiOSとGoogle Playのトップ5ゲームパブリッシャーにランクインしました。最新のリリースであるMy Talking Angela 2では、7月、8月、9月(1億2000万回以上のダウンロード)に世界的なゲームダウンロード数で1位を獲得しました。Talking Tom & FriendsフランチャイズやMythic Legendsなどの大ヒット作で知られる有名なゲーム開発者の成功は、大規模な課題を生み出しました。月間アクティブユーザー数最大4億7000万人、毎秒2万件のサーバーリクエスト、毎日テラバイト単位のデータが生成されるため、安定した高性能なソリューションが必要でした。そこで、必要に応じて自動的にスケールアップおよびスケールダウンできる方法でリアルタイム入札広告販売を最適化するために、KnativeとKubernetesソリューションを採用しました。彼らは、維持が非常に簡単なシステムを開発することに成功し、2人のソフトウェアエンジニアを解放することができました。現在、これらのエンジニアは、バックエンドコストの最適化や新しいゲーム機能の追加などのより重要なタスクに取り組んでいます。高性能アプリ内入札広告販売はOutfit7の重要な収益源です。チームは慎重なバランスをとる必要がありました。最高の入札でスペースを販売し、技術リソースを効率的に使用し、プレーヤーに広告を迅速に配信することです。これを実現するために、アプリ内入札アプローチを採用することにしました。Outfit7のユーザーベースは、毎秒約8,000件の広告関連リクエストを生成します。世界中に広がる多くのユーザーがいるため、これらのリクエストの量は、さまざまな要因によって低下したり急増したりすることがあります。一日の時間のような予測可能なものだけでなく、最近の出来事が突然トラフィックを作成することもあります。たとえば、パンデミックでは利用率が急増しました。社内でプロセスを管理するために、チームは非常に効率的にテストと展開を行うことができる必要がありました。「カバーしたい具体的なユースケースが2つありました」と、Outfit7の広告技術部門のバックエンドエンジニアであるLuka Drakslerは説明しました。「1つは、自動的な段階的ロールアウトプロセスを使用して、ゼロダウンタイムカナリアデプロイメントを行う機能です。これは、新しいバージョンのソフトウェアが、最初に少量のトラフィックを使用して継続的デリバリーパイプラインを使用して展開される方法で機能します。すべてが正常にチェックされた場合、すべての本番トラフィックは新しいバージョンに移行されます。最悪の場合(リクエストが失敗し始めた場合)、トラフィックはすぐに古いバージョンに移行できます。2番目のユースケースは、A/Bテストやその他のユースケースのインスタンスについて、開発者が特定のユーザーグループにバージョンを展開できる機能です。」チームは、ソリューションのバックボーンとしてKnative Servingを採用することにしました。Knativeにより、Outfit7はデプロイメントを合理化し、開発時間を短縮することができました。内部の概念実証をどれほど簡単に生成できたかに驚いた後、チームは、貴重な開発者の時間を消費することなく、内部ワークフローに合わせて調整されたカスタムソリューションを作成できることを理解しました。さらに、A/Bテストを迅速に構成し、複数のコードバージョンを同時に展開することもできました。サーバーレスソリューションKnative Servingにより、Outfit7は、広告リクエストを処理するためのアプリケーションの展開を自動化および監視できる堅牢なツールと機能セットを利用できるようになりました。より多くのリクエストが入力されると、システムは自動的にワーカーとツールを格納するコンテナをさらにスピンアップします。これらのリクエストが減少すると、不要なコンテナはシャットダウンされます。Outfit7は、現在の負荷に必要なリソースのみを支払います。KnativeはKubernetesの上にインストールされたレイヤーとして機能します。Kubernetesのスケーラブルな機能にサーバーレスワークロードの力を提供します。チームは、Kubernetesの詳細を考慮する必要なく、コンテナベースのアプリケーションを迅速にスピンアップします。Knativeは、Kubernetesへのプロジェクトのデプロイメントも簡素化します。Outfit7のバックエンドチームのリード開発者であるMitja Bezenšekは、Knativeが置き換えた従来の開発には、保守するために3人のフルタイムエンジニアが必要だったと推定しています。新しいプラットフォームは最小限の作業で動作し、開発者は自由に更新を展開できます。オープンソースコミュニティOutfit7のチームは、Knativeを取り巻くサポート力のある助けになるコミュニティに圧倒されました。ネットワークスケーリングの問題を発見した後、チームは回答とソリューションを見つけるのがいかに簡単であったかに驚きました。「コミュニティのサポートは本当に素晴らしいです。Knativeを使った実践的な経験は非常に印象的でした。Slackチャンネルでは、実際のエンジニアが私たちの質問に答えてくれました」-- Outfit7ソフトウェアエンジニア Tilen Kavčič彼らのストーリーを共有するKnativeでの素晴らしい経験により、彼らのチームは地元のミートアップで他の企業やエンジニアと経験を共有することに励まされました。いくつかのライブデモを含むプレゼンテーションは成功し、このテクノロジーに焦点を当てた別のミートアップを生み出しました。「Tilenは彼らにデモとその内容を示しました」とBezenšekは言いました。「今後、彼らが関与してくれたことを願っています。」将来展望Outfit7は減速の兆しを見せていません。「ゲームポートフォリオの拡大というビジョンをサポートしたいと考えているため、常にこの道に同行できる新しい戦略的パートナーを探しています」と、キプロス本社R&D責任者のHelder Lopesは付け加えました。同社は、Knativeが提供するより簡単なワークフローを活用して、他のバックエンドシステムにKnativeを統合および採用する予定です。詳細はこちら |