Outfit7 案例研究
“社区支持真的很棒。Knative 的实践经验令人印象深刻。在 Slack 频道上,我们得到了真正的工程师来回答我们的问题。”
—— Tilen Kavčič,Outfit7 软件工程师 |
游戏开发商 Outfit7 使用 Knative Serving 自动化高性能广告竞价自 2009 年成立以来,移动游戏公司 Outfit7 实现了惊人的增长——去年获得了超过 170 亿次下载和超过 850 亿次视频观看。Outfit7 连续 6 年(2015-2020 年)在全球 iOS 和 Google Play 游戏发行商下载量排行榜上排名前五。凭借最新推出的《我的安吉拉 2》,他们在 7 月、8 月和 9 月的全球游戏下载量中排名第一(超过 1.2 亿次下载)。这家知名游戏开发商凭借《会说话的汤姆猫家族》等巨作和《神话传奇》等独立游戏取得了成功,但也带来了大规模的挑战。拥有多达 4.7 亿月活跃用户、每秒 2 万次服务器请求以及每日生成数 TB 数据,他们需要一个稳定、高性能的解决方案。他们转向 Knative 和 Kubernetes 解决方案,以优化实时竞价广告销售,并能根据需要自动伸缩。他们开发了一个易于维护的系统,解放了两名软件工程师,他们现在可以从事更重要的任务,例如优化后端成本和添加新的游戏功能。高性能应用内竞价广告销售是 Outfit7 重要的收入来源。团队需要谨慎平衡:以最高出价出售广告位,高效利用技术资源,并确保快速向玩家投放广告。为此,他们决定采用应用内竞价方法。Outfit7 的用户群每秒生成约 8,000 个与广告相关的请求。由于全球用户众多,这些请求的数量可能会因各种因素而下降或激增。不仅是像一天中的时间这样可预测的因素,当前事件也可能突然产生流量。例如,疫情期间他们的使用量飙升。为了在内部管理该过程,团队需要能够非常高效地进行测试和部署。“我们希望涵盖两种特定的用例,”Outfit7 广告技术部门的后端工程师 Luka Draksler 解释说。“一种是能够使用自动逐步推出过程进行零停机金丝雀部署。其工作方式是,软件的新版本首先使用持续部署管道部署少量流量。如果一切正常,所有生产流量都将迁移到新版本。在最坏的情况下(如果请求开始失败),流量可以快速迁移到旧版本。第二个用例是开发人员能够将版本部署到特定用户组,用于 A/B 测试和其他用例。”团队决定采用 Knative Serving 作为其解决方案的骨干。Knative 允许 Outfit7 简化部署并缩短开发时间。在惊讶于他们如此轻松地生成了一个内部概念验证后,团队发现它可以制作针对其内部工作流程定制的自定义解决方案——而无需占用宝贵的开发人员时间。此外,他们可以快速配置 A/B 测试并同时部署多个版本的代码。无服务器解决方案Knative Serving 为 Outfit7 提供了一套强大的工具和功能,使他们的团队能够自动化和监控应用程序的部署,以处理广告请求。当更多请求涌入时,他们的系统会自动启动更多容器,其中包含工作人员和工具。当这些请求减少时,不必要的容器就会关闭。Outfit7 只为当前负载所需的资源付费。Knative 作为安装在 Kubernetes 之上的层工作。它将无服务器工作负载的强大功能带到 Kubernetes 的可伸缩能力中。团队可以快速启动基于容器的应用程序,而无需考虑 Kubernetes 的细节。Knative 还简化了项目到 Kubernetes 的部署。Outfit7 后端团队的首席开发人员 Mitja Bezenšek 估计,Knative 取代的传统开发需要三名全职工程师来维护。他们的新平台以最少的工作量运行,并允许开发人员随意部署更新。开源社区Outfit7 的团队对 Knative 周围支持和乐于助人的社区感到震惊。在发现网络扩展问题后,团队对找到答案和解决方案的容易程度感到惊讶。“社区支持真的很棒。Knative 的实践经验令人印象深刻。在 Slack 频道上,我们得到了真正的工程师来回答我们的问题。”—— Tilen Kavčič,Outfit7 软件工程师分享他们的故事Knative 的出色体验鼓励他们的团队在当地的一次聚会上与同行公司和工程师分享他们的经验。包括几次现场演示的演示文稿取得了成功,帮助催生了另一个专注于该技术的聚会。“Tilen 向他们展示了演示以及它的全部内容,”Bezenšek 说。“我希望我们让他们继续参与。”展望未来Outfit7 没有任何放缓的迹象。“随着我们希望支持我们扩大游戏产品组合的愿景,我们一直在寻找可以陪伴我们走这条道路的新战略合作伙伴,”塞浦路斯总部研发主管 Helder Lopes 补充道。该公司计划将 Knative 整合并应用于其他后端系统——利用 Knative 提供的更简单的工作流程。了解更多 |