git服务器可以本地部署吗?企业代码安全、权限管理和服务器配置怎么选
本文未附完整的测试环境、工具版本与原始结果,内容作为故障排查或选型资料参考,不标记为实测报告。
公司的代码越来越多了,研发人员也多了起来,所以Git提交、拉取、分支管理就会变得很混乱。放到公网上去又担心源码、账号权限以及客户项目的资料泄露;放到了个人电脑上又害怕硬盘坏了或者离职交接的时候没有人来维护。有很多老板和IT负责人会问到一个问题:Git服务器能本地部署吗?
答案是:可以,并且有很多的企业、工厂、软件公司、科研机构以及对于数据安全和合规性有较高要求的组织会采用本地部署Git服务器的方式。常见的方案有GitLab、Gitea、GitBucket等,在公司的自建服务器或者机房内的内网上进行部署,研发人员通过内网来访问,权限管理、数据备份与审计等工作都是由企业自己完成的。
本地部署Git服务器的核心价值并不是“安装一个软件”,而是一起把代码资产、权限体系、备份策略以及后续维护都纳入到管理体系中来。特别适合于以下几种情况下的本地化部署:
第一是重视源码的安全性。代码不离开内网,并且结合账号权限、项目分组和访问日志等措施来使用,就可以减少由于外部平台账号泄漏或者错误授权所造成的风险。
第二点就是研发人员的数量在不断增加。几个人使用普通的电脑还可以勉强应付,但是十几个人甚至几十个人一起拉取代码、运行CI、上传文件的时候,就必须要有一个稳定的大脑(即CPU)、足够的内存、充足的存储空间以及快速的网络来支持了。
第三、项目资料要长期保存。对Git仓库、Issue、Wiki、制品包和备份文件等都应进行存储空间规划,并且不能只考虑目前的空间使用情况,而应该为今后两年到三年的增长留出足够的余地。
第四种情况是有关于等保、内控或者国产化的。有些公司要将代码、数据库和系统部署到本地机房中去,可以采用国产服务器、国产操作系统、国产数据库以及内网安全设备来组成一个完整的解决方案。
那么本地服务器应该选择哪一个呢?除了价格之外还应该考虑一下应用场景。
如果是一个十人左右的小团队,只需要做代码托管与权限管理的话,可以选入门级塔式或者1U服务器,CPU不需要太大,但是建议从八核开始起,内存最好32G以上比较稳定一些,硬盘要选择企业级SSD,并且把系统盘和数据盘分开来。
如果是一个20到50人规模的研发团队,并且要使用到GitLab、CI/CD、代码扫描以及制品库等工具的话,那么在选择服务器的时候应该给CPU核心数、内存还有磁盘I/O都留出一定的余地。例如使用多核至强或者EPYC处理器,配备64G~128G内存,采用企业级SSD或者SSD+机械硬盘组合的方式会更合适一些。
如果是一个人经常提交、大仓库、二进制文件很多的情况的话,那么硬盘方案就非常关键了。建议对系统盘进行RAID1保护,对于数据盘可以根据容量和性能来选择RAID5、RAT6或者RAID10,并且要搭配上定期备份,不能只依靠RAID来做备份。
另外一些比较容易被忽视的地方是:
网络带宽:内网最好用千兆以上,如果条件允许的话可以达到万兆级别,以免多人同时下载大型文件的时候出现卡顿现象。
2、电源冗余:由于服务器长时间工作,所以双电源要比单电源更适用于企业的机房环境。
3. 远程管理:带有IPMI/iDRAC/iLO等远程管理功能,在以后的重启和查看硬件报警方面会更加便捷。
4. 扩展性:内存插槽、硬盘位、PCIe插槽都要留出空间来扩展以后增加硬盘或者更换网卡等不会被限制。
售后服务:服务器并不是买了就完事了,系统的安装和配置、RAID设置、数据备份方案以及故障处理等都要有专人负责。
即使预算有限也可以做到稳定,但是前提是要有与之相匹配的方案。比如说只有Git代码托管的话,并不需要很高的配置;但是如果要部署Jenkins、容器、数据库和代码扫描这些功能,就不能按照普通的文件服务器来配置了。还要考虑品牌的优劣、CPU型号、内存大小、硬盘容量以及RAID卡类型等因素,并且要对服务期限和服务方式做出相应的计算。
如果要进行“Git服务器本地部署”的话,可以先把研发人员数量、仓库数目、项目规模、是否有CI/CD需求、机房条件以及预算范围等信息罗列一下。可以根据你公司的实际情况来为你整理出服务器配置清单、品牌或者国产化的方案、报价的方向,并且提供安装调试、备份规划、售后服务和后期扩容升级的服务。