5.1.2 游戏容器化部署最佳实践
游戏业务运维一般具有以下特征:
•根据游戏类型的不同,其应用运维和部署方式也有所不同,尤其针对实时性要求高的动作类游戏,在网络延迟性和资源计算能力上有着极致的要求。
•根据游戏玩家的特性,游戏底层资源使用率波峰波谷现象普遍,如果没有弹性的能力和配置,波峰期会提前预留大量的资源,预定资源,如果达不到预期则会产生较大的浪费,但如果因为非预期内的超量玩家涌入,超过了最大的预留资源时,则需要利用弹性伸缩功能平台来进行扩容,这个扩容速度如果不能做到无感知,会对玩家体验会产生明显的影响,因此对扩容高时效性有要求。
•业务在申请特定节点资源和调度的时候,为了让业务在波峰的时候也能平稳运行,普遍都会超配资源。业务之间如无优先级的划分,当资源不足,如果没有合理的手段有效的避免业务竞争,那么也会对玩家操作体验产生明显影响。对应用资源分配和限额有要求。
•一般游戏都是以单元化模块进行部署的,比如游戏房间,对战区域等等,需要评估房间区域的资源容量,设置合适的资源请求。通过动态调度解决资源碎片的问题,提高装箱率。同时回收业务波谷时的冗余,通过弹性做到按需使用,但是不能中断剩余玩家操作,需要做到精准无损缩容。
•资源集群的扩大,应用关联性和模块也越来越繁多,DevOps的可观侧性和快速定位恢复需求也越发重要。
•应用迭代和不间歇性的快速发布需求。
以上特征和需求,都可以在容器服务以及容器架构找到对应的解决方案。下文会对游戏业务容器化部署的稳定性最佳实践进行介绍。
1. 游戏容器化最佳实践
•容器服务平台
阿里云容器服务Kubernetes版(Alibaba Cloud Container Service for Kubernetes,简称容器服务ACK),支持企业级Kubernetes容器化应用的生命周期管理,可以轻松高效地在云端运行Kubernetes容器化应用。
ACK主要包含了专有版Kubernetes(Dedicated1Kubernetes)、托管版Kuberne
tes(Managed1Kubernetes),其对比项说明如下,后文将以托管版本进行相关实践介绍。
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.2 游戏容器化部署最佳实践(2) https://developer.aliyun.com/article/1232001?groupCode=supportservice