自建 GitLab 似乎很简单?这些坑也许你不知道
团队协作和进步把控能力是开发公司的生命线,不能按时交付项目的话在很多公司都不受待见。到了一家新公司,突然发现公司是自建的代码托管系统?从此你不但每天要勤勤恳恳写代码,还得随时准备应对日常各种硬件故障以及网络故障,而且说不定哪天你的领导就又换了一家服务商,“背锅”则可能成为一种常态,领导需要你对结果负责。
作为企业的信息化核心资产的代码,是开发团队智慧的结晶,自建代码管理系统还是选择云平台成为大家心中的犹豫,那么自建有哪些需要考量的因素?
一、自建代码托管系统都需要做些什么工作?
1. 选择开源软件
Git 大家族的 GitLab ,它提供了完善的用户权限管理,除了涵盖 Git 所有的功能,同时又提供方便的后台管理。分别有CE(社区版)、EE(企业版)、OM(RPM 包完整版)三个版本,目前市面上开发者们的普遍选择是使用 CE 版的源码,成本较低且相对方便。
可是 GitLab 的搭建,虽然在官方文档中提供了相应的方法,但在实际的操作过程中,并没有那么顺利,从安装相关依赖到引入 yum 源等,这个过程有许多的坑,需要专人的维护和版本更新,以保证正常使用。
2. 硬件设施方面
如果是对于中小型企业来讲,自建机房一般成本较高,而且也会存在以下问题:
- 建设过程的高要求和复杂性需要耗费大量的资金和时间成本;
- 在核心的带宽线路资源上存在额定流量小、网路负载小、链路稳定性差、不能实现多线路等缺陷;
- 不稳的供电很容易引起磁盘损坏,进而导致代码丢失。
所以除非是大型集团企业,一般都不会去自建机房。现在市面上存在太多的云服务器厂商,平均价格多在 5000元/年以上,五花八门的套餐和各种“优惠”让人有些眼花缭乱,使用的时候也需处理各种可能遇到的软硬件故障。
3. 自建的代码管理系统你可能遇到的坑
综上来看,如果是自建代码管理系统,从软件到硬件可能会遇到以下的问题:
- 需要对 GitLab 搭建非常熟悉的人,专门负责维护;
- 需要采购单独服务器,费用不菲来说,还得在复杂的市场上费力挑选,更要处理各种可能发生的硬件和网络故障;
- 需要独立的互联网线路以方便公司外的员工访问代码,不太适合有异地或者外包团队的企业;
- 需要随时关注代码管理软件的各种漏洞和 Bug 并即刻更新;
- 难以应对来自公司内部对代码仓库的恶意破坏,可能发生删库跑路事件。
二、从传统 IDC 到云计算时代,我们该如何管理代码?
在 2018 年,云计算已经成了全球最重要的基础设施,传统 IDC 日渐式微。现如今,系统上线时再不需要四处比价购买服务器,寻找机房、应对日常各种硬件故障以及网络故障。使用云计算,这一切都可以在线操作,方便管理的同时也能提高团队整体的开发效率。下面我们从大家最关心的企代码安全来讲讲云平台的优势。
1. 代码存储
无论是自建系统还是使用云平台,代码最终都是存储在存储设备上,可靠的存储是代码安全的第一要素,我们可不希望因为硬件故障导致代码丢失。
> 硬件方面
云平台通常拥有专业的机房,因其专业特性和对上下游产业链的熟悉,单位成本大大降低,在供电系统、冷却系统、带宽资源等方面也投入巨大,这是一般企业机房所无法媲美的。云平台在硬件方面通常更有保障。
> 存储机制方面
专业的代码托管平台通常都会做多份存储并定期备份。一旦出现硬件故障,冗余的存储设备可以保证数据不会丢失,即使丢失也可以从备份数据中恢复。而如果企业规模不大的话,内部自建的代码存储系统在可靠存储的机制上通常难以充分保证。
> 后期维护方面
机房要保持良好的运行状态,就要面对繁琐的细节与大量的不可控因素,从网络部署、应用需求、设备折旧、安全灾备等业务需求到临时断电、服务器宕机、网络故障等突发事件,在这一方面,云平台的专业优势是显而易见的。
2. 代码权限
在确保代码可靠存储之后,权限问题就是我们最最关心的问题了。
一般企业内部会有各种各样的项目,而什么人可以访问哪些项目,必须进行严格界定:什么人可以提交代码?什么人只能阅读代码?什么人能不能看代码,但是能提交 Bug 问题?
自建代码托管系统一般会采用开源项目(如 Gitlab)搭建,但开源项目在权限控制方面一般比较简单,例如只能控制某个用户是否有访问某个项目的权限。若要实现精细的权限控制,开发成本太大。
而权限控制通常是代码托管云平台的重要增值服务之一,会投入大量开发资源以满足用户需求,保证可用性及易用性。
3. 代码泄露
这个问题也是很多企业极为关注的 —— 怎样防止我的代码遭到恶意泄露。
代码泄露存在以下几种可能的途径:
> 项目成员
如果项目成员泄露项目代码,带来的问题是最严重的——因为项目成员理解代码,而且拥有对代码的读写权限。因此,对于项目成员主动泄露代码,实际上难以真正控制,只能从企业的管理制度上和法律层面上解决。
> 公司员工(非项目成员)
事实上,企业内部网络的安全性通常并不理想。权限管理宽松、混乱的现象非常普遍。
对自建代码系统的公司而言,尽管在系统设置上,非项目成员无法访问具体项目代码。但如果代码系统是搭建在企业内部,其实很容易直接通过内部网络访问到所有的代码。而使用云平台可以有效避免这种可能性存在。
> 系统漏洞
企业自行搭建代码托管系统一般会采用开源软件(如 Gitlab),但众所周知,开源软件也经常存在一些漏洞,尽管漏洞的修复也很快,但因为企业内部对这套系统的维护一般是兼职人员,无法保证第一时间修复漏洞,很可能导致他人利用漏洞获取到敏感信息。
尽管云平台也同样存在这个问题,但云平台通常配有专职的运维人员,漏洞的风险也会相应大大降低。
> 代码托管平台
从前述几点来看,对于中小企业,以及大型企业的开发团队而言,选择云平台托管代码,实际上是更省心、更安全的选择,对比独立搭建系统的优势非常明显。
那么我们唯一需要担心的就是,将代码托管到云平台会不会被泄露?
云平台的安防措施、内部管理措施、对用户的权益保障措施等,都是需要考虑的影响因素。
因此在选择代码托管云平台时,应该选择有良好信誉保证、可靠、中立的服务商。
三、Gitee 能够为您的代码托管带来什么帮助?
企业自建的代码管理系统面临传统 IDC 时代的各种烦心事正是 Gitee 要帮您解决的问题:
- 6 年的积累,350w+开发者,600w+ 代码仓库,您值得依托的代码管理平台
- 码云企业版提供不同级别的套餐来满足不同开发者规模的企业协作开发的需求,费用低至 1998/年;
- 非常灵活的权限控制,确保代码授权访问;
- 专业的工程师多年的 Git 系统经验,确保系统稳定可靠;
- 提供企业代码仓库快照服务,可随时恢复被恶意破坏的仓库;
- 拥有 ISO27001 与 ISO9001 两项认证,信息
- 签订服务合同,提供服务发票,确保安全可靠。
我们以阿里云主机为例:(硬性成本)采购一台包含 2 个 CPU、4G 内存、1T 存储、5兆带宽的 ECS 服务器,费用大约是 6000/年。(软性成本)再加上一个开发者兼任系统维护工作,占据其 10% 的工作时间,这个成本本身并不低,但这是最次要的,由于不是专业的 Git 工程师,在应对系统漏洞以及对接方面的经验有限,一旦出了安全问题,损失难以估计。 另外一个紧要的问题是内部安全问题。曾经遇见过这样的客户,内部员工删除代码仓库并离职,可能导致企业产生难以估计的损失。
如果你正遭遇这么一些坑,那不妨试试码云 Gitee ,和招商银行、光大银行、比亚迪汽车、南方智能、中信出版社、小盒科技、九阳等七万余家企业一起用 Gitee 来管理你的代码吧。
本文系作者 @Gitee 原创发布在 Gitee 官方博客。未经许可,禁止转载。