分布式项目开发处理方法及系统技术方案

技术编号:33999736 阅读:43 留言:0更新日期:2022-07-02 11:49
本申请是关于一种分布式项目开发处理方法及系统。该分布式项目开发处理方法,包括:使用分布式的网络文件系统NFS作为代码目录,通过NFS服务器存储代码;使用容器集群管理系统k8s构建分布式web服务环境,其中所述k8s中将不同的Pod作为不同的web服务器,通过所述k8s中的Pod挂载所述网络文件系统NFS来挂载所述代码。本申请提供的方案,能够提高项目的开发和测试环境的稳定性,降低运维压力。降低运维压力。降低运维压力。

【技术实现步骤摘要】
分布式项目开发处理方法及系统


[0001]本申请涉及计算机及互联网
,尤其涉及一种分布式项目开发处理方法及系统。

技术介绍

[0002]相关技术中,目前一般是单点服务器部署开发测试环境,单个分支进行项目的开发和测试,并且针对每个开发和测试域名配置DNS(Domain Name System,域名系统)解析。当多个互相联系的项目的开发测试环境放到一台服务器上,如果该台服务器崩溃,则影响到公司所有业务的开发和测试流程,影响很大,可能因为服务器崩溃并且修复时间过久,导致业务开发团队长时间无法正常工作。
[0003]因此,相关技术的项目开发处理方法,开发和测试环境的稳定性有待改善。

技术实现思路

[0004]为克服相关技术中存在的问题,本申请提供一种分布式项目开发处理方法及系统,能够提高项目的开发和测试环境的稳定性,降低运维压力。
[0005]本申请第一方面提供一种分布式项目开发处理方法,包括:
[0006]使用分布式的网络文件系统NFS作为代码目录,通过NFS服务器存储代码;
[0007]使用容器集群管理系统k8s构建分布式web服务环境,其中所述k8s中将不同的Pod作为不同的web服务器,通过所述k8s中的Pod挂载所述网络文件系统NFS来挂载所述代码。
[0008]在一种实施方式中,所述方法还包括:
[0009]在所述Pod通过联合文件系统mergerfs来创建各个分支的web目录。
[0010]在一种实施方式中,所述方法还包括:
[0011]在所述Pod基于DNSmasq配置正则通配的域名规则,按照所述域名规则为不同的分支各分配域名。
[0012]在一种实施方式中,所述方法还包括:
[0013]设置GitLab作为远程代码仓库,通过Gitlab CI进行持续代码部署。
[0014]在一种实施方式中,所述方法还包括:
[0015]在用户端将创建的分支及代码推送到所述远程代码仓库后,通过Gitlab CI调用GitLab

Runner运行设定命令,将所述代码传输给所述NFS服务器上对应的代码分支挂载目录。
[0016]在一种实施方式中,所述通过Gitlab CI调用GitLab

Runner运行设定命令,将所述代码传输给所述NFS服务器上对应的代码分支挂载目录,包括:
[0017]通过Gitlab CI调用所述Pod上的GitLab

Runner运行代码拉取命令,将所述代码拉取到NFS服务器上对应的代码分支挂载目录。
[0018]本申请第二方面提供一种分布式项目系统:
[0019]包括NFS服务器和容器集群管理系统k8s,其中所述k8s中包括不同的Pod,不同的
Pod作为不同的web服务器;
[0020]NFS服务器,用于使用分布式的网络文件系统NFS作为代码目录,通过NFS服务器存储代码;
[0021]容器集群管理系统k8s,用于构建分布式web服务环境,通过所述k8s中的Pod挂载所述网络文件系统NFS来挂载所述代码。
[0022]在一种实施方式中,所述k8s中的Pod通过联合文件系统mergerfs来创建各个分支的web目录。
[0023]在一种实施方式中,所述k8s中的Pod基于DNSmasq配置正则通配的域名规则,按照所述域名规则为不同的分支各分配域名。
[0024]在一种实施方式中,所述k8s中的Pod在用户端将创建的分支及代码推送到远程代码仓库后,通过Gitlab CI调用所述Pod上的GitLab

Runner运行设定命令,将所述代码传输给所述NFS服务器上对应的代码分支挂载目录。
[0025]本申请提供的技术方案可以包括以下有益效果:
[0026]本申请实施例示出的方案,使用分布式的NFS(Network File System,网络文件系统)作为代码目录并通过NFS服务器存储代码,使用容器集群管理系统k8s构建分布式web服务环境,并通过k8s中的Pod挂载所述网络文件系统NFS来挂载所述代码,即将NFS挂载到分布式的web服务器上(即k8s中的Pod上),也就是说本申请实施例使用了NFS网络存储部署代码和分布式web服务器挂载代码的方案。由于NFS是一种网络存储协议,所以多个Pod可以同时分布式地挂载NFS目录,这样就避免了单点服务器存在的问题,使得开发和测试环境的稳定性大大提高,多分支的开发和测试流程也比单分支流程更加稳健和高效,也可以降低运维的压力。
[0027]进一步的,本申请实施例方案使用联合文件系统mergerfs,对于某个功能分支但没有实际建立分支的项目,可以节省代码的存储空间。也就是说,使用联合文件系统mergerfs来创建各个分支的web目录,实际上是覆盖了实际分支代码目录和主分支的代码目录,可以达到节省存储空间和部署时间的目的。
[0028]进一步的,本申请实施例方案基于DNSmasq配置正则通配的域名规则,按照所述域名规则为不同的分支各分配域名,也就是说是使用了正则表达式来做DNS解析的方案。由于是通配,所以只需要配置一次即可。这样,开发或测试人员就可以通过项目名和分支的方式访问应用,例如分支名是bug

fix,则访问aaa

bug

fix.xxx.com,这样就可以实现多分支同时开发测试的效果,而每个域名代表了一个分支。
[0029]进一步的,本申请实施例方案使用了Gitlab作为代码仓库和Gitlab CI作为持续部署的方式,并且开发了一个钩子程序,对于每次项目的Git提交,都可以根据分支按需要自动创建部署的代码目录和推送代码,从而实现部署流程自动化。
[0030]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0031]通过结合附图对本申请示例性实施方式进行更详细的描述,本申请的上述以及其它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号
通常代表相同部件。
[0032]图1是本申请实施例示出的分布式项目开发处理的流程示意图;
[0033]图2是本申请实施例示出的分布式项目开发处理方法的另一流程示意图;
[0034]图3是本申请实施例示出的分布式项目开发处理方法中的网络应用架构示意图;
[0035]图4是本申请实施例示出的分布式项目系统的结构示意图。
具体实施方式
[0036]下面将参照附图更详细地描述本申请的优选实施方式。虽然附图中显示了本申请的优选实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
[0037]在本申请使用的术语本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式项目开发处理方法,其特征在于,包括:使用分布式的网络文件系统NFS作为代码目录,通过NFS服务器存储代码;使用容器集群管理系统k8s构建分布式web服务环境,其中所述k8s中将不同的Pod作为不同的web服务器,通过所述k8s中的Pod挂载所述网络文件系统NFS来挂载所述代码。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述Pod通过联合文件系统mergerfs来创建各个分支的web目录。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述Pod基于DNSmasq配置正则通配的域名规则,按照所述域名规则为不同的分支各分配域名。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:设置GitLab作为远程代码仓库,通过Gitlab CI进行持续代码部署。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在用户端将创建的分支及代码推送到所述远程代码仓库后,通过Gitlab CI调用GitLab

Runner运行设定命令,将所述代码传输给所述NFS服务器上对应的代码分支挂载目录。6.根据权利要求5所述的方法,其特征在于,所述通过Gitlab CI调用GitLab

Runner运行设定命令,将所述代码传输给所述N...

【专利技术属性】
技术研发人员:夏杰民洪宏辉黄招辉
申请(专利权)人:广州力挚网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1