「行话」| 用DevOps高效交付游戏,是种什么体验?

什么是行话

「行话」,是极狐GitLab 近期推出的全新内容系列,探讨 Git 与 DevOps 在不同行业的实践场景与解决方案,希望能够为不同行业的软件开发者带来一些全新的思考和输入。
说行业,讲行话。
第一期,我们选择了「游戏行业」,讲「游戏行话」。
以下,enjoy。

「行话」| 用DevOps高效交付游戏,是种什么体验?_第1张图片

程序员薅秃头发为哪般?

1. 大量的二进制文件需要版本管理

游戏开发不可避免地会有各种各样的二进制文件 —— 图形、动画、视频、音频等等不同格式的大文件。二进制文件在Git上进行存储管理是有限制,所以开发组经常将二进制文件资产存储在其他系统中。

但是,这种分离管理代码和二进制文件的模式并不理想,因为在游戏开发中,所有贡献者(尤其是设计师和开发者)之间的合作是需要非常紧密,如果开发者在Git上维护代码,设计师在其他系统维护二进制文件资产,很有可能频繁出现不统一的矛盾和问题。对于任何采用敏捷、持续交付或DevOps开发方法的游戏开发团队来说,拥有一个“单一信息源 Single Source of Truth”是最基本的要求。

2. 团队协同多,产品交付慢

游戏行业有着复杂的生态系统,除了游戏的设计、运营、发布外,还有游戏用户的身份管理等系统。这些系统的研发、运维涉及到多个团队甚至是多个部门,不同部门使用不同的研发交付工具与流程,导致跨部门协作难、整体交付慢,无法快速向用户玩家交付最新游戏特性,无法为游戏玩家提供极佳的游戏体验。

3. 私有化代码托管平台的缺失

开源也是游戏发展背后的巨大推动力,很多著名的游戏引擎都是开源的,诸如在 GitHub 上开源的 Unity, Arsenal Game Engine,GoDot Engine,Ursina Engine,Stride Game Engine,在 GitLab 上开源的 Arctic,Acid 等。游戏厂商会使用开源引擎来快速构建自己的游戏,甚至在使用过程中会根据自身需求进行一些修改,而修改后的代码往往会自己托管,选择一个合适的可私有化的代码托管平台也成了游戏厂商的首选。

如果你遇到过以上问题,那么「极狐GitLab 游戏行业白皮书」将会帮到你。
滑至文末,抢先获取《极狐GitLab 游戏行业白皮书》

DevOps:游戏软件交付加速的破局之道

DevOps 经过了 13 年的发展,已经从理论探索走到了全面落地实践的阶段。众多企业和组织也在积极拥抱 DevOps,用 DevOps 来提升企业自身的软件研发效率。根据中国信通院发布的《中国 DevOps 现状调查(2021)》显示,中国企业 DevOps 落地实践成熟度在全面级继续扩展。调查显示,目前成熟度处于全面级的企业最多,为 35.40%,处于优秀级的为 16.53,只有 0.87% 的企业处于卓越级。

「行话」| 用DevOps高效交付游戏,是种什么体验?_第2张图片

游戏行业也不例外,DevOps 在帮助企业加速游戏的研发上线,为游戏用户提供更多的游戏特性和更好的游戏体验。但是,游戏行业 DevOps 的实践过程中用到了很多工具链,这些工具往往是针对软件研发的某个阶段或者某几个阶段,无法做到一个工具覆软件研发的所有阶段。多工具链会带来一系列问题,诸如多工具链的安装维护(升级、安全补丁等)、多种工具链之间的集成、搭建起的 DevOps 系统与现有研发系统、安全管理系统的融合等。这些问题会导致运营成本(人力、沟通等)的上升,无法让企业更多的聚焦在业务交付与创新上。

打破上述困局的方法就是选择一个一体化的 DevOps 平台,企业只需要使用一体化 DevOps 提供的 DevOps 能力来赋能业务交付与创新,而无需将更多精力花费在 DevOps 上。根据《中国 DevOps 现状调查报告(2021)》显示,具备平台化、服务化、可视化与度量驱动改进特点是优秀级 DevOps 实践的标准,而这个数据仅仅为 16.53%,还有很大的发展空间。

极狐GitLab:高效与安全齐备的一体化 DevOps 平台

极狐GitLab 是一个安全的一体化 DevOps 平台,通过将多种工具链能力整合,做到了统一用户模型、统一数据存储、统一权限管理和统一用户界面。再将工具链整合能力与研发流程相结合,能够打破不同团队之间的协作壁垒,让团队协作更加高效。

1. 使用内置的 Git-LFS 功能,实现游戏中二进制文件的版本管理

Git 作为目前主流的版本控制工具,在 IT 行业使用率非常高。从 Stack Overflow 上几大版本控制工具的问题热度,很明显的是Git相关的问题占绝对领导地位,以 Git 为底座构建起的 GitHub、GitLab、极狐GitLab 等在全球范围内拥趸者众多。

「行话」| 用DevOps高效交付游戏,是种什么体验?_第3张图片

为了实现对二进制文件的版本控制,Git 做了扩展,通过 LFS(Large File System)来实现。而极狐GitLab 内置 Git-LFS,只需要在对应的群组/仓库下面开启即可使用。

「行话」| 用DevOps高效交付游戏,是种什么体验?_第4张图片

Git-LFS 的使用不仅方便了对游戏中二进制文件进行版本控制,而且会让整个仓库的拉取、更新效率得到有效的提升。

2. 极狐GitLab 一体化 DevOps 平台

极狐GitLab 一体化 DevOps 平台能够让所有与游戏研发相关的团队都在同一个平台上(极狐GitLab)进行协作,提供从项目管理、源码托管、CI/CD、安全合规、运维管理等 DevOps 能力,覆盖了软件开发全生命周期。所有功能均可开箱即用,用户无需额外的配置管理及学习即可快速上手使用。在大大降低运营成本的同时,还能够加速软件的交付。

「行话」| 用DevOps高效交付游戏,是种什么体验?_第5张图片

3. 极狐GitLab 私有化部署

针对游戏引擎代码私有化托管难的问题,极狐GitLab 提供私有化部署方式,用户可以快速构建起一个私有代码托管平台。目前私有化部署支持 Omnibus、Docker、Helm 等方式。私有化部署的实例还能够和企业自身的权限管理系统进行集成,做到安全统一管理。

举个例子

用户报告了一个游戏缺陷,经过研究之后发现需要协同游戏设计团队小A、用户 ID 管理团队小B以及产品团队小C同时进行协作,而且需要在最快的时间内修复并上线,避免影响更多用户的使用。

「行话」| 用DevOps高效交付游戏,是种什么体验?_第6张图片

这种场景下,只需要创建一个 Epic 来将游戏的缺陷描述清楚,并根据三个不同团队的讨论结果,分别在各自的项目下面创下 issue 来进行问题跟踪:

「行话」| 用DevOps高效交付游戏,是种什么体验?_第7张图片

各个团队认领 issue 以后就可以开始问题的修复了。比如,对于研发团队来讲,可以使用极狐GitLab workflow 完成相应的工作。

「行话」| 用DevOps高效交付游戏,是种什么体验?_第8张图片

「行话」| 用DevOps高效交付游戏,是种什么体验?_第9张图片

填写问卷即可获取白皮书:快来领取极狐GitLab 游戏行业白皮书啦

你可能感兴趣的:(「行话」| 用DevOps高效交付游戏,是种什么体验?)