一种产品发布维护方法及系统与流程
未命名
10-21
阅读:70
评论:0
1.本技术涉及一种产品发布维护方法及系统。
背景技术:
2.随着软件开发项目不断增加,在进行软件产品的发布时,若采用手动部署需要更多的时间和成本,特别是对于复杂的部署和大规模的应用程序。而且传统部署更容易出现人为错误,例如配置错误、遗漏步骤等,最终的结果就是可能导致部署失败或者系统故障。另一方面,传统人工部署难以保证每次部署的一致性和重复性,因为人员可能在不同部署过程中做出不同的决策和操作。这也使得在产品容易在发布过程中发生问题,而在发生问题之后,又需要花费较大的精力来进行问题的确认和解决。
技术实现要素:
3.为了解决上述问题,本技术一方面公开了一种产品发布维护方法,包括如下步骤:
4.获取代码,并将代码推送到预发布环境;
5.在预发布环境进行部署,然后进行功能测试;
6.在功能测试通过的条件下推送到生产环境;
7.在生产环境进行部署。本技术首先进行预发布环境测试,通过预发布环境对于生产环境的模拟以起到预先发现问题的作用,且通过该种方式,为对于代码准确性要求较高的自动化部署提供了预先条件。
8.优选的,所述功能测试按照如下方式进行,首先进行功能测试,若测试通过,则直接推送到生产环境;
9.若功能测试没有通过,则启动预备测试环境;
10.将代码按照预备测试环境的要求进行分组,得到若干组分割代码,然后将分割代码在预备测试环境进行分别部署,并进行切割代码的功能测试,对于切割功能测试没有通过的分割代码进行人工检查。本技术的预发布环境在起到检测功能的同时,还能够起到定位问题位置的作用,并且结合分割代码的测试以及联动测试,更好的从代码整体上解决问题,得到无法完成部署的真实原因。
11.优选的,所述预备测试环境根据代码的功能进行分段设置;
12.在预备测试环境还包括一联动测试,所述联动测试按照分割代码应当产生的结果作为输入,模拟预发布环境的进行测试,若无法通过联动测试,则对于代码根据代码本身的功能分布进行重新分组,在重新分组之后重新进行再次切割功能测试以及再次联动测试。
13.优选的,若再次联动测试依然无法通过,则对于代码整体的调用逻辑进行人工检查;若再次切割功能测试无法通过,则对于切割功能测试以及再次切割功能测试没有通过的分组代码进行人工检查。
14.优选的,所述功能测试包括一般测试和压力测试,在一般测试通过之后,通过增加工作负载进行压力测试。
15.优选的,在压力测试情况下,测试通过,则推送到生产环境;若测试未通过,则根据代码本身的功能分布进行重新分组,在重新分组之后并通过增加工作负载的方式进行压力切割功能测试以及压力联动测试,对于没有通过压力切割功能测试的部分进行人工检查,对于没有通过压力联动测试则进行整体的调用逻辑进行人工检查。本技术通过设置压力测试,使得在前期就对于代码处理性能进行了预测定,从而可以更早的发现影响处理效率的代码或者处理逻辑,从一定程度上起到优化作用。
16.优选的,预发布环境部署按照如下方式进行:
17.gitlab基于分支功能,代码线下推送到dev分支;
18.pipeline拉取dev分支代码;
19.对于代码进行编译、打包;
20.构建镜像并推送nexus仓库;
21.测试通过后,gitlab创建合并请求到master分支。
22.优选的,所述生产环境部署按照如下步骤进行:
23.检查master分支合并请求并进行合并;
24.拉取master代码;
25.对于代码进行编译、打包;
26.构建镜像并推送nexus仓库;
27.进行生产环境部署;
28.监控部署情况,项目启动成功后,将原来版本项目下线即部署结束。
29.另一方面,还公开了一种产品发布系统,包括如下模块,
30.代码获取模块,用于获取代码,并将代码推送到预发布环境;
31.功能测试模块,用于在预发布环境进行部署,然后进行功能测试;
32.部署模块,用于在功能测试通过的条件下推送到生产环境并在生产环境进行部署。
33.优选的,所述功能测试模块包括如下子模块:
34.功能测试基础模块,用于对于全部代码进行整体的功能测试;
35.预备测试模块,用于将代码按照预备测试环境的要求进行分组,得到若干组分割代码,然后将分割代码在预备测试环境进行分别部署,并进行切割代码的功能测试,对于切割功能测试没有通过的分割代码进行人工检查;
36.联动测试模块,用于按照分割代码应当产生的结果作为输入,模拟预发布环境的进行测试,若无法通过联动测试,则对于代码根据代码本身的功能分布进行重新分组,在重新分组之后重新进行再次切割功能测试以及再次联动测试;若再次联动测试依然无法通过,则对于代码整体的调用逻辑进行人工检查;若再次切割功能测试无法通过,则对于切割功能测试以及再次切割功能测试没有通过的分组代码进行人工检查;
37.压力测试模块,用于在一般测试通过之后,通过增加工作负载进行压力测试,在压力测试情况下,测试通过,则推送到生产环境;若测试未通过,则根据代码本身的功能分布进行重新分组,在重新分组之后并通过增加工作负载的方式进行压力切割功能测试以及压力联动测试,对于没有通过压力切割功能测试的部分进行人工检查,对于没有通过压力联动测试则进行整体的调用逻辑进行人工检查。
38.本技术能够带来如下有益效果:
39.1.本技术首先进行预发布环境测试,通过预发布环境对于生产环境的模拟以起到预先发现问题的作用,且通过该种方式,为对于代码准确性要求较高的自动化部署提供了预先条件。
40.2.本技术的预发布环境在起到检测功能的同时,还能够起到定位问题位置的作用,并且结合分割代码的测试以及联动测试,更好的从代码整体上解决问题,得到无法完成部署的真实原因。
41.3.本技术通过设置压力测试,使得在前期就对于代码处理性能进行了预测定,从而可以更早的发现影响处理效率的代码或者处理逻辑,从一定程度上起到优化作用。
附图说明
42.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
43.图1为实施例1的流程图;
44.图2为实施例2的示意图。
具体实施方式
45.为能清楚说明本方案的技术特点,下面通过具体实施方式,对本技术进行详细阐述。
46.在第一个实施例中,如图1所示,一种产品发布维护方法,包括如下步骤:
47.s101获取代码,并将代码推送到预发布环境;
48.s102在预发布环境进行部署,然后进行功能测试,功能测试包括一般测试和压力测试,先进行一般测试:
49.所述功能测试当中的一般测试按照如下方式进行,首先进行功能测试的一般测试,若测试通过,则再进行压力测试;
50.若功能测试当中的一般测试没有通过,则启动预备测试环境;
51.将代码按照预备测试环境的要求进行分组,得到若干组分割代码,然后将分割代码在预备测试环境进行分别部署,并进行切割代码的功能测试,对于切割功能测试没有通过的分割代码进行人工检查。
52.所述预备测试环境根据代码的功能进行分段设置;
53.在预备测试环境还包括一联动测试,所述联动测试按照分割代码应当产生的结果作为输入,模拟预发布环境的进行测试,若无法通过联动测试,则对于代码根据代码本身的功能分布进行重新分组,在重新分组之后重新进行再次切割功能测试以及再次联动测试。
54.若再次联动测试依然无法通过,则对于代码整体的调用逻辑进行人工检查;若再次切割功能测试无法通过,则对于切割功能测试以及再次切割功能测试没有通过的分组代码进行人工检查。
55.s103在一般测试通过之后,通过增加工作负载的方式进行压力测试。
56.在压力测试情况下,测试通过,则推送到生产环境;若测试未通过,则根据代码本身的功能分布进行重新分组,在重新分组之后并通过增加工作负载的方式进行压力切割功
能测试以及压力联动测试,对于没有通过压力切割功能测试的部分进行人工检查,对于没有通过压力联动测试则进行整体的调用逻辑进行人工检查。
57.s104在功能测试通过的条件下推送到生产环境并在生产环境进行部署。
58.在具体的操作层面,一般是借助git实现,预发布环境部署按照如下方式进行:
59.gitlab基于分支功能,代码线下推送到dev分支;
60.pipeline拉取dev分支代码;
61.对于代码进行编译、打包;
62.构建镜像并推送nexus仓库;
63.测试通过后,gitlab创建合并请求到master分支。
64.生产环境部署按照如下步骤进行:
65.检查master分支合并请求并进行合并;
66.拉取master代码;
67.对于代码进行编译、打包;
68.构建镜像并推送nexus仓库;
69.进行生产环境部署;
70.监控部署情况,项目启动成功后,将原来版本项目下线即部署结束。
71.在第二个实施例中,如图2所示,一种产品发布系统,包括如下模块,
72.代码获取模块1,用于获取代码,并将代码推送到预发布环境;
73.功能测试模块2,用于在预发布环境进行部署,然后进行功能测试;
74.部署模块3,用于在功能测试通过的条件下推送到生产环境并在生产环境进行部署。
75.所述功能测试模块2包括如下子模块:
76.功能测试基础模块201,用于对于全部代码进行整体的功能测试;
77.预备测试模块202,用于将代码按照预备测试环境的要求进行分组,得到若干组分割代码,然后将分割代码在预备测试环境进行分别部署,并进行切割代码的功能测试,对于切割功能测试没有通过的分割代码进行人工检查;
78.联动测试模块203,用于按照分割代码应当产生的结果作为输入,模拟预发布环境的进行测试,若无法通过联动测试,则对于代码根据代码本身的功能分布进行重新分组,在重新分组之后重新进行再次切割功能测试以及再次联动测试;若再次联动测试依然无法通过,则对于代码整体的调用逻辑进行人工检查;若再次切割功能测试无法通过,则对于切割功能测试以及再次切割功能测试没有通过的分组代码进行人工检查;
79.压力测试模块204,用于在一般测试通过之后,通过增加工作负载进行压力测试,在压力测试情况下,测试通过,则推送到生产环境;若测试未通过,则根据代码本身的功能分布进行重新分组,在重新分组之后并通过增加工作负载的方式进行压力切割功能测试以及压力联动测试,对于没有通过压力切割功能测试的部分进行人工检查,对于没有通过压力联动测试则进行整体的调用逻辑进行人工检查。
80.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
技术特征:
1.一种产品发布维护方法,其特征在于:包括如下步骤:获取代码,并将代码推送到预发布环境;在预发布环境进行部署,然后进行功能测试;在功能测试通过的条件下推送到生产环境;在生产环境进行部署。2.根据权利要求1所述的一种产品发布维护方法,其特征在于:所述功能测试按照如下方式进行,首先进行功能测试,若测试通过,则直接推送到生产环境;若功能测试没有通过,则启动预备测试环境;将代码按照预备测试环境的要求进行分组,得到若干组分割代码,然后将分割代码在预备测试环境进行分别部署,并进行切割代码的功能测试,对于切割功能测试没有通过的分割代码进行人工检查。3.根据权利要求2所述的一种产品发布维护方法,其特征在于:所述预备测试环境根据代码的功能进行分段设置;在预备测试环境还包括一联动测试,所述联动测试按照分割代码应当产生的结果作为输入,模拟预发布环境的进行测试,若无法通过联动测试,则对于代码根据代码本身的功能分布进行重新分组,在重新分组之后重新进行再次切割功能测试以及再次联动测试。4.根据权利要求3所述的一种产品发布维护方法,其特征在于:若再次联动测试依然无法通过,则对于代码整体的调用逻辑进行人工检查;若再次切割功能测试无法通过,则对于切割功能测试以及再次切割功能测试没有通过的分组代码进行人工检查。5.根据权利要求1所述的一种产品发布维护方法,其特征在于:所述功能测试包括一般测试和压力测试,在一般测试通过之后,通过增加工作负载进行压力测试。6.根据权利要求5所述的一种产品发布维护方法,其特征在于:在压力测试情况下,测试通过,则推送到生产环境;若测试未通过,则根据代码本身的功能分布进行重新分组,在重新分组之后并通过增加工作负载的方式进行压力切割功能测试以及压力联动测试,对于没有通过压力切割功能测试的部分进行人工检查,对于没有通过压力联动测试则进行整体的调用逻辑进行人工检查。7.根据权利要求1所述的一种产品发布维护方法,其特征在于:预发布环境部署按照如下方式进行:gitlab基于分支功能,代码线下推送到dev分支;pipeline拉取dev分支代码;对于代码进行编译、打包;构建镜像并推送nexus仓库;测试通过后,gitlab创建合并请求到master分支。8.根据权利要求7所述的一种产品发布维护方法,其特征在于:所述生产环境部署按照如下步骤进行:检查master分支合并请求并进行合并;拉取master代码;对于代码进行编译、打包;构建镜像并推送nexus仓库;
进行生产环境部署;监控部署情况,项目启动成功后,将原来版本项目下线即部署结束。9.一种产品发布系统,其特征在于:包括如下模块,代码获取模块,用于获取代码,并将代码推送到预发布环境;功能测试模块,用于在预发布环境进行部署,然后进行功能测试;部署模块,用于在功能测试通过的条件下推送到生产环境并在生产环境进行部署。10.根据权利要求9所述的一种产品发布系统,其特征在于:所述功能测试模块包括如下子模块:功能测试基础模块,用于对于全部代码进行整体的功能测试;预备测试模块,用于将代码按照预备测试环境的要求进行分组,得到若干组分割代码,然后将分割代码在预备测试环境进行分别部署,并进行切割代码的功能测试,对于切割功能测试没有通过的分割代码进行人工检查;联动测试模块,用于按照分割代码应当产生的结果作为输入,模拟预发布环境的进行测试,若无法通过联动测试,则对于代码根据代码本身的功能分布进行重新分组,在重新分组之后重新进行再次切割功能测试以及再次联动测试;若再次联动测试依然无法通过,则对于代码整体的调用逻辑进行人工检查;若再次切割功能测试无法通过,则对于切割功能测试以及再次切割功能测试没有通过的分组代码进行人工检查;压力测试模块,用于在一般测试通过之后,通过增加工作负载进行压力测试,在压力测试情况下,测试通过,则推送到生产环境;若测试未通过,则根据代码本身的功能分布进行重新分组,在重新分组之后并通过增加工作负载的方式进行压力切割功能测试以及压力联动测试,对于没有通过压力切割功能测试的部分进行人工检查,对于没有通过压力联动测试则进行整体的调用逻辑进行人工检查。
技术总结
一种产品发布维护方法及系统,包括如下步骤:获取代码,并将代码推送到预发布环境;在预发布环境进行部署,然后进行功能测试;在功能测试通过的条件下推送到生产环境;在生产环境进行部署。本申请首先进行预发布环境测试,通过预发布环境对于生产环境的模拟以起到预先发现问题的作用,且通过该种方式,为对于代码准确性要求较高的自动化部署提供了预先条件。准确性要求较高的自动化部署提供了预先条件。准确性要求较高的自动化部署提供了预先条件。
技术研发人员:邱瀚 袁壮壮 张琳琳 朱习文 董志勇 马强 郑常青 孙品 张金鑫
受保护的技术使用者:山东旗帜信息有限公司
技术研发日:2023.07.07
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/