羊了个羊:7 天突破 1 亿 DAU,21WQps 峰值,超高吞吐小游戏的架构之谜

2024-08-01
来源:网络整理

小游戏《羊羊》仅用7天就实现DAU过亿,并创下吞吐峰值。

《绵羊!》运营后台数据显示,短短7天时间,这款小游戏的DAU就已突破1亿。

要知道,除了《王者荣耀》、《原神》等少数现象级手游外,1亿DAU已经是这个行业的天花板。

然而这却被一个看起来设计粗糙的小程序游戏轻易实现了。

但其初期技术架构仅支持并发,7天突破1亿,峰值吞吐量

如何优化架构,让小程序游戏短时间内支撑起几亿的DAU?

技术架构、运维体系、安全防范等技术体系面临巨大挑战。

那么,峰值级、亿级DAU、超高吞吐量的游戏到底是怎样的呢?

1. 初始技术架构,吞吐量低,可用性低

《羊羊》最初的技术架构

由于技术和时间因素,设计有些简单。

如下图 1 所示,

玩家流量通过接入层LB进入,

传输到服务层若干个POD,进行游戏逻辑处理。

然后存储数据。

其中,存储的是热数据,还有持久数据。

初始服务层有若干个POD,都是单点服务。

单点服务的性能瓶颈,加上代码优化不够,导致系统最多只能承受。

但实际流量增长很快,持续上升直至达到性能瓶颈,游戏服务开始崩溃,所有玩家都无法再玩游戏。

2 技术架构全面升级

大多数项目最初的技术架构都是吞吐量低、可用性低的。

然而一旦吞吐量增大,我们就会面临优化的问题。

所以,

面对服务中断的情况,羊羊团队详细分析了原有架构的不足。

“绵羊”技术架构全面升级

详情如下所示:

接入层架构优化: 服务层架构优化: 存储层架构优化:

经过优化,“绵羊”的最新技术架构

经过以上一系列的技术升级,新的架构经受住了一波又一波流量洪峰的考验。

巅峰期DAU突破1亿后,游戏技术系统持续稳定表现。

对于一款仅发布几个月的小游戏来说,在中国很难找到这样的例子。

3.升级运维体系

通过技术架构的迭代和用户量的不断增加,《绵羊》的技术团队也意识到,由于游戏火爆的速度太快,需要快速提升运维能力,才能更好地不断调整和改善游戏体验。

最大的小程序开发商_开发商城软件_程序开发商城

运维系统包括业务日志,性能监控等。

为了快速提升运维能力,我们通过业务日志来诊断程序性能,并进行业务优化,减少服务器压力;

“羊羊”选择了开箱即用的日志服务云服务CLS。

当然有条件的团队也可以使用自己的elk平台或者基于的高并发分布式日志监控平台。

CLS对游戏接口稳定性、异常调用趋势的监控,帮助他们快速观察产品质量,第一时间获得异常统计分析及报警;

在游戏运营方面,玩家登录链接时间/游戏时间等数据也可通过CLS进行分析、验证和处理,以调整和改善游戏体验;同时,也可满足游戏用户行为、审计对账的需求。

CLS 的云原生特性有助于稳定性和程序性能调优,同时作为简单的运维工具,可以查看日志、接口调用告警等

借助CLS的SQL分析、仪表盘、监控和报警功能,

可以分析出程序可以优化的点,解决游戏开发者在前期和爆款阶段分析游戏稳定性、运营数据所面临的难题。

除了运行和维护数据外,

CLS还提供数据观察功能

在调整玩法、分析活动数据时,运营商可以使用CLS快速观察数据变化并制定应对策略。

此外,游戏通关数据、用户行为分析、审计对账等运营数据均在CLS中进行存储和分析。

4. 安全防护升级

哪里有交通,哪里就有非法活动。

大量恶意BOT流量涌入游戏,造成游戏服务器QPS、带宽快速增加,影响服务可用性等。

由于设计之初没有充分考虑安全问题,从而吸引了大量不法分子利用恶意机器人冲击游戏排行榜。

几乎每分每秒,都有恶意流量访问游戏界面。

而且这伙恶意人员还通过网络、QQ群、微信群等传播恶意排名脚本。

这极大地破坏了游戏的公平性,游戏对抗中原本应有的乐趣也被恶意的BOT抹杀掉了。

更为重要的是,随着绵羊热度不断上升,大量恶意BOT流量的涌入,导致游戏服务器的QPS和带宽迅速上升,一度影响到服务的可用性。

“羊羊”接入腾讯云WAF进行防护。

刚接入WAF的时候,峰值QPS达到了21W。

在接入WAF之前,CPU一直处于临界水位,网络链路满载,导致服务不可用。

通过选择负载均衡WAF,可以在不改变网络架构的情况下,3秒内完成业务对WAF的访问,并在用户不知不觉中清洗和防护恶意流量。

为了有效打击攻击者的恶意流量,

WAF中的BOT行为管理还提供了全链路、全生命周期的恶意行为流量体系,实现快速、高效的恶意流量治理。

最后,在安全防范领域,利用安全解决方案抵御异常流量攻击。

注:本文更新为PDF格式,请从这里获取最新的Nian架构笔记和面试题PDF文件:码云

5 互联网应用设计的“三高”原则

我们可以通过《绵羊》团队在小游戏架构扩展、系统运维、安全防范等方面的实践经验,给大家一些参考。

面对突发的流量,互联网应用在设计时需要考虑以下能力:

第一是高并发,可以承载瞬时突发流量,并且保证响应时间在可以接受的范围内;

其次高可用性意味着系统持续提供服务,当出现小概率宕机时,过载保护会将故障控制在可以接受的范围内,不会对核心业务造成影响。

最后,高可扩展性,服务系统应该具备水平和垂直扩展的能力,以达到成本和可用性的最佳平衡。

分享