一种流水线式功能服务的发布方法、装置、设备及介质与流程

未命名 10-26 阅读:92 评论:0


1.本发明实施例涉及软件开发技术领域,尤其涉及一种流水线式功能服务的发布方法、装置、设备及介质。


背景技术:

2.服务发布是企业的重要流程之一。服务发布表示企业的系统进行新功能的上线以及旧功能的迭代优化。服务发布的质量直接影响用户的使用体验,因此服务在正式发布前,需要进行测试、校验等一系列环节,确保无问题后才能进行最终的发布。但随着信息化的不断发展,b(企业)端和c(消费者)端系统都呈爆发式的增加。用户个性化需求日益增多,带来系统功能优化、改进的服务上线也越来越多。单个系统的单个功能模块的上线,都需要进行复杂的上线流程,多个系统多个功能的集中上线给开发、测试人员带来了极大的工作量和发布压力。尤其是结算服务领域、基础服务领域的功能迭代次数更多、迭代难度更大。其中,结算服务领域由于涉及到政策变更需要及时调整开票模式、税率,系统需要及时上线优化计算模式。
3.当前市面的服务发布系统大多是进行代码库中拉取代码、进行代码编辑、发布的流程,无法整体对发布质量进行系统性全局把关,缺少服务发布的审核校验兜底;容易出现服务发布异常的场景,缺少发布依赖关系的校验;发布监控依赖于开发人员、测试人员的专家经验进行识别和研判,导致整个服务发布的效率较低;整个发布流程依赖各个流水线的开发人员进行把控、单线操作的流程以及最终多线发布的聚合,给发布系统带来极大的压力。
4.因此,如何保障服务发布的稳定性、减少发布事故问题、提升整个服务发布流水线的发布效率,成为了目前亟待解决的技术问题。


技术实现要素:

5.本发明实施例提供一种流水线式功能服务的发布方法、装置、设备及介质,以解决相关技术中服务发布系统的流程操作繁琐、效率较低,且发布质量无法保障的技术问题。
6.第一方面,本发明实施例提供一种流水线式功能服务的发布方法,所述方法应用于软件开发的过程中,所述方法包括:在软件开发的发布候选阶段,接收测试人员的工单新建指令,其中,所述工单新建指令携带有与目标工单所对应的功能服务相关的配置信息;根据所述工单新建指令新建所述目标工单;其中,所述目标工单用于指示所述功能服务的配置;接收所述测试人员针对于所述目标工单的审批指令;若所述审批指令为审批通过,则进入软件开发的生产模拟阶段;在所述生产模拟阶段,根据所述测试人员的打标记tag指令,为所述目标工单所对应的功能服务的当前版本打tag,并发布所述功能服务被打tag后的目标工单;
接收所述测试人员针对于所述功能服务被打tag后的目标工单的第一测试指令;若所述第一测试指令为测试通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布成功,并进入软件开发的生产阶段;若所述第一测试指令为测试未通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布失败,根据所述测试人员的修改操作,对所述功能服务的相关代码进行修改,并根据所述测试人员的打tag指令,为所述目标工单所对应的功能服务的当前版本重新打tag后,重新发布所述功能服务被打tag后的目标工单,并进入所述接收所述测试人员针对于所述功能服务被打tag后的目标工单的第一测试指令的步骤,直至确定所述功能服务在所述生产模拟阶段的发布结果为发布成功;在所述生产阶段,发布所述功能服务被打tag后的目标工单;接收所述测试人员针对于所述功能服务被打tag后的目标工单的第二测试指令;若所述第二测试指令为测试未通过,则确定所述功能服务在所述生产阶段的发布结果为发布失败,将所述功能服务的当前版本回滚至初始版本;若所述第二测试指令为测试通过,则确定所述功能服务在所述生产阶段的发布结果为发布成功。
7.可选的,在所述生产阶段,发布所述功能服务被打tag后的目标工单包括:以第一预设发布比例,发布所述功能服务被打tag后的目标工单,并基于所述功能服务的使用情况,判断所述功能服务是否正常发布;如果是,则以第二预设发布比例,发布所述功能服务被打tag后的目标工单。
8.可选的,在以第二预设发布比例,发布所述功能服务被打tag后的目标工单之后,所述方法还包括:基于所述功能服务的使用情况,判断所述功能服务是否正常发布;在所述功能服务正常发布的情况下,所述接收所述测试人员针对于所述功能服务被打tag后的目标工单的第二测试指令包括:接收所述测试人员针对于以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的第二测试指令;确定所述功能服务在所述生产阶段的发布结果为发布成功包括:确定以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的发布结果为发布成功;其中,所述第二预设发布比例大于所述第一预设发布比例;所述第一预设发布比例和所述第二预设发布比例均表示在所述生产阶段,所述功能服务所面向的目标客户群体占总目标客户群体的百分比。
9.可选的,确定以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的发布结果为发布成功之后,所述方法还包括:将所述第二预设发布比例更改为全流量发布方式;以所述全流量发布方式发布所述功能服务被打tag后的目标工单;其中,所述全流量发布方式为在所述生产阶段,所述功能服务面向所述总目标客户群体进行全体发布的发布方式。
10.可选的,在所述生产模拟阶段,所述方法还包括:
校验不同的目标工单所对应的功能服务之间是否存在先后依赖关系;如果是,则根据所述先后依赖关系,确定不同的目标工单的先后发布顺序。
11.可选的,在所述生产模拟阶段,发布所述功能服务被打tag后的目标工单包括:在所述生产模拟阶段,根据所述先后发布顺序,发布所述功能服务被打tag后的目标工单。
12.可选的,所述第一测试指令和/或所述第二测试指令用于指示对所述功能服务被打tag后的目标工单进行以下测试中的至少一项:基于预先配置的测试用例,对所述功能服务被打tag后的目标工单进行测试;基于所述测试人员的手动测试操作,对所述功能服务被打tag后的目标工单进行测试。
13.第二方面,本发明实施例提供一种流水线式功能服务的发布装置,所述装置应用于软件开发的过程中,所述装置包括:接收模块,用于在软件开发的发布候选阶段,接收测试人员的工单新建指令,其中,所述工单新建指令携带有与目标工单所对应的功能服务相关的配置信息;执行模块,用于根据所述工单新建指令新建所述目标工单;其中,所述目标工单用于指示所述功能服务的配置;接收所述测试人员针对于所述目标工单的审批指令;若所述审批指令为审批通过,则进入软件开发的生产模拟阶段;在所述生产模拟阶段,根据所述测试人员的打标记tag指令,为所述目标工单所对应的功能服务的当前版本打tag,并发布所述功能服务被打tag后的目标工单;接收所述测试人员针对于所述功能服务被打tag后的目标工单的第一测试指令;若所述第一测试指令为测试通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布成功,并进入软件开发的生产阶段;若所述第一测试指令为测试未通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布失败,根据所述测试人员的修改操作,对所述功能服务的相关代码进行修改,并根据所述测试人员的打tag指令,为所述目标工单所对应的功能服务的当前版本重新打tag后,重新发布所述功能服务被打tag后的目标工单,并进入所述接收所述测试人员针对于所述功能服务被打tag后的目标工单的第一测试指令的步骤,直至确定所述功能服务在所述生产模拟阶段的发布结果为发布成功;在所述生产阶段,发布所述功能服务被打tag后的目标工单;接收所述测试人员针对于所述功能服务被打tag后的目标工单的第二测试指令;若所述第二测试指令为测试未通过,则确定所述功能服务在所述生产阶段的发布结果为发布失败,将所述功能服务的当前版本回滚至初始版本;若所述第二测试指令为测试通过,则确定所述功能服务在所述生产阶段的发布结果为发布成功。
14.可选的,所述执行模块,还用于以第一预设发布比例,发布所述功能服务被打tag后的目标工单,并基于所述功能服务的使用情况,判断所述功能服务是否正常发布;如果是,则以第二预设发布比例,发布所述功能服务被打tag后的目标工单。
15.可选的,所述执行模块,还用于在以第二预设发布比例,发布所述功能服务被打
tag后的目标工单之后,基于所述功能服务的使用情况,判断所述功能服务是否正常发布;在所述功能服务正常发布的情况下,所述接收所述测试人员针对于所述功能服务被打tag后的目标工单的第二测试指令包括:接收所述测试人员针对于以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的第二测试指令;确定所述功能服务在所述生产阶段的发布结果为发布成功包括:确定以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的发布结果为发布成功;其中,所述第二预设发布比例大于所述第一预设发布比例;所述第一预设发布比例和所述第二预设发布比例均表示在所述生产阶段,所述功能服务所面向的目标客户群体占总目标客户群体的百分比。
16.可选的,所述执行模块,还用于在确定以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的发布结果为发布成功之后,将所述第二预设发布比例更改为全流量发布方式;以所述全流量发布方式发布所述功能服务被打tag后的目标工单;其中,所述全流量发布方式为在所述生产阶段,所述功能服务面向所述总目标客户群体进行全体发布的发布方式。
17.可选的,所述执行模块,还用于在所述生产模拟阶段,校验不同的目标工单所对应的功能服务之间是否存在先后依赖关系;如果是,则根据所述先后依赖关系,确定不同的目标工单的先后发布顺序。
18.可选的,所述执行模块,还用于在所述生产模拟阶段,根据所述先后发布顺序,发布所述功能服务被打tag后的目标工单。
19.可选的,所述第一测试指令和/或所述第二测试指令用于指示对所述功能服务被打tag后的目标工单进行以下测试中的至少一项:基于预先配置的测试用例,对所述功能服务被打tag后的目标工单进行测试;基于所述测试人员的手动测试操作,对所述功能服务被打tag后的目标工单进行测试。
20.第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的流水线式功能服务的发布方法的步骤。
21.第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的流水线式功能服务的发布方法的步骤。
22.由此,本发明实施例通过建立流水线式发布方法及装置,实现了将各个系统各个人员的发布任务集成至同一平台进行处理;通过对服务发布的发布候选阶段、生产模拟阶段、生产阶段的流程卡点的发布校验,实现了提单、发布、测试的滚动式发布流程;通过对功能服务进行测试,保障了服务发布的质量,减少了服务发布的异常问题;在生产阶段,若第二测试指令为测试未通过,则将功能服务的当前版本回滚至初始版本,以避免影响客户的使用体验;解决了单线程发布风险、多线程并行发布压力的问题,提升了服务发布的效率,提高了项目发布的稳定性。
附图说明
23.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本发明实施例提供的一种流水线式功能服务的发布方法的流程图;图2为本发明实施例提供的一种流水线式功能服务的滚动式发布流程的示意图;图3为本发明实施例提供的一种流水线式功能服务的发布管理大盘的示意图;图4为本发明实施例提供的一种流水线式功能服务的发布方法的流程图;图5为本发明实施例提供的一种流水线式功能服务的发布方式(小流量及全流量)的示意图;图6为本发明实施例提供的一种不同测试方式的示意图;图7为本发明实施例提供的一种流水线式功能服务的发布装置的结构框图;图8为本发明实施例提供的一种电子设备的结构框图。
具体实施方式
24.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
25.图1示出了根据本发明实施例提供的一种流水线式功能服务的发布方法的流程图,方法应用于软件开发的过程中,如图1所示,方法包括:步骤s101、在软件开发的发布候选阶段,接收测试人员的工单新建指令;其中,工单新建指令携带有与目标工单所对应的功能服务相关的配置信息;步骤s102、根据工单新建指令新建目标工单;其中,目标工单用于指示功能服务的配置;步骤s103、接收测试人员针对于目标工单的审批指令;若审批指令为审批通过,则进入软件开发的生产模拟阶段;步骤s104、在生产模拟阶段,根据测试人员的打tag指令,为目标工单所对应的功能服务的当前版本打tag,并发布功能服务被打tag后的目标工单;步骤s105、接收测试人员针对于功能服务被打tag后的目标工单的第一测试指令;步骤s106、若第一测试指令为测试通过,则确定功能服务在生产模拟阶段的发布结果为发布成功,并进入软件开发的生产阶段;步骤s107、若第一测试指令为测试未通过,则确定功能服务在生产模拟阶段的发布结果为发布失败,根据测试人员的修改操作,对功能服务的相关代码进行修改;并返回执行步骤s104,直至确定功能服务在生产模拟阶段的发布结果为发布成功;具体为根据测试人员的打tag指令,为目标工单所对应的功能服务的当前版本重新打tag后,重新发布功能服务被打tag后的目标工单,并进入接收测试人员针对于功能服务被打tag后的目标工单的第一测试指令的步骤,直至确定功能服务在生产模拟阶段的发布结果为发布成功;
步骤s108、在生产阶段,发布功能服务被打tag后的目标工单;步骤s109、接收测试人员针对于功能服务被打tag后的目标工单的第二测试指令;步骤s1010、若第二测试指令为测试未通过,则确定功能服务在生产阶段的发布结果为发布失败,将功能服务的当前版本回滚至初始版本;步骤s1011、若第二测试指令为测试通过,则确定功能服务在生产阶段的发布结果为发布成功。
26.由此,本发明实施例提供了一种滚动式发布流水线平台管理的方法,方法可应用于结算领域、基础服务领域,通过建立滚动式发布流水线系统,实现将各个系统各个人员的发布任务集成至同一平台进行处理,统一部署至云服务器上;通过对服务发布的rc阶段、stage阶段、生产阶段的流程卡点发布校验,实现了提单、发布、测试的滚动式发布流程,同时流程之间进行依赖校验,保障服务发布质量,解决了单线程发布风险、多线程并行发布压力的问题,提升发布服务效率;减少服务发布异常问题,滚动式发布提升了开发、测试的操作效率,提高了项目发布的稳定性。
27.需要说明的是,图1所示的方法可应用于图2所示的滚动式发布流程中, 在图2所示的发布流程中,各个系统对应不同的研发人员,研发人员需将服务从主机发布至滚动式流水线发布平台,然后再统一部署至云服务器上。滚动式流水线发布平台实现了服务代码的集成式上线。此外,在滚动式流水线发布平台中,实现了“提单”、“发布”、“测试”、“发版”的滚动式发布方法,某流程执行出错后,立即回滚至上一流程,整个滚动式流程不断循环前进发布,最终实现达成“例行版本”的健康稳定状态。
28.图3示出了一种流水线式功能服务的发布管理大盘,如图3所示,功能服务的发布主要分为3个阶段,即rc阶段(release candidate,发布候选阶段)、stage阶段(生产模拟阶段)和生产阶段。在rc阶段,各个功能服务在自己对应的分支上进行发布、测试,且互相独立操作。在rc阶段主要进行mr分支合并、rc分支合并及审批,在审批通过后,进入stage阶段,在审批驳回后,此阶段被驳回。在stage阶段的数据和生产阶段的数据相同,但在stage阶段的实际操作不会影响到用户,也不会影响到生产环境的数据变化。在stage阶段主要进行以下方面:master打tag、配置发布、云服务器a发布和云服务器b发布。需要说明的是,在具体的应用场景中,可实现两台服务器的顺序式发布,且可兜底保证服务发布不受影响。在生产阶段完成后,功能服务实现最终上线,可面向用户使用,生产阶段主要包括如下方面:配置发布、云服务器a发布和云服务器b发布,云服务器b发布完成后,实现最终发布成功。
29.以图2和图3为基础,对具体的流水线式功能服务的发布流程进行介绍,具体如图4所示。
30.在rc阶段,主要进行一键完成工单建立以及建立后的工单审批自动流转的操作,即在审批通过后流转到stage阶段,在审批驳回后,工单自动关闭,需要进行工单重建(与图1所示的步骤s101~步骤s103相对应)。
31.在stage阶段,对rc阶段审批通过后的工单打tag,打tag后进行发布操作,且在发布操作完成后,测试人员进行测试操作,若测试通过,则流转到生产阶段,若测试不通过,则驳回至打tag阶段,根据测试人员的修改操作,对功能服务的相关代码进行修改,并为目标工单所对应的功能服务的当前版本重新打tag后,重新发布功能服务被打tag后的目标工单,并重新进行测试,直至通过测试(与图1所示的步骤s104~步骤s107对应)。
32.且在一种可能的实现方式中,在生产模拟阶段,方法还包括:校验不同的目标工单所对应的功能服务之间是否存在先后依赖关系;如果是,则根据先后依赖关系,确定不同的目标工单的先后发布顺序。在生产模拟阶段,发布功能服务被打tag后的目标工单包括:在生产模拟阶段,根据先后发布顺序,发布功能服务被打tag后的目标工单。
33.需要说明的是,系统可校验服务之间是否存在发布依赖关系,并根据发布依赖关系匹配发布顺序。例如:服务a、服务b同时发布,若服务a和服务b不存在依赖关系,则两服务可并行发布,无先后顺序;若服务a和服务b存在依赖关系,且服务a需在服务b前发布,则系统对服务发布进行排序,服务a发布后、服务b才可以发布。由此,通过匹配发布顺序的方法,将服务按照系统实际依赖关系进行先后发布的操作,保证服务发布不受影响。
34.在生产阶段,在一种可能的实现方式中,发布功能服务被打tag后的目标工单包括:以第一预设发布比例,发布功能服务被打tag后的目标工单,并基于功能服务的使用情况,判断功能服务是否正常发布;如果是,则以第二预设发布比例,发布功能服务被打tag后的目标工单。
35.在以第二预设发布比例,发布功能服务被打tag后的目标工单之后,方法还包括:基于功能服务的使用情况,判断功能服务是否正常发布;在功能服务正常发布的情况下,接收测试人员针对于以第二预设发布比例发布的功能服务被打tag后的目标工单的第二测试指令,确定以第二预设发布比例发布的功能服务被打tag后的目标工单的发布结果为发布成功;其中,第二预设发布比例大于第一预设发布比例;第一预设发布比例和第二预设发布比例均表示在生产阶段,功能服务所面向的目标客户群体占总目标客户群体的百分比。
36.在一种可能的实现方式中,确定以第二预设发布比例发布的功能服务被打tag后的目标工单的发布结果为发布成功之后,方法还包括:将第二预设发布比例更改为全流量发布方式;以全流量发布方式发布功能服务被打tag后的目标工单;其中,全流量发布方式为在生产阶段,功能服务面向总目标客户群体进行全体发布的发布方式。
37.需要说明的是,在生产阶段,发布人员先进行小流量发布,再进行全流量发布。具体地发布方式如图5所示。在小流量发布中,先调节发布百分比为p(例如:在生产阶段,功能服务所面向的目标客户群体占总目标客户群体的百分比为20%),观测实际发布效果,若正常发布则继续调节发布百分比为q(例如:在生产阶段,功能服务所面向的目标客户群体占总目标客户群体的百分比为40%),观测发布效果,若不能正常发布则直接驳回,其中,q>p。且小流量发布阶段的调节次数可根据服务的实际情况由系统自动指定,即系统自动调节发布百分比,随发布比例上升持续观测发布变化并进行测试,若测试未通过则回滚至初始版本,以避免影响用户的正常使用。在测试通过后进行全流量发布,发布比例为100%,即面向总目标客户群体进行发布。若全流量发布完成后仍需要退回初始版本,则可执行回滚操作,根据需要选择回滚的初始版本进行回滚流程。
38.在具体的应用场景中,以结算领域为例,税率变更会影响客户的生产成本费用,由于政策变化而导致税率发生增减时,结算系统需要调整最新税率、同时校验公式计算的准确性。因此,在发布工单时,先进行小流量发布,观测生产环境中的测试账号、数据计算是否有问题。需要说明的是,一般该类测试账号不对客使用,为内部使用。该类测试账号和生产中的其他账号使用模式完全相同,小流量发布中能够基于真实反馈的数据情况监测发布的准确性。若小流量发布有问题,则立刻进行“驳回”发布,系统回滚至初始版本。且为避免客
户资损,系统进行“回滚式发布”:即逐步放开流量、逐步发布;再逐步放开流量、再逐步发布的流程。
39.再以基础服务领域为例,企业内部的功能变更往往针对不同部门,例如企业内组织架构变化,会影响商务岗员工的拓客关系。针对此种情况,发布工单时先进行小流量发布,观测商务岗员工的拓客关系数据是否准确,确定无误后(即正常发布后),再进行测试,测试通过后再进行全流量发布。
40.需要说明的是,如图6所示,测试阶段中,系统和测试专家可并行测试,输出测试结论,与图1所示的方法相对应,即:第一测试指令和/或第二测试指令用于指示对功能服务被打tag后的目标工单进行以下测试中的至少一项:基于预先配置的测试用例,对所述功能服务被打tag后的目标工单进行测试;基于所述测试人员的手动测试操作,对所述功能服务被打tag后的目标工单进行测试。也就是说,系统可执行测试用例,输出自动化测试结果,测试专家可手动测试系统功能、接口响应性等,测试专家基于“系统”+“人工”的测试结果,输出最终测试意见。
41.由此,本发明实施例提供了一种滚动式发布流水线平台管理的方法,可应用于结算服务领域和基础服务领域,实现了将各个系统、各个人员的发布任务集成至同一平台进行处理,统一部署至云服务器上;通过对服务发布的发布候选阶段、生产模拟阶段以及生产阶段的流程卡点发布校验,实现了提单、发布、测试的滚动式发布流程;实现了发布关系的自动校验和服务发布的排序、测试和回滚的自动化操作;且具备扩展性强、易于维护、结构简单、理解成本低以及支持运营页面操作等优点。
42.进一步地,本发明实施例可实现服务的发布、测试的一站式操作,系统可自动进行服务依赖校验,规避发布故障,同时滚动式发布流程可提升服务发布的稳定性,且滚动式发布系统在实现代码统一审批后发布,可保障发布质量,支持自动化的发布依赖校验,自动分配服务发布顺序,例如:按队列关系进行发布,可保障发布的有序性,且通过建立系统和专家人员的并行测试,可提升发布效率并保障发布质量。
43.本发明实施例还提供一种流水线式功能服务的发布装置,如图7所示,装置应用于软件开发的过程中,装置70包括:接收模块701,用于在软件开发的发布候选阶段,接收测试人员的工单新建指令,其中,工单新建指令携带有与目标工单所对应的功能服务相关的配置信息;执行模块702,用于根据工单新建指令新建目标工单;其中,目标工单用于指示功能服务的配置;接收测试人员针对于目标工单的审批指令;若审批指令为审批通过,则进入软件开发的生产模拟阶段;在生产模拟阶段,根据测试人员的打标记tag指令,为目标工单所对应的功能服务的当前版本打tag,并发布功能服务被打tag后的目标工单;接收测试人员针对于功能服务被打tag后的目标工单的第一测试指令;若第一测试指令为测试通过,则确定功能服务在生产模拟阶段的发布结果为发布成功,并进入软件开发的生产阶段;若第一测试指令为测试未通过,则确定功能服务在生产模拟阶段的发布结果为发布失败,根据测试人员的修改操作,对功能服务的相关代码进行修改,并根据测试人员的打tag指令,为目标工单所对应的功能服务的当前版本重新打tag后,重新发布功能服务被打tag后的目标工单,并进入接收测试人员针对于功能服务被打tag后的目标工单的第一测试
指令的步骤,直至确定功能服务在生产模拟阶段的发布结果为发布成功;在生产阶段,发布功能服务被打tag后的目标工单;接收测试人员针对于功能服务被打tag后的目标工单的第二测试指令;若第二测试指令为测试未通过,则确定功能服务在生产阶段的发布结果为发布失败,将功能服务的当前版本回滚至初始版本;若第二测试指令为测试通过,则确定功能服务在生产阶段的发布结果为发布成功。
44.在一种可能的实现方式中,执行模块702,还用于以第一预设发布比例,发布功能服务被打tag后的目标工单,并基于功能服务的使用情况,判断功能服务是否正常发布;如果是,则以第二预设发布比例,发布功能服务被打tag后的目标工单。
45.在一种可能的实现方式中,执行模块702,还用于在以第二预设发布比例,发布功能服务被打tag后的目标工单之后,基于功能服务的使用情况,判断功能服务是否正常发布;在功能服务正常发布的情况下,接收测试人员针对于功能服务被打tag后的目标工单的第二测试指令包括:接收测试人员针对于以第二预设发布比例发布的功能服务被打tag后的目标工单的第二测试指令;确定功能服务在生产阶段的发布结果为发布成功包括:确定以第二预设发布比例发布的功能服务被打tag后的目标工单的发布结果为发布成功;其中,第二预设发布比例大于第一预设发布比例;第一预设发布比例和第二预设发布比例均表示在生产阶段,功能服务所面向的目标客户群体占总目标客户群体的百分比。
46.在一种可能的实现方式中,执行模块702,还用于在确定以第二预设发布比例发布的功能服务被打tag后的目标工单的发布结果为发布成功之后,将第二预设发布比例更改为全流量发布方式;以全流量发布方式发布功能服务被打tag后的目标工单;其中,全流量发布方式为在生产阶段,功能服务面向总目标客户群体进行全体发布的发布方式。
47.在一种可能的实现方式中,执行模块702,还用于在生产模拟阶段,校验不同的目标工单所对应的功能服务之间是否存在先后依赖关系;如果是,则根据先后依赖关系,确定不同的目标工单的先后发布顺序。
48.在一种可能的实现方式中,执行模块702,还用于在生产模拟阶段,根据先后发布顺序,发布功能服务被打tag后的目标工单。
49.在一种可能的实现方式中,第一测试指令和/或第二测试指令用于指示对功能服务被打tag后的目标工单进行以下测试中的至少一项:基于预先配置的测试用例,对功能服务被打tag后的目标工单进行测试;基于测试人员的手动测试操作,对功能服务被打tag后的目标工单进行测试。
50.由此,本发明实施例提供了一种滚动式发布流水线平台管理的方法,针对结算领域、基础服务领域,通过建立滚动式发布流水线系统,实现将各个系统各个人员的发布任务集成至同一平台进行处理,统一部署至云服务器上。通过对服务发布的rc阶段、stage阶段、生产阶段的流程卡点发布校验,实现了提单、发布、测试的滚动式发布流程,同时流程之间进行依赖校验,保障服务发布质量,解决了单线程发布风险、多线程并行发布压力的问题,提升发布服务效率。减少服务发布异常问题,滚动式发布提升了开发、测试的操作效率,提高了项目发布的稳定性。
51.本发明实施例还提供一种电子设备80,如图8所示,包括:处理器801、存储器802及存储在存储器802上并可在处理器801上运行的程序,程序被处理器执行时实现如上述实施例所示的流水线式功能服务的发布方法的步骤。
52.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
53.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
54.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
55.上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

技术特征:
1.一种流水线式功能服务的发布方法,其特征在于,所述方法应用于软件开发的过程中,所述方法包括:在软件开发的发布候选阶段,接收测试人员的工单新建指令,其中,所述工单新建指令携带有与目标工单所对应的功能服务相关的配置信息;根据所述工单新建指令新建所述目标工单;其中,所述目标工单用于指示所述功能服务的配置;接收所述测试人员针对于所述目标工单的审批指令;若所述审批指令为审批通过,则进入软件开发的生产模拟阶段;在所述生产模拟阶段,根据所述测试人员的打标记tag指令,为所述目标工单所对应的功能服务的当前版本打tag,并发布所述功能服务被打tag后的目标工单;接收所述测试人员针对于所述功能服务被打tag后的目标工单的第一测试指令;若所述第一测试指令为测试通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布成功,并进入软件开发的生产阶段;若所述第一测试指令为测试未通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布失败,根据所述测试人员的修改操作,对所述功能服务的相关代码进行修改,并根据所述测试人员的打tag指令,为所述目标工单所对应的功能服务的当前版本重新打tag后,重新发布所述功能服务被打tag后的目标工单,并进入所述接收所述测试人员针对于所述功能服务被打tag后的目标工单的第一测试指令的步骤,直至确定所述功能服务在所述生产模拟阶段的发布结果为发布成功;在所述生产阶段,发布所述功能服务被打tag后的目标工单;接收所述测试人员针对于所述功能服务被打tag后的目标工单的第二测试指令;若所述第二测试指令为测试未通过,则确定所述功能服务在所述生产阶段的发布结果为发布失败,将所述功能服务的当前版本回滚至初始版本;若所述第二测试指令为测试通过,则确定所述功能服务在所述生产阶段的发布结果为发布成功。2.根据权利要求1所述的方法,其特征在于,在所述生产阶段,发布所述功能服务被打tag后的目标工单包括:以第一预设发布比例,发布所述功能服务被打tag后的目标工单,并基于所述功能服务的使用情况,判断所述功能服务是否正常发布;如果是,则以第二预设发布比例,发布所述功能服务被打tag后的目标工单。3.根据权利要求2所述的方法,其特征在于,在以第二预设发布比例,发布所述功能服务被打tag后的目标工单之后,所述方法还包括:基于所述功能服务的使用情况,判断所述功能服务是否正常发布;在所述功能服务正常发布的情况下,所述接收所述测试人员针对于所述功能服务被打tag后的目标工单的第二测试指令包括:接收所述测试人员针对于以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的第二测试指令;确定所述功能服务在所述生产阶段的发布结果为发布成功包括:确定以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的发布结果
为发布成功;其中,所述第二预设发布比例大于所述第一预设发布比例;所述第一预设发布比例和所述第二预设发布比例均表示在所述生产阶段,所述功能服务所面向的目标客户群体占总目标客户群体的百分比。4.根据权利要求3所述的方法,其特征在于,确定以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的发布结果为发布成功之后,所述方法还包括:将所述第二预设发布比例更改为全流量发布方式;以所述全流量发布方式发布所述功能服务被打tag后的目标工单;其中,所述全流量发布方式为在所述生产阶段,所述功能服务面向所述总目标客户群体进行全体发布的发布方式。5.根据权利要求1所述的方法,其特征在于,在所述生产模拟阶段,所述方法还包括:校验不同的目标工单所对应的功能服务之间是否存在先后依赖关系;如果是,则根据所述先后依赖关系,确定不同的目标工单的先后发布顺序。6.根据权利要求5所述的方法,其特征在于,在所述生产模拟阶段,发布所述功能服务被打tag后的目标工单包括:在所述生产模拟阶段,根据所述先后发布顺序,发布所述功能服务被打tag后的目标工单。7.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一测试指令和/或所述第二测试指令用于指示对所述功能服务被打tag后的目标工单进行以下测试中的至少一项:基于预先配置的测试用例,对所述功能服务被打tag后的目标工单进行测试;基于所述测试人员的手动测试操作,对所述功能服务被打tag后的目标工单进行测试。8.一种流水线式功能服务的发布装置,其特征在于,所述装置应用于软件开发的过程中,所述装置包括:接收模块,用于在软件开发的发布候选阶段,接收测试人员的工单新建指令,其中,所述工单新建指令携带有与目标工单所对应的功能服务相关的配置信息;执行模块,用于根据所述工单新建指令新建所述目标工单;其中,所述目标工单用于指示所述功能服务的配置;接收所述测试人员针对于所述目标工单的审批指令;若所述审批指令为审批通过,则进入软件开发的生产模拟阶段;在所述生产模拟阶段,根据所述测试人员的打标记tag指令,为所述目标工单所对应的功能服务的当前版本打tag,并发布所述功能服务被打tag后的目标工单;接收所述测试人员针对于所述功能服务被打tag后的目标工单的第一测试指令;若所述第一测试指令为测试通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布成功,并进入软件开发的生产阶段;若所述第一测试指令为测试未通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布失败,根据所述测试人员的修改操作,对所述功能服务的相关代码进行修改,并根据所述测试人员的打tag指令,为所述目标工单所对应的功能服务的当前版本重新打tag后,重新发布所述功能服务被打tag后的目标工单,并进入所述接收所述测试人员针对于所
述功能服务被打tag后的目标工单的第一测试指令的步骤,直至确定所述功能服务在所述生产模拟阶段的发布结果为发布成功;在所述生产阶段,发布所述功能服务被打tag后的目标工单;接收所述测试人员针对于所述功能服务被打tag后的目标工单的第二测试指令;若所述第二测试指令为测试未通过,则确定所述功能服务在所述生产阶段的发布结果为发布失败,将所述功能服务的当前版本回滚至初始版本;若所述第二测试指令为测试通过,则确定所述功能服务在所述生产阶段的发布结果为发布成功。9.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至7中任一项所述的流水线式功能服务的发布方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的流水线式功能服务的发布方法的步骤。

技术总结
本发明提供一种流水线式功能服务的发布方法、装置、设备及介质,方法包括:在发布候选阶段,接收测试人员的工单新建指令,以新建目标工单,接收测试人员的审批指令,若审批通过,则进入生产模拟阶段,根据测试人员的打tag指令打tag,并发布功能服务被打tag后的目标工单,对其进行测试,测试通过后确定功能服务在生产模拟阶段的发布结果为发布成功,进入生产阶段并发布打tag后的目标工单,对其进行测试,若测试未通过则确定发布失败,将功能服务的当前版本回滚至初始版本,若测试通过则确定功能服务在生产阶段的发布结果为发布成功。由此,提高了服务发布的效率,保障了服务发布的稳定性。性。性。


技术研发人员:张世淼
受保护的技术使用者:云账户技术(天津)有限公司
技术研发日:2023.09.12
技术公布日:2023/10/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐