UGC沙盒创意平台的基建建设之旅

举报
华为云确定性运维 发表于 2023/12/20 09:39:05 2023/12/20
【摘要】 《迷你世界》是国内知名的沙盒游戏,于 2016 年发布,上线后持续根据用户需求不断迭代,从最早的单人生存创造玩法,到后续包括联机、云服等形式,获得广大用户的喜爱。高峰时刻 DAU 超千万,MAU 过亿。产品全球化运营,分布在全球多个机房,且数据量庞大,给运维工作造成很大挑战。本文结合确定性运维理念实践,围绕变更风险评审流程、混沌工程、容器化改造等进行优化升级,保障业务稳定可靠。

来源:华为云确定性运维专刊(第四期)

3.PNG

      《迷你世界》的业务有其特殊性,从游戏角度看,每一个游戏是小规模(2人~30人不等)的房间制游戏。游戏之外又是一个平台,后端提供大量的业务服务支撑平台功能。因为发展速度很快,自然就不可避免的有技术历史债务,最明显的问题是基建的缺乏。体现在以下方面:
      » 没有专业的构建和发布系统,多靠人工完成。
      » 在线业务的指标告警通过埋点和通知消息来实现,缺乏系统性建设和完整告警生命周期管理。
      » 在线业务对应的微服务没有弹性支持,扩容和缩容的周期长,造成云成本的浪费。
      » 多团队协作自动化支持匮乏,多靠人工沟通完成,效率和准确性都难以保证。
      » 缺乏适配自身研发流程的工作流自动化的支持,多靠人工完成。
      结合上述业务发展过程中的遗留问题,需要制定符合适配当前情况及未来业务发展的基建建设。

      沙盒创意平台基建建设之旅

      针对平台建设成立开发团队,开发各类基建系统需要一支研发团队。团队规模由一个产品经理和三个研发组成。围绕存在的问题。先从发布系统入手,解决微服务更新手工操作的问题。因为发布就是变更,而风险的70%来源于变更,控制变更的质量,是服务高可用的重点。

      构建和发布

      以gitlab和jenkins为基础,做二次封装,规范构建流程,定制化构建界面,满足内部企业应用。

      开发系统过程中难度不在于系统开发本身,而是系统开发团队与各个业务团队的沟通协作。日常使用过程中遇到问题,通过快速响应和迭代产品功能,直到各业务团队习惯使用新发布系统,满足业务需求场景。

      监控和告警

      监控方案采用基于 Prometheus 和Grafana的开源方案,告警数据的存储采用Thanos方案,告警管理系统单独开发,进行告警的全生命周期管理,同时与通讯录打通,完成告警的交互操作。

      统一告警管理系统

      主要是汇集各种系统的告警事件,实现告警生命周期(触发、认领、升级、关闭)的集中管理,记录运维人员和开发人员的MTTA(平均恢复时间)、MTTR(平均响应时间),提高告警处理效率。在功能上主要提供低成本、低门槛的告警源适配和告警分派策略,将不同类型的告警灵活分派给对应的运维人员和开发人员,进行告警压缩,告警聚合等降噪处理,实现告警准确和告警必达。目前平台已经打通通讯系统登录,并能够自动获取员工信息,方便进行告警通知分组和分派升级。目前支持的通知渠道包括(群,员工组,个人)、手机短信、手机语音。对于所有的微服务接入统一的API网关APISIX,实现RED指标的监控。系统上线后,存在告警噪音多、故障响应和处理速度慢两个问题,针对这两个问题,我们与华为深入交流,学习华为云混沌工程实践经验,结合“常态化运作组织”、“蓝军文化”、“FMEA分析法”等方法论,建立OnCall机制以及迷你世界业务的故障模式库。

      游戏房间扩缩容

      迷你世界的平台内产生的内容是几千万个小游戏,这些游戏的计算复杂度和对资源的需求都是不一样的。如下图:

1.PNG

      下图中对于房间的资源需求还是一个理论值,玩家动态的进入和离开,对于cpu和内存的消耗也是一个动态变化的过程。如何高效利用这些资源是一个重要的研究课题。我们采用不同的cgroup设置及不同的专区来解决,并逐步探索更好的解法。

      玩家的在线走势在工作日和周末都差别较大,同一天内的不同时段,变化也非常明显,高峰时段只有几小时,大部分时间是处于低负载的状态。

      我们通过使用华为云容器方案CCE来实现业务弹性扩缩容,进行游戏内业务的容器化改造,提升系统稳定性。

2.PNG

       FinOps

      《迷你世界》全部采用公有云资源,每年在公有云的支出是巨大的。对于云资源财务分析,存在认知不统一、成本观念薄弱、资源异常难发现等问题,解决这些问题,就是实现云资源财务管理系统,统一三方的视角,用量化的标准衡量云资源的使用,监控资源使用异常和及时预警。所以我们开发了自己的FinOps系统,进行低负载资源告警和费用支出告警:
      » 每周将业务的云资源成本报表的形式发送给业务对应的技术负责人。
      » 每天监控同比、环比的成本变化,变化幅度超过10%,则会通知到对应的技术负责人。

      工作流定制

      每个公司的工作流有其独特性,针对公司内的工作流做到自动化支持,是基建重要的目标。因为只要打通各个基建子系统并与实际工作流贯通,才可以实现更高的效率,在迷你世界,比如:
      » 构建的代码保密需求,要求构建系统作出支持。
      » 监控系统拉取现有子系统的数据,监控的接入提供HTTP API方式,最小化监控上报依赖。
      » 构建系统支持容器和K8S,为正在进行的容器化改造提供支持。
      » 构建系统支持不同的语言和环境。

3.PNG

      未来展望

      互联网行业技术发展在不断迭代,作为平台技术部门,我们会不断升级技术基建,打通各个子系统,提升研发效率,采用容器的方式管理所有在线服务,做到多云支持。在关键基础服务,做到异地双活支持,不断完善故障模式库结合大模型,落地AIOps,基于大模型的CodeArts进行代码分析、代码审查等工作,不断提升软件质量,支撑业务发展。后续我们将与华为云持续合作,深入交流华为云确定性运维实践经验,持续提升UGC沙盒创意平台的基建建设能力。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。