小游戏《羊羊》仅用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 互联网应用设计的“三高”原则
我们可以通过《绵羊》团队在小游戏架构扩展、系统运维、安全防范等方面的实践经验,给大家一些参考。
面对突发的流量,互联网应用在设计时需要考虑以下能力:
第一是高并发,可以承载瞬时突发流量,并且保证响应时间在可以接受的范围内;
其次高可用性意味着系统持续提供服务,当出现小概率宕机时,过载保护会将故障控制在可以接受的范围内,不会对核心业务造成影响。
最后,高可扩展性,服务系统应该具备水平和垂直扩展的能力,以达到成本和可用性的最佳平衡。