CODING合作中手游:甩开低效桎梏, 尽情奔向游戏王国
(1)客户介绍
中手游是领先的全球化 IP 游戏运营商。根据 Analysys(易观智库)数据显示,截至 2019 年 12 月 31 日,除腾讯游戏外,中手游是拥有 IP 储备数量最多的中国游戏发行商,发行的移动 IP 游戏数量仅次于腾讯游戏。公司于2019 年 10 月 31 日在香港联交所主板上市。
其名下有多款知名游戏,其中《择天记》及《传奇世界之雷霆霸业》上线后最高月流水账额分别超过人民币 1.7 亿元及人民币 2 亿元。
(2)项目背景
手游进入 2.0 时代,人肉运维亟待解决
近年来,手游市场的玩家用户增量在逐渐减少,意味着过去渠道为王的盈利模式在弱化,游戏厂商的产品能力愈发重要,如何高效地研发出优质手游成为许多游戏厂商的发力点。而产品能力培养的背后,除了需要天马行空的创造力,还需要顺畅的研发流程以及高效的组织形式来落地想象力。
截止 2020 年年中,中手游线上活跃游戏已高达 80 款。我们从中手游研发团队了解到,游戏项目的快速研发依赖于成熟的脚手架。基于多年的游戏自研经验,中手游已在内部系统中积累了大量脚手架。
每个运维人员自行在本地编写维护脚手架的脚本。每个人的技术栈不同,导致脚本也是参差不齐,有些脚本已经走向一键执行的工业时代,有些脚本还停留在一行一行命令输入的手工时代。上述问题导致一旦出现人员更替,这些脚本就可能会丢失或令人难以接手,拖延游戏研发效率。
在生产环境中,这些脚本的运行也存在隐患。运维人员需要手动登录到内部系统的生产环境中,拷贝并调用脚本。人工频繁地在生产环境中登录登出,不但会有手工执行命令带来的操作风险,还有密码账号泄露的风险;并且由于脚本的执行与指定运维人员强相关,对生产环境的维护也带来了制约。
(3)解决方案
统一的代码管理,自动化的流水线
针对人肉管理带来的种种不便,CODING 提供了代码管理、持续集成以及 Wiki 知识库的能力,帮助中手游的运维团队完成脚本的统一化管理、自动化流水线的构建以及运维操作事项的规范化管理。
- 云端代码管理替代本地零散存储
中手游运维团队将脚本放置在 CODING 代码仓库中进行统一管理,既能方便存储与查看,又便于统一技术栈,统一规范和版本控制。基于云端的代码托管,使得运维人员可以随时随地查看或修改脚本代码,团队可以通过执行 CODING 代码扫描来进行代码规范与质量管理,团队管理人员在 CODING 工作台中随时随地巡检所有项目的脚本情况。
- 自动化流水线提高发布效率
解决好脚本管理的问题后,接下去就是脚本运行的问题。基于持续集成,通过选择使用自定义的构建节点的方式,在构建计划中指定不同环境的配置文件,中手游将流水线接入了各种环境。流水线自动化调用代码仓库中的脚本,避免了人工操作的风险;同时将安全相关的参数以保密形式的环境变量或安全凭据配置在 CI 中,也减少了口口相传的风险。
有了自动化流水线后,中手游运维团队可以按需制定发布计划,不再依赖指定人员的发布操作。对于测试环境日常频繁发布的小更新,开发人员提交代码后就会自动触发构建任务;生产环境则加入人工卡点,由运维手动触发构建任务。在流水线运行完毕后,团队人员还能够及时收到流水线运行结果通知。
- Wiki 知识库规范运维操作
在中手游运维团队过去的日常工作中,有大量的运维相关信息以本地文件形式进行共享,比如资源信息、发布操作注意事项,每位运维无法全面地掌握运维知识与规范,也很难和开发团队及时地共享变更。基于 Wiki 知识库,运维团队对工作进行了一次全面梳理,将所有运维知识与规范整理后放置在云端知识库中:
- 测试/类生产/生产环境资源管理
- 发布变更规范
- 故障管理规范
- 业务模块质量打分机制等
基于统一知识库,新成员可以快速掌握运维操作要点,开发和运维也能及时共享运维规范信息,团队之间的信息不对称呈量级下降。MD 文档形式让 Wiki 编辑也更加方便易用;对于安全相关的 Wiki 内容 CODING 支持开启访问者水印,减少内容泄漏的风险。
- 精细化的安全机制保驾护航
由于运维的工作特性,对安全一直有着很高的要求。中手游的运维团队使用了 CODING 的 IP 白名单机制以及日志功能来提高人员登录 CODING 的安全性。在登录日志中可以看到每次登录的 IP 及地址库中匹配的地理位置,在操作日志中可以看到成员的操作类型、操作内容等信息。
同时 CODING 还提供了精细的权限划分和易用的权限设置,几乎每个功能模块都支持权限开关、读写分离。例如中手游团队把开发在持续集成模块的权限仅设为访问,而无管理和删除权限,这样开发人员只能触发运行,运维人员才能管理流水线。
基础设施代码化,助力团队聚焦核心业务
(4)解决方案
通过 CODING 的代码仓库、持续集成以及 Wiki 知识库,中手游的运维团队将游戏脚手架发布所需的基础配置信息,以代码的形式进行统一管理起来,同时将重复繁琐的发布操作自动化,这使得开发与运维的合作更加紧密,降低了团队之间的损耗,让游戏的交付更加有序、规范、高效。
中手游目前处在快速发展时期,在未来,中手游将基于 CODING 打造更加快速的游戏交付流程,给玩家们带来更快更好更新奇的游戏体验。