码云 Gitee 自2013年推出以来,每年的数据量都是倍增的,截止到2021年3月份,Gitee 上已经有了600万+的开发者,超1500万的仓库,成为了国内首屈一指的研发协作平台。在数据日益增长的过程中,Gitee 的架构也是经过了数个迭代,才能支撑起目前的数据量级。我曾在不少的大会上分享过 Gitee 的架构,也和很多有类似场景的同学一起讨论过,偶然被问起有没有专门的文章来介绍 Gitee 架构的,所以难得假期有时间,将此主题整理成文,以供大家参阅。
去年写过一篇文章《浅谈 Pull Request 与 Change Request 研发协作模式》,详细介绍了 PR Flow 以及 CR Flow 的区别,文末有说到 Gitee 应该提供推送分支自动创建评审的这项改进,刚好近期也听到很多关于平台支持 CR Flow 的声音,而且在不少客户内部也有类似需求,毕竟这个需求可以解放开发者的一部分精力,对于追求研发效能的当下,自然是一个不错的功能点,另外对于 Gerrit 转到 Gitee 的用户,也是一个平滑的过渡方案。所以写下这篇文章,探讨一下支持 CR Flow 平台的产品实现,并对 CR Flow 实现的底层原理做了一些实验性的工作,以供参阅。