从混乱到卓越,Gitee Code 如何治好 IT 部门的精神内耗
都 2023 了,为什么管理代码资产仍然很重要?
核心资产安全要保障
从企业管理的角度而言,代码是企业研发活动中最核心的资产。
如果代码出现了问题,那么企业为客户提供的产品和服务,都会由于这些问题造成不可预知的事故,从而为企业管理者及研发团队的开发与维护工作带来新的负担,陷入新一轮的精神内耗。
随着互联网技术的演进,企业数字化转型浪潮愈演愈烈。为了规避这些风险与意外,越来越多的企业想要通过代码管理,实现研发效能提升。
自建踩坑方知利弊
然而,某些企业在进行代码管理时,怀着对别的平台的“天然不信任”,便选择自己搭建代码托管系统。但是只有踩过“坑”就深知其中利弊。我从与一线研发团队的交流中发现,这类自建代码管理系统的团队常采取“强行拼凑、混乱管理”的方式。
一方面他们面临大规模研发生产需求,自建不仅维护成本高,且无法与业界主流关键系统有效协同,导致内部研发人员苦于填坑,反而拉低研发效率;另一方面,代码虽然掌握在“自己”手上了,却很难从海量核心资产中挖掘有效价值,带来业务效益……
为何是 Gitee Code ?
Gitee 作为国内最大的代码托管平台,深耕国内代码托管领域已经十年,不仅提供了高效的代码托管服务,还具有一系列强大的功能,为国内的开发者提供了良好的开发体验。
这十年间,Gitee 产研团队也在不断进步,我们总结归纳了国内软件研发效能提升的关键要素,打造了一款私有化代码资产管理平台——Gitee Code,主要面向企业大规模研发生产过程,提供代码托管,实时版本控制、多人协作和部署等功能。
今天,我将针对上述数字化转型的企业遭遇的研发难题与痛点,为大家分享 Gitee Code 是如何通过自身的亮点与优势解决上述的问题,让企业代码管理变得更加有序可靠,助力企业高效高质地响应不断变化的业务需求的。
丰富的企业级功能,驱动高效研发
- Gitee Code 提供了完善的用户权限管理功能
Gitee Code 提供了代码组的能力,它可以是组织结构的载体,也可以是资源的聚合单位。用户可以创建代码组,将企业内成员加入进来,并根据需要对不同的成员设置不同的权限。这样,代码组内成员之间就可以在同一个代码组下、不同代码仓库中协作开发,共享代码资源,提高开发效率。
- Gitee Code 提供了完整的代码版本管理功能
在 Gitee Code 中,用户可以方便地查看代码的修改历史,了解每个版本的变化。同时,Gitee Code还提供了分支管理功能,可以快速创建和管理多个分支,使得团队成员可以同时开展多个开发任务,提高开发效率。
而在版本管理过程中,用户还可在线上进行 Commit 版本回退和代码恢复,也可以通过 Cherry-Pick/Change Request/Pull Request 等多种代码合并方式进行分支走向管理。而通过分支规范控制功能,也可以强制开发成员按照特定的分支合并方向执行开发任务。
- Gitee Code 还提供了多种代码托管方式
Gitee Code 不仅延续了 Git、SVN、Gerrit 等主流代码托管平台使用习惯,满足企业内不同开发者的需求。同时,Gitee Code 还提供丰富的内部项目社区功能,方便开发者在企业内部社区中分享自己的代码,与企业内其他开发者交流,获取更多的开发经验和技巧。
自研国内领先的高可用存储集群,提升仓库性能
传统的存储集群分片管理模式,是将一个存储分片用满之后,再将流量转移至其他分片上。然而这种存储结构存在一定的问题。一是,不具备高可用的能力,二是,代码仓库的推拉性能会因为某个分片导致整体提升不上来。
因此,想要高效地管理代码,需要一个完备且高可用的存储集群管理模式。基于此,Gitee 产研团队自研了针对存储集群的负载均衡管理模式。企业使用 Gitee Code 时可以创建多个热备份,并且支持节点多活,以提高仓库的推拉性能。并且其存储节点采用多副本模式,支持存储高可用达到 SLA 99.99%,采用 hash 存储路径,在多个节点中,存储负载网关通过 hash 快速定位到仓库所在路径,并映射为网关路由可进行 Web 路径访问。
两地三中心支撑服务 Gitee DT,保障数据安全
DT(数据技术/数字孪生)时代,越复杂的业务,信息化建设越困难。
为了帮助企业有效应对大规模研发生产需求,Gitee Code 采用”两地三中心”的策略,支撑服务 Gitee DT。
我们在异地机房中,再搭建了一套独立的 Gitee 服务,然后利用 Gitee DT 将主环境的代码库数据实时同步过去,数据库数据则用 MySQL 从同步机制进行同步,由此就可以确保容灾环境数据与主环境一致。
所以当用户在主环境出现问题的时候,就可以手动将域名的DNS解析切换到异地的环境上即可。值得注意的是,目前 Gitee DT 只支持代码仓库文件数据的双向同步。
结构化代码,管理更加有序可靠
众所周知,仓库组是代码仓库数据的组织管理单元。然而对于 Gitee Code 来说,一个仓库并不等同于一个项目。Gitee Code 注重开放、复用以及资源共享,因此其项目可以是以高维度来管理这些代码仓库资源,其代码仓库是可以被多个项目复用共享的。因此仓库组的概念,更多是在一组微服务框架软件架构的模式下用于组合的管理单元。
此外,我们的仓库内还支持 submodule 和 subtree 等高级子项目关联命令,以及从仓库外到仓库内均可以关联多套项目。
沉浸式开发,优化在线协作体验
Gitee Code 支持基于 Git 的线上线下交互,你可以在 Gitee 平台内进行沉浸式的开发,包括线上代码的编辑、变更、PR 代码审查、版本发布等等。
多种代码评审模式,保障代码质量
你也可以通过 Gitee Code 通配符设置监听分支,并为其设置 「推送评审模式」,自动拦截用户的远程推送,推送后都将自动创建(或者更新)一个 Pull Request,使每次提交都能形成推送粒度的代码评审,保障代码质量。
管控研发流程,降低管理风险
通过管控研发整体流程,能够规范企业研发管理,最大限度减少与规避某些风险,这也是 Gitee Code 的一大亮点。其中具体包括:
- 仓库控制
在 Push 过程中的针对 Commit 的文件大小校验、后缀名校验、作者邮箱校验、提交消息校验,其中提交消息能对其进行是否包含 Issue ID 的校验;
- 安全策略
在线上管理时,Gitee Code 存在保护分支规则对人员操作分支的权限做控制,也有质量门禁以及代码评审机制对 PR 合入过程进行管控。如果你需要保障标签不会被随意更改,则可以使用保护标签规则进行管控,同时对代码进行下载权限管控。
- 分支规范
在研发过程中,也有分支规范设置、控制分支用途以及分支的合并方向。
安全控制,保障代码合规不泄漏
Gitee Code 的安全控制功能主要可分为三个部分:底层存储安全控制、代码内容控制与网络传输控制。
同时在代码内容控制方面,我们还有权限、保护分支标签规则、只读文件管理以及代码水印、异常行为监控等多种方式保护代码内容不会轻易泄露。
总的来说,借助 Gitee Code,不仅能为开发者及所在的企业提供了一个协作与办公的空间,在这里,企业管理者与开发人员还可以安全、可靠、高效地来管理和分享代码。
同时,在企业探索 DevOps 一体化管理流程中,Gitee Code 也是承上启下的一个桥梁,不仅提高了研发团队的开发效率,还能够保障代码质量和安全性,为项目的成功实现提供了坚实的基础,助力企业提升研发效能,从混乱的管理模式走向卓越,驱动生意的增长。
如果您想立马上手使用 Gitee Code,请扫描下方二维码联系您的专属顾问,或点击后面的链接直接访问 Gitee 旗舰版进行体验:https://gitee.cn/ultimate,开启您的研发高效之旅。
本文系作者 @Gitee 原创发布在 Gitee 官方博客。未经许可,禁止转载。