CSDN CODE实现前后台分离 支持规模部署

    CODE平台宣布正式开放注册之后, 日新增用户和新增项目数迎来了比之前更大幅的增长,提升服务器处理能力成为迫在眉睫的问题。

    如大家所知,CODE系统是基于开源的Gitlab搭建的,而Gitlab的架构限制其只能部署为单点系统,其容量(包括用户量和代码仓数量)是受限的,无法通过单纯增加服务器的方式来解决。而分布式文件系统部署方案由于存储效率和访问速度,都不是非常适合Git这种需要频繁访问小文件的业务。CODE作为基于Git服务的代码托管与社交编程网站,不可避免的Repos需求会非常的庞大,并且随着用户量的增加需要动态的扩展。

    为了解决这一矛盾,我们从平台开发之处就在选型解决方案,这一点在《CODE平台的系统架构与安全架构》一文中也曾提及。最终我们决定选用前后台分离的分布式部署方案。这也是被业界领先的社交编程平台github所验证了的可行的方案。

    这一方案的基本架构是:系统由前端(FE)和后端(BE)组成。后端保存所有Git仓库,负载均衡把用户请求平均分配给前端,前端根据请求类型,分别通过远程调用、透明代理访问后端的Git仓库。


 
    该方案充分的使用了所有后端机器的计算能力,除代码仓外,把Git,SSH的处理能力也放到了后端,并可以实现前端和后端的任意拓展。对于CODE这样具有可持续性发展需求的公众服务网站来说,该方案有着不可替代的优势。

    当然,这一方案也面临一些技术难点:比如,需要实现Grit库的远程调用,完成前端WEB应用对后端Git仓库的访问;需要实现SSH 和Git Proxy,完成前端到后端的透明代理等等。

CODE系统架构
 
(CODE平台系统架构)


    在CODE平台上线之初,由于开发时间紧张,且系统的很多功能和业务逻辑尚未用户经过验证,所以我们首先在单机版服务器上完成系统部署,上线内测给大家使用。在上线后的几个月的时间里,一方面我们通过收集用户反馈不断改进CODE平台的功能体验,另一方面,也一直在为前后台分离的部署做着准备。

    就在上周,伴随着CODE开放注册后用户量的大规模增长,和平台基础功能的日益完善,开发团队终于将准备已久的前后台分离分布式部署架构实现并上线。这标志着, 现在起,CODE可以无压力的迎来一大波又一大波的用户和项目了!

    我们很诚挚的邀请大家积极注册和托管项目,试用CODE平台的各项功能,如果有任何意见和建议,欢迎随时向我们反馈!感谢大家!

    有关于CODE平台技术架构的任何问题,也欢迎与我们交流哦~