揭秘腾讯工蜂:企业级代码管理协作解决方案

互联网敏捷研发,离不开高效的代码管理系统。作为研发流程的基础环节,代码管理具备串联需求管理、持续集成、持续交付等上下游研发链路的作用,也承载着企业追求代码质量、鼓励代码复用等工程师文化的建设。腾讯拥有近3万研发人员,产品线漫长、业务种类繁多,不同的团队规模、技术栈和研发模式都对研发协作提出了不同的需求,也导致了代码库规模和研发流程参差不齐。同时编译系统、发布系统等需要检出所有代码,自动化程度越高,对代码库的访问压力就越大。提供安全稳定的代码服务,管理不同规模的代码仓库,支持各种类型的研发流程,是代码管理面临的三大挑战。基于行业状况及自身发展需要,腾讯选择了以Git为基础,在内部孵化了自研的Git系统——工蜂。

首先要解决服务端代码库存储扩容问题,因为单存储节点无法满足TB级增长的存储量,可考虑的有自定义数据分片和通用分布式文件存储两种方案。分布式存储的优点是对应用层屏蔽了底层存储结构,架构相对简单,但对IO密集型的代码托管应用来说,过于依赖分布式文件系统的IO性能,可移植性也不强。相反自定义数据分片可以自由控制分片策略,灵活均衡资源负载,另外在每个分片的底层存储上,也可以结合分布式存储,进一步扩展数据备份。工蜂选择了数据分片的方案,以仓库路径作为路由规则,并在应用层实现跨分片操作。数十万仓库分布在不同集群,可以实现集群动态扩容和集群间无缝迁移。

解决了存储扩容问题后,访问量增加逐步暴露了单机的性能瓶颈,代码库的读取和写入都集中在一台主机上,会导致计算和内存资源吃紧。通过分析来源,大量的读请求来自编译和发布系统,针对这种读多写少的场景,工蜂实现了代码库级一主多从的读写分离模式,写请求分发给主机,读请求会根据当前负载情况均衡分流给从

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值