CODING 助力中手游甩开低效桎梏,尽情奔向游戏王国 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding.NET 轻量级社交
开源项目广场
使用帮助
意见反馈
CodingNET
V2EX  &nsp; Coding

CODING 助力中手游甩开低效桎梏,尽情奔向游戏王国

  •  
  •   CodingNET 2020 年 11 月 3 日 2403 次点击
    这是一个创建于 1903 天前的主题,其中的信息可能已经有所发展或是发生改变。

    中手游

    中手游是领先的全球化 IP 游戏运营商。根据 Analysys (易观智库)数据显示,截至 2019 年 12 月 31 日,除腾讯游戏外,中手游是拥有 IP 储备数量最多的中国游戏发行商,发行的移动 IP 游戏数量仅次于腾讯游戏。公司于 2019 年 10 月 31 日在香港联交所主板上市。

    其名下有多款知名游戏,其中《择天记》及《传奇世界之雷霆霸业》上线后最高月流水账额分别超过人民币 1.7 亿元及人民币 2 亿元。

    手游进入 2.0 时代,人肉运维亟待解决

    近年来,手游市场的玩家用户增量在逐渐减少,意味着过去渠道为王的盈利模式在弱化,游戏厂商的产品能力愈发重要,如何高效地研发出优质手游成为许多游戏厂商的发力点。而产品能力培养的背后,除了需要天马行空的创造力,还需要顺畅的研发流程以及高效的组织形式来落地想象力。

    截止 2020 年年中,中手游线上活跃游戏已高达 80 余款。我们从中手游研发团队了解到,游戏项目的快速研发依赖于成熟的脚手架。基于多年的游戏自研经验,中手游已在内部系统中积累了大量脚手架,由不同的运维人员负责,每个运维人员自行在本地编写维护脚手架的脚本。

    1

    由于每个人的技术栈不同,脚本也是参差不齐,有些脚本已经用上了配置管理工具 Ansible,步入了滚动更新的自动化时代,有些还停留在逐行输入的手动时代。上述问题导致一旦出现人员更替,这些脚本就可能丢失或难以接手,拖延游戏研发效率。消除“对个人的强依赖”势在必行。

    在生产环境中,脚本的运行也存在隐患。运维人员需要手动登录到生产环境中,拷贝并调用脚本。人工频繁地在生产环境中登录登出,不但有手工执行命令带来的操作风险,还有账号密码泄露的风险;并且由于脚本的执行与指定运维人员强相关,对生产环境的维护也带来了制约。

    统一的代码管理,自动化的流水线

    针对人肉管理带来的种种不便,CODING 提供了代码管理、持续集成以及 Wiki 知识库的能力,来帮助中手游的运维团队完成脚本的统一化管理、自动化流水线的构建以及运维操作事项的规范化管理。

    2

    云端代码管理替代本地零散存储

    中手游运维团队将脚本放置在 CODING 代码仓库中进行统一管理,既能方便存储与查看,又便于统一技术栈、统一规范以及版本控制。基于云端的代码托管,运维人员可随时随地查看或修改脚本代码,团队可以通过执行 CODING 代码扫描来进行代码规范与质量管理,团队管理人员可在 CODING 工作台中随时随地巡检所有项目的脚本情况。

    3

    自动化流水线提高发布效率

    解决好脚本管理的问题后,接下去就是脚本运行的问题。基于 CODING 的持续集成,通过选择使用自定义构建节点的方式,在构建计划中指定不同环境的配置文件,中手游将流水线接入了各种环境。流水线自动化调用 CODING 代码仓库中的脚本,避免了人工操作的风险;同时将安全相关的参数以保密形式的环境变量或安全凭据配置在 CI 中,也减少了口口相传的风险。

    4

    有了自动化流水线后,中手游运维团队可以按需制定发布计划,不再依赖指定人员的发布操作。对于测试环境日常频繁发布的小更新,开发人员提交代码后就会自动触发构建任务;生产环境则加入人工卡点,由运维手动触发构建任务。在流水线运行完毕后,团队人员还能够及时收到流水线运行结果通知。

    5

    Wiki 知识库规范运维操作

    在中手游运维团队过去的日常工作中,有大量的运维相关信息以本地文件形式进行共享,比如资源信息、发布操作注意事项,每位运维无法全面地掌握运维知识与规范,也很难和开发团队及时地共享变更。基于 CODING 的 Wiki 知识库,运维团队对工作进行了一次全面梳理,将所有运维知识与规范整理后放置在云端知识库中:

    • 测试 /类生产 /生产环境资源管理
    • 发布变更规范
    • 故障管理规范
    • 业务模块质量打分机制等

    基于统一知识库,新成员可以快速掌握运维操作要点,开发和运维也能及时共享运维规范信息,团队之间的信息不对称呈量级下降。MD 文档形式让 Wiki 编辑也更加方便易用;对于安全相关的 Wiki 内容 CODING 支持开启访问者水印,大大减少内容泄漏的风险。

    6

    精细化的安全机制保驾护航

    由于运维的工作特性,对安全有很高的要求。中手游的运维团队使用了 CODING 的 IP 白名单机制以及日志功能来提高人员登录 CODING 的安全性。在登录日志中可以看到每次登录的 IP 及地址库中匹配的地理位置,在操作日志中可以看到成员的操作类型、操作内容等信息。

    同时 CODING 还提供了精细的权限划分和易用的权限设置,几乎每个功能模块都支持权限开关、读写分离。例如中手游团队把开发在持续集成模块的权限仅设为访问,而无管理和删除权限,这样开发只能触发运行,运维才能管理流水线。

    7

    基础设施代码化,助力团队聚焦核心业务

    通过 CODING 的代码仓库、持续集成以及 Wiki 知识库,中手游的运维团队将游戏脚手架发布所需的基础配置信息,以代码的形式进行统一管理起来,同时将重复繁琐的发布操作自动化,这使得开发与运维的合作更加紧密,降低了团队之间的损耗,让游戏的交付更加有序、规范、高效。

    中手游目前处在非常快速的发展时期,在未来,中手游将基于 CODING 打造更加快速的游戏交付流程,给玩家们带来更快更好更新奇的游戏体验。

    点击进入 CODING,体验高效云上研发工作流

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4879 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 09:56 PVG 17:56 LAX 01:56 JFK 04:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86