CN112099805A - 一种发布应用的方法、装置、电子设备及存储介质 - Google Patents

一种发布应用的方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112099805A
CN112099805A CN202010803401.6A CN202010803401A CN112099805A CN 112099805 A CN112099805 A CN 112099805A CN 202010803401 A CN202010803401 A CN 202010803401A CN 112099805 A CN112099805 A CN 112099805A
Authority
CN
China
Prior art keywords
nailing
release
work order
application
application code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010803401.6A
Other languages
English (en)
Inventor
张志道
马斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Euler Information Services Co ltd
Original Assignee
Euler Information Services Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Euler Information Services Co ltd filed Critical Euler Information Services Co ltd
Priority to CN202010803401.6A priority Critical patent/CN112099805A/zh
Publication of CN112099805A publication Critical patent/CN112099805A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种发布应用的方法、装置、电子设备及存储介质,涉及通信技术领域。所述方法包括:接收钉钉服务器发送的工单提交提示,获取需要发布的应用代码;将应用代码自行更替到测试环境下对应的位置,并向钉钉机器人发送通知提示,在应用代码更替完成后,向钉钉的机器人发送完成提示。本发明的发布应用方法,不再需要依靠电话、或者钉钉语音文字进行沟通协作,也不再需要手动更替应用代码以及随时查看更替进度,应用代码可以自动完成更替并且自动将更替过程的状态信息反馈于相关人员的钉钉客户端。综合整个研发、运维、测试、生产的过程,相较于目前的工作流程,提高工作人员工作效率的效果即为明显,具有较高的实用性。

Description

一种发布应用的方法、装置、电子设备及存储介质
技术领域
本发明涉及通信技术领域,尤其涉及一种发布应用的方法、装置、电子设备及存储介质。
背景技术
目前钉钉已经被广泛应用到日常的工作当中,其中应用比较多的就是发布通知消息,简单、快捷。并且钉钉也支持了很多第三方小程序等应用,更加增强了其产品应用在工作当中的粘合度。
目前从事程序研发、运维、测试、生产发布等类型的企业,大多数都使用钉钉来作为办公工具,其方便了研发人员、运维人员、测试人员以及生产发布人员或者团队之间的沟通协作。
但目前基于钉钉的日常沟通协作中,除了使得上述工作人员或者团队之间语言、文字、会议等交流更加便捷,提高了沟通效率外,在其他方面并没有提高工作人员或者团队的工作效率。
例如:研发人员上线发布研发,运维人员更替、发布,测试人员进行测试等,依旧还是靠电话、或者钉钉私聊进行,整体来说沟通协作成本较高,并且效率偏低。而且每个流程成功与否还需要人工在钉钉中通知,占用工作人员大量时间和精力,严重拉低了工作人员的工作效率。
发明内容
本发明提供的一种发布应用的方法、装置、电子设备及存储介质,解决了上述问题。
为了解决上述技术问题,本发明实施例提供了一种发布应用的方法,所述方法包括:
接收钉钉服务器发送的工单提交提示,所述工单提交提示包括需要发布的应用代码所在的模块、分支;
根据所述应用代码所在的模块、分支,从代码库服务器中获取所述应用代码;
将所述应用代码自行更替到测试环境下对应的位置,并向钉钉机器人发送通知提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送测试发布进行中的提示信息;
在所述应用代码更替完成后,向钉钉的机器人发送完成提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送测试发布完成的提示信息。
可选地,所述方法还包括:
向所述钉钉机器人发送测试发布日志地址,以使所述钉钉机器人向接收到工单的钉钉客户端发送所述测试发布日志地址,所述测试发布日志地址用于供所述钉钉客户端的用户查看所述测试环境下所述应用代码的发布流水线。
可选地,在向钉钉的机器人发送完成提示之后,所述方法还包括:
接收所述钉钉服务器发送的生产发布指示,所述生产发布指示为将所述应用代码更替到生产环境下对应的模块、分支的指示;
将所述应用代码自行更替到生产环境下对应的位置,并向所述钉钉机器人发送通知提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送生产发布进行中的提示信息;
在所述应用代码更替完成后,向所述钉钉的机器人发送完成提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送生产发布完成的提示信息。
可选地,所述方法还包括:
向所述钉钉机器人发送生产发布日志地址,以使所述钉钉机器人向接收到工单的钉钉客户端发送所述生产发布日志地址,所述生产发布日志地址用于供所述钉钉客户端的用户查看所述生产环境下所述应用代码的发布流水线。
可选地,所述生产发布指示中包括:小流量发布指示或者全流量发布指示;所述生成环境下由多个模块、分支支撑同一功能,每一个模块、分支均可单独支撑一个功能;将所述应用代码自行更替到生产环境下对应的位置,包括:
根据所述小流量发布指示,将所述应用代码自行更替到一个或者多个模块、分支的对应位置;
根据所述全流量发布指示,将所述应用代码自行更替到所有模块、分支的对应位置。
本发明实施例还提供了一种发布应用的装置,所述装置包括:
接收工单提交模块,用于接收钉钉服务器发送的工单提交提示,所述工单提交提示包括需要发布的应用代码所在的模块、分支;
获取模块,用于根据所述应用代码所在的模块、分支,从代码库服务器中获取所述应用代码;
测试环境更替模块,用于将所述应用代码自行更替到测试环境下对应的位置,并向钉钉机器人发送通知提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送测试发布进行中的提示信息;
发送测试环境完成提示模块,用于在所述应用代码更替完成后,向钉钉的机器人发送完成提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送测试发布完成的提示信息。
可选地,所述装置还包括:
发送测试发布日志模块,用于向所述钉钉机器人发送测试发布日志地址,以使所述钉钉机器人向接收到工单的钉钉客户端发送所述测试发布日志地址,所述测试发布日志地址用于供所述钉钉客户端的用户查看所述测试环境下所述应用代码的发布流水线。
可选地,所述装置还包括:
接收生产发布模块,用于接收所述钉钉服务器发送的生产发布指示,所述生产发布指示为将所述应用代码更替到生产环境下对应的模块、分支的指示;
生产环境更替模块,用于将所述应用代码自行更替到生产环境下对应的位置,并向所述钉钉机器人发送通知提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送生产发布进行中的提示信息;
发送生产环境完成提示模块,用于在所述应用代码更替完成后,向所述钉钉的机器人发送完成提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送生产发布完成的提示信息。
可选地,所述装置还包括:
发送生产发布日志模块,用于向所述钉钉机器人发送生产发布日志地址,以使所述钉钉机器人向接收到工单的钉钉客户端发送所述生产发布日志地址,所述生产发布日志地址用于供所述钉钉客户端的用户查看所述生产环境下所述应用代码的发布流水线。
可选地,所述生产发布指示中包括:小流量发布指示或者全流量发布指示;所述生成环境下由多个模块、分支支撑同一功能,每一个模块、分支均可单独支撑一个功能;所述测试环境更替模块包括:
小流量更替单元,用于根据所述小流量发布指示,将所述应用代码自行更替到一个或者多个模块、分支的对应位置;
全流量更替单元,用于根据所述全流量发布指示,将所述应用代码自行更替到所有模块、分支的对应位置。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明以上任一所述的方法中的步骤。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本发明以上任一所述的方法中的步骤。
采用本发明提供的发布应用的方法,接收工单提交指示,按照工单提交指示中的应用代码所在的模块、分支,获取需要发布的应用代码后,只需按照工单提交指示中的应用代码所在的模块、分支,即可将应用代码自行更替到测试环境下对应的位置,更替开始及时向钉钉机器人发送通知提示,以使钉钉机器人向接收到工单的钉钉客户端发送测试发布进行中的提示信息,而在应用代码更替完成后,也向钉钉的机器人发送完成提示,以使钉钉机器人向接收到工单的钉钉客户端发送测试发布完成的提示信息。
本发明的发布应用方法,由于工单提交指示中已经指明应用代码所在的模块、分支,因此相关工作人员不再需要依靠电话、或者钉钉语音文字进行沟通协作,也不再需要手动更替应用代码以及随时查看更替进度,应用代码可以自动完成更替并且自动将更替过程的状态信息反馈于相关人员的钉钉客户端,使得工作人员直观知晓应用代码更替状态信息,本发明的发布应用方法将应用代码自动发布的过程与钉钉系统、工单流程、钉钉机器人结合,由工单流程触发应用代码自动发布,并自行反馈相关信息于钉钉客户端,完全不同于目前的操作流程,极大节省了工作人员的时间和精力,提高了工作人员的工作效率,具有较高的实用性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是目前运维人员工作的流程图;
图2是本发明实施例一种发布应用的方法的流程图;
图3是本发明实施例一种发布应用的装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明人发现目前研发人员上线发布研发,运维人员更替、发布,测试人员进行测试等,依旧还是靠电话、或者钉钉私聊进行,整体来说沟通协作成本较高,并且效率偏低。而且每个流程成功与否还需要人工在钉钉中通知,占用工作人员大量时间和精力,严重拉低了工作人员的工作效率。
即使借助钉钉已有的工单流程,也只能做到及时使得流程相关的人或者群组收到消息,但是具体的操作过程中还是需要相关工作人员电话沟通、文字交流、手动操作等。
发明人进一步研究发现,目前各个流程中运维人员的工作效率比较低下,导致效率低下的主要原因是其工作需要大量的手动操作以及额外的电话、语音文字沟通,占用了大量的时间。
首先研发人员研发新应用代码,研发好的新应用代码需要经过测试才可以生产发布。这里需要说明的是,研发新应用代码包括:全新的应用代码,其可以实现一个全新的功能,甚至是一个全新的软件程序;也可以只是对已有软件程序的更新,该更新可能是为了消除bug,也可能是为了增强某些功能等,但无论是哪种情况,都需要研发人员研发新应用代码。
一般情况下,新应用代码的测试需要在测试环境下进行,所谓测试环境是指:UAT(User Acceptance Test,用户接受度测试)环境,其克隆一份生产环境的配置,新应用代码在UAT环境工作不正常,那么肯定不能把它发布到生产机上,即肯定不能进入生产环境。
研发人员研发新应用代码后将新应用代码放在服务器中,同时填写工单,提交上线工单后,该工单按照流程会通知到运维人员,运维人员接收到该工单后,需要电话或者语音文字等方式与研发人员确认新应用代码的位置,即新应用代码更替哪个模块,模块中哪个分支的旧应用代码。在确认好了之后,运维人员需要手动将旧应用代码更替为新应用代码,例如:运维人员需要找到正确的模块、分支,再将旧应用代码更替为新应用代码,并且在更替过程中运维人员还需要不停的查看更替进度,同时运维人员还需要通过钉钉人工通知相关人员目前处于新应用代码更替中状态,即UAT环境发布中状态。在更替完成后,运维人员还需要通过钉钉人工通知相关人员目前处于新应用代码更替完成状态,即UAT环境发布完成状态。
UAT环境发布完成后,就需要测试人员进行UAT环境测试,若是测试结果符合预期目标,则再次通知运维人员进行生产环境发布,运维人员还需要重复和UAT环境发布一样的繁琐步骤,才可以完成生产环境发布。
而在生产环境发布过程中还分两种情况,假若新应用代码是全量发布,则运维人员需要手动更替全部旧应用代码,同时还要通过钉钉通知状态信息(发布中状态或者是发布完成状态)工作量十分繁重。需要说明的是,所谓全量发布是指将就应用代码全部更替为新应用代码,一般情况下,支撑同一个功能的模块会有多个,即有多个模块冗余使用来支撑一个模块实现其功能,因此一个新应用代码在全量发布时,就需要将支撑同一功能的所有模块中对应的旧应用代码更替掉。
而假若新应用代码是小流量发布,则运维人员只将支撑同一功能的部分模块中对应的旧应用代码更替掉,当然此过程中依然需要通过钉钉通知状态信息。在小流量发布完成之后,此时支撑同一功能的所有模块中,一部分是新应用代码的模块,剩余部分是旧应用代码的模块,一种直观展现出来的示例:某些用户使用打车APP时出现了新的功能,而另外一些用户使用打车APP时却并没有出现新的功能,即此时会有新、旧功能同时存在的可能,而开发打车APP的公司在这段时间内可以收集使用新功能的用户的反馈意见,决定是否全面推广该功能,或者再次改进该功能。
若小流量发布完成之后的反馈结果达到预期目标,则需要再次通知运维人员进行全流量发布,那么运维人员又需要重复上述复杂的过程将剩余还未更替的旧应用代码进行更替,当然此过程中依然需要通过钉钉通知状态信息。
以生产环境下运维人员的工作流程为例,参照图1,示出了目前运维人员工作的流程图:
研发人员提交上线工单,工单流转到运维人员处,运维人员首先人工通知相关人员或者群组准备UAT环境发布,运维人员手动更替UAT环境下应用代码,同时人工通知相关人员或者群组UAT环境下应用代码发布的状态信息(例如更替进度等),发布完成后,运维人员人工通知相关人员或者群组UAT环境下应用代码发布完成,工单流转到测试人员处。
测试人员进行测试,没有问题后点击同意,若有问题则点击拒绝,工单流程结束。在点击同意后,工单再次流转到运维人员处。运维人员再次人工通知相关人员或者群组准备生产环境发布,运维人员根据是否为全流量发布,进行不同操作。
若是全流量发布,运维人员手动更替生产环境下应用代码至所有对应的模块、分支,同时人工通知相关人员或者群组生产环境下应用代码发布的状态信息(例如更替进度、全流量发布等),发布完成后,运维人员人工通知相关人员或者群组生产环境下应用代码全流量发布完成,工单结束。
若不是全流量发布,则为小流量发布,运维人员手动更替生产环境下应用代码至部分对应的模块、分支,同时人工通知相关人员或者群组生产环境下应用代码发布的状态信息(例如更替进度、小流量发布等),发布完成后,运维人员人工通知相关人员或者群组生产环境下应用代码小流量发布完成,等小流量发布后,若没有问题,则再次通知运维人员进行全流量发布,运维人员再次手动更替生产环境下应用代码至其余对应的模块、分支,同时人工通知相关人员或者群组生产环境下应用代码发布的状态信息(例如更替进度、全流量发布等),发布完成后,运维人员人工通知相关人员或者群组生产环境下应用代码全流量发布完成,工单结束。
综上所述,可以知晓,运维人员的工作需要大量的手动操作,不但操作繁琐,并且整个过程中还需要额外沟通,随时查看发布进度,及时发布状态信息,沟通协作成本较高,势必占用运维人员大量时间和精力,造成运维人员工作效率低下。
针对上述问题,发明人经过深入研究,创造性的提出本发明的发布应用的方法。以下对本发明的方案进行具体解释和说明。
图2示出了本发明实施例一种发布应用的方法的流程图,发布应用方法包括如下步骤:
步骤101:接收钉钉服务器发送的工单提交指示,工单提交指示包括需要发布的应用代码所在的模块、分支。
本发明实施例中,首先研发人员写好需要发布的应用代码后,需要上传至代码库服务器,即,代码库服务器中存储有所有需要发布的应用代码,而这些应用代码在代码库服务器中会按照其所在模块、分支的位置进行分类存储,以保证本地服务器可以准确、快速的从代码库服务器中获取到对应的需要发布的应用代码,本地服务器可以获取到需要发布的应用代码。但此时需要发布的应用代码是存储在代码库服务器,本地服务器没有获取到自然还不能进行更替。本发明实施例中的本地服务器指代支撑应用程序运行的服务器,例如:开发打车APP的公司使用的负责打车APP远行的服务器,开发微信的腾讯公司旗下的负责微信运行的服务器等,均称之为本地服务器。
研发人员写好应用代码并上传代码库服务器后,还需要填写工单。需要说明的是,发明人基于目前的钉钉开源部分,有针对性的设计出一套适用于研发、运维、测试以及生产发布的工单模板、流程。研发人员在填写工单时,除了常规的工单内容之外,还需要将应用代码所在的模块、分支填写在工单中,由于工单是针对性设计的,所以其模板中自然会有所有模块、分支的选项,当然也可以由研发人员自行填写,只要能使得代码库服务器和本地服务器可以明确应用代码所处的模块、分支即可。
需要说明的是,一般情况下,用户使用的各种应用程序都是由底层代码实现其功能,数量庞大的代码可以按照功能不同划分多个模块,一个完整的应用程序需要有很多个模块共同协作才可以支撑整个应用程序的运作。而每个模块中又会包括很多条分支,每一条分支支撑其所在模块的一小部分功能,共同协作实现其所在模块的功能。以打车APP为例:
实现整个APP运作的模块包括但不限于:olayc-mobile、olayc-map、olayc-free等;而每一个模块中又包括多条分支,如:olayc-mobile的master分支,olayc-map的master分支,olayc-free的dev分支等。假若需要发布的应用代码是olayc-map的master分支,那么就可以在工单中填写或者直接选择模块:olayc-map、分支:master。自然可以理解的是,假若是整个模块进行更替,那么可以只填写或者选择模块:olayc-map。需要说明的是,分支的名称也可能没有规范性的命名,因此,若是这类的分支就需要自行填写,而无法使用类似于下拉框直接选择的方式,但无论是哪种方式,只要能使得代码库服务器和本地服务器可以明确应用代码所处的模块、分支即可。
上述由代码形成的各个模块同时也存储在开发打车APP的公司的本地服务器中,本地服务器作为后台,提供服务以使得用户在前端可以正常的使用打车APP,并且通常支撑同一个功能的模块会有多个,彼此冗余使用,这样即使其中某一个或几个模块错误,依然可以保证整个打车APP的正常运行,只是处理的效率可能比较低;同时也可以保证在用户访问量较大时,整个打车APP的高效运行。即,olayc-mobile模块可能至少有2个,olayc-map模块可能至少有3个等,自然的,相同的模块中分支自然也相同。
研发人员在钉钉上将工单填写完毕后,需要点击提交,提交后工单会按照已经设定好的流程,自动流转到相关人员的钉钉客户端上并展示,例如:按照流程流转到运维人员的钉钉客户端上,运维人员通过其使用的钉钉客户端可以直观的查看工单。
在工单提交的同时,除了工单按照设定好的流程流转以外,钉钉服务器还向本地服务器发送工单提交指示,该工单提交指示中包括需要发布的应用代码所在模块、分支。
步骤102:根据应用代码所在的模块、分支,从代码库服务器中获取应用代码。
本发明实施例中,当本地服务器接收到工单提交指示之后,解析后即可明确需要发布的应用代码所在的模块、分支。之后本地服务器就可以根据需要发布的应用代码所在的模块、分支,从代码库服务器中获取到需要发布的应用代码。
步骤103:将应用代码自行更替到测试环境下对应的位置,并向钉钉机器人发送通知提示,以使钉钉机器人向接收到工单的钉钉客户端发送测试发布进行中的提示信息。
本发明实施例中,当运维人员接收到研发人员发送来的工单时,本地服务器也接收到了工单提交指示,解析后明确需要发布的应用代码所在的模块、分支,从代码库服务器中获取到需要发布的应用代码,之后本地服务器根据该应用代码所在的模块、分支,将该应用代码自行更替到UAT环境下对应的位置,即运维人员不需要再与研发人员进行沟通,也不需要手动查找模块、分支以及手动更替应用代码,本地服务器将自动将应用代码更替到UAT环境下其对应的模块、分支中。这样就省去了运维人员繁琐的沟通协作以及手工操作,极大的提高了运维人员的工作效率。
在本地服务器自行更替应用代码的同时,其还向钉钉机器人发送通知提示,以使钉钉机器人向接收到工单的钉钉客户端发送测试发布进行中的提示信息,即UAT环境发布中的提示信息。需要说明的是,本发明实施例中的钉钉机器人是发明人自行定义的配套自行设计的工单运行的机器人,因此,当本地服务器向钉钉机器人发送通知提示后,钉钉机器人结合配套的工单流程,自然可以向接收到工单的钉钉客户端发送UAT环境发布中的提示信息,这样接收到工单的钉钉客户端自然就知晓了当前应用代码的状态,而不再需要运维人员手动向接收到工单的钉钉客户端发送提示信息,并且应用代码更替是本地服务器自行完成的,也不再需要运维人员实时查看应用代码发布的状态,节省了大量的时间,更进一步提高了运维人员的工作效率。
本发明实施例中,为了让接收到工单的钉钉客户端的用户更加直观的知晓应用代码发布的状态和当前阶段,本地服务器还向钉钉机器人发送UAT环境发布日志地址,以使钉钉机器人向接收到工单的钉钉客户端发送UAT环境发布日志地址,该UAT环境发布日志地址用于让接收到工单的钉钉客户端的用户查看UAT环境下应用代码的发布流水线,使得用户可以方便、快捷的知晓应用代码当前的状态以及进行到哪个阶段。不再需要这些用户通过电话、钉钉语音、文字等方式向运维人员询问应用代码当前的系统以及进行到哪个阶段,这进一步节省了运维人员的时间,再次提高了运维人员的工作效率。
步骤104:在应用代码更替完成后,向钉钉的机器人发送完成提示,以使钉钉机器人向接收到工单的钉钉客户端发送测试发布完成的提示信息。
本发明实施例中,在本地服务器自行更替应用代码完成后,其会向钉钉机器人发送完成提示,该完成提示可以使得钉钉机器人向接收到工单的钉钉客户端发送测试发布完成的提示信息,即UAT环境发布完成的提示信息。
这样也就不再需要运维人员手动向接收到工单的钉钉客户端发送完成的提示信息,更进一步提高了运维人员的工作效率。
通过以上描述可以知晓,本发明实施例发布应用的方法,结合工单流程、钉钉系统、钉钉机器人等实现了应用代码的自行更替、发布状态的自动更新反馈,省去了运维人员繁琐的沟通协作以及手工操作,节省了时间,极大的提高了运维人员的工作效率。
如前所述,UAT环境下应用代码发布完成之后,需要由测试人员进行UAT环境下的测试,以保证应用代码正确无误,而工单流程会在UAT环境发布完成之后,流转到测试人员的钉钉客户端,需要由测试人员确定是否同意应用代码进入生产环境。
一般情况下,测试人员在UAT环境下测试应用代码正确无误,可以达到预期的目标(例如实现该应用代码应该实现的功能),就点击同意选项;若是应用代码有错误,或者未能达到预期的目标,则测试人员点击拒绝选项,工单流程会自动向接收到工单的钉钉客户端发送拒绝的提示信息,接收到工单的钉钉客户端的用户接收到拒绝的提示信息后,会知晓应用代码存在问题,那么该工单的流程就到此结束。而研发人员以及其他相关人员会继续后续工作,例如重新撰写应用代码或者检查应用代码错误之处进行修正等,之后会再次重复上述步骤,直至UAT环境下测试应用代码通过。
本发明实施例中,在UAT环境下测试应用代码通过,测试人员点击同意选项后,工单流程将会进入到生产环境,生产环境下应用代码的发布具体过程和UAT环境下的基本相同,不同之处在于本地服务器需要根据工单中的小流量发布指示或者全流量发布指示,将应用代码更替到部分对应的模块、分支中,或者是更替到全部对应的模块、分支中。而小流量发布指示或者全流量发布指示是在研发人员填写工单时就已经选定了的,工单流程进行到生产环境发布时,自然就按照选定的方式进行。
另一个不同之处在于由于已经获取了应用代码并通过了UAT环境下测试,因此生产环境下本地服务器不需要再从代码库服务器中获取应用代码,直接按照全流量发布指示或者小流量发布指示进行生产环境下应用代码更替即可。
工单流程进入到生产环境时,运维人员会再次通过其使用的钉钉客户端接收到工单信息。需要说明的是,进入生产环境发布时,接收到工单信息的运维人员可以与UAT环境发布时的运维人员相同,也可以不同。即,假若UAT环境发布时的运维人员是张三,那么生产环境发布时的运维人员也可以依旧是张三,但也可以是另一运维人员李四,无论是谁,都不影响本发明实施例的技术方案。
在生产环境时,运维人员接收到工单信息的同时,钉钉服务器向本地服务器发送生产发布指示,该生产发布指示为将应用代码更替到生产环境下对应的模块、分支的指示;当然,如前所述,本地服务器在进行应用代码更替时,需要根据小流量发布指示或者全流量发布指示来进行。
若是小流量发布指示,则根据小流量发布指示,本地服务器将应用代码自行更替到一个或者多个模块、分支的对应位置;而其他支撑相同功能的模块、分支不进行更替,依旧为原来的应用代码。
若是全流量发布指示,则根据全流量发布指示,本地服务器将应用代码自行更替到所有模块、分支的对应位置。
无论是小流量发布还是全流量发布,本地服务器在应用代码更替开始时,和UAT环境下发布过程一样,向钉钉机器人发送通知提示,以使钉钉机器人向接收到工单的钉钉客户端发送生产发布进行中的提示信息;同时也会将生产发布日志地址发送给钉钉机器人,以使钉钉机器人向接收到工单的钉钉客户端发送生产发布日志地址,该生产发布日志地址和测试发布日志地址的作用一样,也用于供钉钉客户端的用户查看生产环境下应用代码的发布流水线,使得用户可以方便、快捷的知晓生产环境下应用代码当前的状态以及进行到哪个阶段。
自然可以理解的是,在本地服务器将应用代码更替完成后,也会向钉钉的机器人发送完成提示,以使钉钉机器人向接收到工单的钉钉客户端发送生产发布完成的提示信息。
生产环境发布的过程与UAT环境下发布的流程基本相同,因此不做过多描述。由上所述可知知晓,在生产环境发布过程中,无论是小流量发布还是全流量发布,节省运维人员时间的效果更加显著,毕竟UAT环境下应用代码的更替只有一个模块、分支,而在生产环境下,由于支撑同一功能的模块、分支有多个,运维人员如果手动更替以及人工查看更替进度,势必占用大量的时间,而本发明实施例的发布应用的方法,运维人员全程不需手动操作,也不再需要额外的电话、语音文字沟通协作,所以本发明实施例的发布应用方法极大的提高了运维人员的工作效率,具有较高的实用性价值。
另外,本发明实施例中,发明人自行设计配套的工单流程、自定义钉钉机器人以及相关的信息交互流程,将应用代码自动发布的过程与钉钉系统、工单流程、钉钉机器人结合,实现由工单流程触发应用代码自动发布,并自行反馈相关信息于钉钉客户端,完全不同于目前的操作流程,并且工单流程、钉钉机器人以及相关的信息交互流程、触发流程等是发明人全新设计,不同于目前已有操作流程,一定程度上隔绝了不可控的第三方因素,有利于数据安全性的提升。
参照图3,示出了本发明实施例一种发布应用的装置的框图,所述装置包括:
接收工单提交模块310,用于接收钉钉服务器发送的工单提交提示,所述工单提交提示包括需要发布的应用代码所在的模块、分支;
获取模块320,用于根据所述应用代码所在的模块、分支,从代码库服务器中获取所述应用代码;
测试环境更替模块340,用于将所述应用代码自行更替到测试环境下对应的位置,并向钉钉机器人发送通知提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送测试发布进行中的提示信息;
发送测试环境完成提示模块350,用于在所述应用代码更替完成后,向钉钉的机器人发送完成提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送测试发布完成的提示信息。
可选地,所述装置还包括:
发送测试发布日志模块,用于向所述钉钉机器人发送测试发布日志地址,以使所述钉钉机器人向接收到工单的钉钉客户端发送所述测试发布日志地址,所述测试发布日志地址用于供所述钉钉客户端的用户查看所述测试环境下所述应用代码的发布流水线。
可选地,所述装置还包括:
接收生产发布模块,用于接收所述钉钉服务器发送的生产发布指示,所述生产发布指示为将所述应用代码更替到生产环境下对应的模块、分支的指示;
生产环境更替模块,用于将所述应用代码自行更替到生产环境下对应的位置,并向所述钉钉机器人发送通知提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送生产发布进行中的提示信息;
发送生产环境完成提示模块,用于在所述应用代码更替完成后,向所述钉钉的机器人发送完成提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送生产发布完成的提示信息。
可选地,所述装置还包括:
发送生产发布日志模块,用于向所述钉钉机器人发送生产发布日志地址,以使所述钉钉机器人向接收到工单的钉钉客户端发送所述生产发布日志地址,所述生产发布日志地址用于供所述钉钉客户端的用户查看所述生产环境下所述应用代码的发布流水线。
可选地,所述生产发布指示中包括:小流量发布指示或者全流量发布指示;所述生成环境下由多个模块、分支支撑同一功能,每一个模块、分支均可单独支撑一个功能;所述测试环境更替模块包括:
小流量更替单元,用于根据所述小流量发布指示,将所述应用代码自行更替到一个或者多个模块、分支的对应位置;
全流量更替单元,用于根据所述全流量发布指示,将所述应用代码自行更替到所有模块、分支的对应位置。
基于同一发明构思,本发明另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如以上步骤101~步骤104所述的方法中的步骤。
基于同一发明构思,本发明另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行时实现本发明上述任一实施例所述的步骤101~步骤104方法中的步骤。
通过上述实施例,本发明的发布应用方法,本地服务器接收到工单提交指示,按照工单提交指示中的应用代码所在的模块、分支,获取需要发布的应用代码后,只需按照工单提交指示中的应用代码所在的模块、分支,即可将应用代码自行更替到测试环境下对应的位置,将应用代码自行更替到UAT环境下对应的位置,同时还向钉钉机器人发送通知提示,以使钉钉机器人向接收到工单的钉钉客户端发送测试发布进行中的提示信息,在发布完成后也向钉钉机器人发送通知提示,以使钉钉机器人向接收到工单的钉钉客户端发送测试发布完成的提示信息。即运维人员不再需要依靠电话、或者钉钉语音文字进行沟通协作,也不再需要手动更替应用代码以及随时查看更替进度,应用代码可以自动完成更替并且自动将更替过程的状态信息反馈于相关人员的钉钉客户端,使得工作人员直观知晓应用代码更替状态信息。而在生产环境下,更是极大节省了工作人员的时间和精力,因此,综合整个研发、运维、测试、生产的过程,相较于目前的工作流程,提高工作人员工作效率的效果即为明显,具有较高的实用性。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

1.一种发布应用的方法,其特征在于,所述方法包括:
接收钉钉服务器发送的工单提交提示,所述工单提交提示包括需要发布的应用代码所在的模块、分支;
根据所述应用代码所在的模块、分支,从代码库服务器中获取所述应用代码;
将所述应用代码自行更替到测试环境下对应的位置,并向钉钉机器人发送通知提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送测试发布进行中的提示信息;
在所述应用代码更替完成后,向钉钉的机器人发送完成提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送测试发布完成的提示信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述钉钉机器人发送测试发布日志地址,以使所述钉钉机器人向接收到工单的钉钉客户端发送所述测试发布日志地址,所述测试发布日志地址用于供所述钉钉客户端的用户查看所述测试环境下所述应用代码的发布流水线。
3.根据权利要求1所述的方法,其特征在于,在向钉钉的机器人发送完成提示之后,所述方法还包括:
接收所述钉钉服务器发送的生产发布指示,所述生产发布指示为将所述应用代码更替到生产环境下对应的模块、分支的指示;
将所述应用代码自行更替到生产环境下对应的位置,并向所述钉钉机器人发送通知提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送生产发布进行中的提示信息;
在所述应用代码更替完成后,向所述钉钉的机器人发送完成提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送生产发布完成的提示信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
向所述钉钉机器人发送生产发布日志地址,以使所述钉钉机器人向接收到工单的钉钉客户端发送所述生产发布日志地址,所述生产发布日志地址用于供所述钉钉客户端的用户查看所述生产环境下所述应用代码的发布流水线。
5.根据权利要求3所述的方法,其特征在于,所述生产发布指示中包括:小流量发布指示或者全流量发布指示;所述生成环境下由多个模块、分支支撑同一功能,每一个模块、分支均可单独支撑一个功能;将所述应用代码自行更替到生产环境下对应的位置,包括:
根据所述小流量发布指示,将所述应用代码自行更替到一个或者多个模块、分支的对应位置;
根据所述全流量发布指示,将所述应用代码自行更替到所有模块、分支的对应位置。
6.一种发布应用的装置,其特征在于,所述装置包括:
接收工单提交模块,用于接收钉钉服务器发送的工单提交提示,所述工单提交提示包括需要发布的应用代码所在的模块、分支;
获取模块,用于根据所述应用代码所在的模块、分支,从代码库服务器中获取所述应用代码;
测试环境更替模块,用于将所述应用代码自行更替到测试环境下对应的位置,并向钉钉机器人发送通知提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送测试发布进行中的提示信息;
发送测试环境完成提示模块,用于在所述应用代码更替完成后,向钉钉的机器人发送完成提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送测试发布完成的提示信息。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
发送测试发布日志模块,用于向所述钉钉机器人发送测试发布日志地址,以使所述钉钉机器人向接收到工单的钉钉客户端发送所述测试发布日志地址,所述测试发布日志地址用于供所述钉钉客户端的用户查看所述测试环境下所述应用代码的发布流水线。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
接收生产发布模块,用于接收所述钉钉服务器发送的生产发布指示,所述生产发布指示为将所述应用代码更替到生产环境下对应的模块、分支的指示;
生产环境更替模块,用于将所述应用代码自行更替到生产环境下对应的位置,并向所述钉钉机器人发送通知提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送生产发布进行中的提示信息;
发送生产环境完成提示模块,用于在所述应用代码更替完成后,向所述钉钉的机器人发送完成提示,以使所述钉钉机器人向接收到工单的钉钉客户端发送生产发布完成的提示信息。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5任一所述的方法中的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1-5任一所述的方法中的步骤。
CN202010803401.6A 2020-08-11 2020-08-11 一种发布应用的方法、装置、电子设备及存储介质 Pending CN112099805A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010803401.6A CN112099805A (zh) 2020-08-11 2020-08-11 一种发布应用的方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010803401.6A CN112099805A (zh) 2020-08-11 2020-08-11 一种发布应用的方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN112099805A true CN112099805A (zh) 2020-12-18

Family

ID=73754420

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010803401.6A Pending CN112099805A (zh) 2020-08-11 2020-08-11 一种发布应用的方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112099805A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703830A (zh) * 2021-09-02 2021-11-26 挂号网(杭州)科技有限公司 一种代码打包方法及装置、电子设备、存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703830A (zh) * 2021-09-02 2021-11-26 挂号网(杭州)科技有限公司 一种代码打包方法及装置、电子设备、存储介质

Similar Documents

Publication Publication Date Title
CN107516192B (zh) 敏捷项目的管理方法、装置、系统、电子设备、存储介质
CN101411123B (zh) 用于分布式数据处理系统端点上的集中式系统管理的方法、系统和计算机程序
US8677348B1 (en) Method and apparatus for determining least risk install order of software patches
US8301935B2 (en) Distributed batch runner
US10261892B2 (en) Cloud-based automated test execution factory
CN108446223B (zh) 一种基于动态编译的业务场景自动化测试方法
Fisher et al. Utilizing Atlassian JIRA for large-scale software development management
CN104246702A (zh) 工作流编译
CN112199355B (zh) 数据迁移方法、装置、电子设备及存储介质
US11403084B2 (en) System and method for implementing an orchestration engine
CN113706022A (zh) 业务流程的执行方法及装置、存储介质及电子设备
US9823999B2 (en) Program lifecycle testing
CN113050929A (zh) 一种基于Hyperledger Fabric的智能合约开发运维一体化平台
CN112099805A (zh) 一种发布应用的方法、装置、电子设备及存储介质
CN111580858A (zh) 一种代码定时发布方法及发布系统
CN112416791B (zh) 一种测试对象的缺陷信息处理系统和方法
CN114428621A (zh) 一种作业自动化部署方法
CN115390861A (zh) 资源部署方法、装置及设备和存储介质
Achdian et al. Analysis of CI/CD Application Based on Cloud Computing Services on Fintech Company
Kamde et al. Value of test cases in software testing
CN113900630A (zh) 代码开发方法、装置、电子设备和可读存储介质
CN112114954A (zh) 软件系统的作业调度配置方法及装置
CN114706370A (zh) 一种车辆生产线电检系统、方法、装置和存储介质
CN111523808B (zh) 模型集中化管理方法及系统、设备、存储介质
CN114185590A (zh) 应用系统运维配置管理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination