CN111984272A - 应用自动上线的方法、系统、存储介质及计算机设备 - Google Patents
应用自动上线的方法、系统、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN111984272A CN111984272A CN202010933367.4A CN202010933367A CN111984272A CN 111984272 A CN111984272 A CN 111984272A CN 202010933367 A CN202010933367 A CN 202010933367A CN 111984272 A CN111984272 A CN 111984272A
- Authority
- CN
- China
- Prior art keywords
- service instance
- new service
- approval
- application
- assistance
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 115
- 238000001514 detection method Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 230000003111 delayed effect Effects 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种应用自动上线的方法、系统、存储介质及计算机设备,涉及软件应用上线领域。所述方法包括:响应于待上线应用的审批协助完成事件,根据待上线应用的应用名称获取并保存所述应用注册到服务注册中心的旧服务实例的IP地址;根据所述应用名称获取新服务实例的部署配置文件;根据新服务实例的部署配置文件在主机标签对应的主机上创建并启动所述新服务实例;检测新服务实例的IP地址是否注册到所述服务注册中心;若是,则启用新服务实例的服务,并根据旧服务实例的IP地址将旧服务实例的服务状态置为不可用;检测新服务实例是否能够正常处理请求;若能,则删除旧服务实例,并提示上线成功。本发明可对应用进行自动上线,节省人力成本。
Description
技术领域
本发明涉及软件应用上线领域,具体涉及一种应用自动上线的方法、系统、存储介质及计算机设备。
背景技术
软件部署上线是软件行业不可或缺的一个环节,部署上线会直接操作线上系统,危险性高,出错影响大。
随着微服务架构的不断使用以及微服务的盛行,上线需要操作的服务机器成倍的增长,人为进行应用上线需要进行大量繁多,重复的工作,耗费大量的人力,并且,也极容易出错。
发明内容
本发明实施例提供了一种应用自动上线的方法、系统、存储介质以及计算机设备,以对软件应用进行自动化部署上线,从而减少运维重复工作,节省人力成本,避免人为操作错误。
一方面,本发明实施例提供一种应用自动上线的方法,所述方法包括:
S1:响应于待上线应用的审批协助完成事件,根据待上线应用的应用名称获取并保存所述应用注册到服务注册中心的旧服务实例的IP地址;
S2:根据所述应用名称获取所述应用的新服务实例的部署配置文件,其中,所述部署配置文件里配置了所述应用的新服务实例的镜像地址、待部署所述新服务实例的主机标签;
S3:根据所述新服务实例的部署配置文件在所述主机标签对应的主机上创建并启动所述应用的新服务实例,其中,所述新服务实例启动后向所述服务注册中心注册自身的IP地址;
S4:检测所述新服务实例的IP地址是否注册到所述服务注册中心;
S5:若所述新服务实例的IP地址注册到了所述服务注册中心,则启用所述新服务实例的服务,并根据所述旧服务实例的IP地址将所述旧服务实例的服务状态置为不可用,以使所述旧服务实例不再接收请求;
S6:检测所述新服务实例是否能够正常处理请求;
S7:若所述新服务实例能够正常处理请求,则删除所述旧服务实例,并提示上线成功。
在本实施例的一种实现方式中,若在步骤S4检测到所述新服务实例的IP地址没有注册到所述服务注册中心,则停止上线并删除所述新服务实例,并提示上线失败。
在本实施例的一种实现方式中,当在步骤S6检测到所述新服务实例不能够正常处理请求时,执行以下处理:
将所述旧服务实例的服务状态置为可用,以使所述旧服务实例恢复接收请求;
将所述新服务实例的服务状态置为不可用;
检测所述旧服务实例是否能够正常处理请求,在检测结果为是的情况下,删除所述新服务实例。
在本实施例的一种实现方式中,在步骤S5中,
在启用所述新服务实例的服务后,判断是否需要延迟下线;
若是,则获取延迟时间,在延迟时间到达后,根据所述旧服务实例的IP地址将所述旧服务实例的服务状态置为不可用。
在本实施例的一种实现方式中,所述方法还包括:
通过审批协助信息填写页面接收审批协助信息,其中,所述审批协助信息包括:审批/协助流程、审批人/协助人、审批人/协助人联系方式、审批/协助内容;
响应于用户对于第一控件的操作,根据所述审批协助信息生成待发送给各审批人/协助人的通知信息;
将所述通知信息发送给各审批人/协助人,以提示各审批人/协助人进行审批/协助。
在本实施例的一种实现方式中,所述方法还包括:
根据所述审批/协助流程生成审批/协助流程节点;
响应于审批人/协助人对于第二控件的操作,将相应审批/协助流程节点的状态标记为已完成;
在所述审批/协助流程节点的状态均为已完成时,生成所述审批协助流程完成事件。
另一方面,本发明实施例提供一种用于应用自动上线的系统,所述系统包括:
旧IP地址获取模块,用于响应于待上线应用的审批协助完成事件,根据待上线应用的应用名称获取并保存所述应用注册到服务注册中心的旧服务实例的IP地址;
部署配置文件获取模块,用于根据所述应用名称获取所述应用的新服务实例的部署配置文件,其中,所述部署配置文件里配置了所述应用的新服务实例的镜像地址、待部署所述新服务实例的主机标签;
新服务创建模块,用于根据所述新服务实例的部署配置文件在所述主机标签对应的主机上创建并启动所述应用的新服务实例,其中,所述新服务实例启动后向所述服务注册中心注册自身的IP地址;
健康检测模块,用于检测所述新服务实例的IP地址是否注册到所述服务注册中心;
新服务启用模块,用于在所述新服务实例的IP地址注册到了所述服务注册中心时,启用所述新服务实例的服务,并根据所述旧服务实例的IP地址将所述旧服务实例的服务状态置为不可用,以使所述旧服务实例不再接收请求;
新服务验证模块,用于检测所述新服务实例是否能够正常处理请求;
旧服务删除模块,用于在所述新服务实例能够正常处理请求时,删除所述旧服务实例,并提示上线成功。
在本实施例的一种实现方式中,所述系统还包括:
新服务删除单元,用于在所述新服务实例的IP地址没有注册到所述服务注册中心时,停止上线并删除所述新服务实例,并提示上线失败。
在本实施例的一种实现方式中,所述系统还包括:
回滚模块,用于当所述新服务实例不能够正常处理请求时,执行以下处理:
将所述旧服务实例的服务状态置为可用,以使所述旧服务实例恢复接收请求;
将所述新服务实例的服务状态置为不可用;
检测所述旧服务实例是否能够正常处理请求,在检测结果为是的情况下,删除所述新服务实例。
在本实施例的一种实现方式中,所述新服务启用模块还包括:
延迟下线判断单元,用于判断是否需要延迟下线,
延迟下线单元,用于在需要延迟下线时,获取延迟时间,在延迟时间到达后,根据所述旧服务实例的IP地址将所述旧服务实例的服务状态置为不可用。
在本实施例的一种实现方式中,所述系统还包括:
审批协助信息接收单元,用于通过审批协助信息填写页面接收审批协助信息,其中,所述审批协助信息包括:审批/协助流程、审批人/协助人、审批人/协助人联系方式、审批/协助内容;
通知信息生成单元,用于响应于用户对于第一控件的操作,根据所述审批协助信息生成待发送给各审批人/协助人的通知信息;
提示单元,用于将所述通知信息发送给各审批人/协助人,以提示各审批人/协助人进行审批/协助。
在本实施例的一种实现方式中,所述系统还包括:
审批/协助流程节点生成单元,用于根据所述审批/协助流程生成审批/协助流程节点;
状态标记单元,用于响应于审批人/协助人对于第二控件的操作,将相应审批/协助流程节点的状态标记为已完成;
审批完成事件生成单元,用于在所述审批/协助流程节点的状态均为已完成时,生成所述审批协助流程完成事件。
再一方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令可以被处理器执行以实现上述任意一种实施例所述的应用自动上线的方法。
又一方面,本发明实施例提供一种计算机设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述计算机程序以实现上述任意一种实施例所述的应用自动上线的方法。
相比于现有技术而言,本发明实施例提供的应用自动上线的方法、系统、存储介质及计算机设备具有如下技术效果:
本发明实施例对应用进行自动上线,可以节省人力成本,减少人工操作错误。并且,通过先将旧服务实例的服务状态置为不可用,在新服务实例能够正常处理请求后再将旧服务实例删除的两步下线方法,本实施例可以提高新服务上线的安全性,便于在新服务上线不成功时及时启用旧服务,避免对业务正常运行的影响。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简要的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例的附图,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一的应用自动上线的方法流程图;
图2是本发明实施例二的应用自动上线的方法流程图。
图3是本发明实施例三的应用自动上线的系统模块示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方案对上述方案进行详细的说明。
实施例一
本实施例提供一种应用自动上线的方法,所述方法可以针对诸如springCloud+docker+Eureka的微服务架构的应用进行自动上线,并可应用于诸如bingo的自动化测试管理平台中。图1是本发明实施例一的应用自动上线的方法流程图。如图1所示,本实施例提供的应用自动上线的方法包括:
S101:响应于待上线应用的审批协助完成事件,根据待上线应用的应用名称获取并保存所述应用注册到服务注册中心的旧服务实例的IP地址。
其中,所述服务注册中心可以提供服务注册服务,其保存了所有旧服务实例的注册信息,如服务名称、IP地址以及该服务对应的应用名称等。服务注册中心例如可以为Eureka server(一种服务发现框架的服务端),其用于进行服务的注册和发现。
响应于待上线应用的审批协助完成事件,本实施例可以获取待上线应用的应用名称,然后根据待上线应用的应用名称从服务注册中心获取该应用之前注册的旧服务实例的IP地址,然后将该IP地址保存在本地。
其中,如果根据待上线应用的应用名称获取到多个旧服务实例,例如根据待上线应用的应用名称匹配到两个服务,分别为服务application-20200730165503,以及服务application-2020080162731,则可以提示用户,如返回错误信息,以要求用户重新检查或处理,防止出错。
S102:根据所述应用名称获取所述应用的新服务实例的部署配置文件,其中,所述部署配置文件里配置了所述应用的新服务实例的镜像地址、待部署所述新服务实例的主机标签。
其中,新服务实例的部署配置文件可由待上线应用的部署配置信息生成。本实施例可以提供部署配置信息填写页面,以供用户输入新服务实例的部署配置信息,如该新服务实例对应的待上线应用的名称、该新服务实例的镜像地址、待部署该新服务实例的主机标签等。输入之后,本实施例可以根据用户填写的待上线应用的部署配置信息生成该新服务实例的部署配置文件,如docker-compose.yml和rancher-compose.yml文件。
S103:根据所述新服务实例的部署配置文件在所述主机标签对应的主机上创建并启动所述应用的新服务实例,其中,所述新服务实例启动后向所述服务注册中心注册自身的IP地址。
其中,各主机可以预先标记主机标签,标记相同主机标签的主机可以有一个或多个,即一个主机标签可以对应一个主机,也可以对应多个主机。
本实施例在获取新服务实例的部署配置文件后,可以从所述部署配置文件获取待部署新服务实例的主机标签,根据所述新服务实例的镜像地址拉取所述新服务实例的镜像,根据所述新服务实例的镜像在所述主机标签对应的主机上分别部署所述新服务实例,即在每一个拥有所述主机标签的主机上分别部署一个新服务实例。其中,所述新服务实例的镜像可以预先从测试仓库推送给线上仓库。
进一步地,部署配置文件中可以包括部署个数,即在主机标签对应的主机上多少个新服务实例。此时,本实施例可以获取部署个数,采用负载均衡算法计算在拥有所述主机标签的哪些主机上部署这些新服务实例,进而在计算出的主机上部署这些新服务实际例子。
例如,若部署配置文件中指定的部署新服务实例的主机标签为A,部署个数为3,系统中主机标签为A的主机个数为5,则本实施例可以根据负载均衡算法,在主机标签为A的5台主机中选择负载较低的3台主机,在选择出的这3台主机上分别创建一个新服务实例。如果主机标签为A的5台主机中有四台主机的负载均较高,本实施例也可以在剩余的负载较低的一台主机上部署3个新服务实例。关于在具有主机标签的哪台主机上创建新服务实例,创建几个新服务实例,可由现有的负载均衡算法计算得出,本发明对此不做限定。在不指定部署个数的情况下,本实施例可以默认在主机标签对应的每一个主机上分别部署一个新服务实例。
相比于人工分别在各主机上创建新服务实例,本实施例通过设置主机标签,在主机标签对应的多个主机上负载均衡的同时创建多个新服务实例,可以减少人工分别在各主机上创建新服务实例所带来的操作错误以及负载不均。
在主机上创建新服务实例后,可以启动所述新服务实例。所述新服务实例启动后,将会向服务注册中心自动注册自身的信息,注册信息例如可以包括,该新服务实例的IP地址,该新服务实例的名称,该新服务实例对应的应用名称等。
S104:检测所述新服务实例的IP地址是否注册到所述服务注册中心。
具体而言,可以根据待上线应用的应用名称,检查服务注册中心的该应用名称下的注册信息。如果新服务实例的IP地址存在于服务注册中心的该应用名称对应的服务实例信息中,则认为所述新服务实例的IP地址已经注册到了服务注册中心。
若检测到所述新服务实例的IP地址注册到了所述服务注册中心,则可以继续进行步骤S105。若检测到所述新服务实例的IP地址没有注册到所述服务注册中心,则可以停止上线并删除在主机上创建的所述新服务实例,并提示上线失败。
S105:若所述新服务实例的IP地址注册到了所述服务注册中心,则启用所述新服务实例的服务,并根据所述旧服务实例的IP地址将所述旧服务实例的服务状态置为不可用,以使所述旧服务实例不再接收请求。
其中,根据新服务实例的IP将新服务实例的服务状态置为ON_SERVICE(即可用),根据旧服务实例的IP将旧服务实例的服务状态置为OUT_OF_SERVICE(即不可用)。此时,新服务实例可以开始处理请求,旧服务实例不再接收请求,但是旧服务实例的注册信息仍保留在服务注册中心中,并没有从服务注册中心中删除。
例如,若服务注册中心为Eureka server,可以根据旧服务实例的IP通过http://{eureka地址:端口}/eureka/apps/{eureka注册名}/{实例地址:端口}/status?value=OUT_OF_SERVICE的指令将旧服务实例的服务状态置为OUT_OF_SERVICE,并根据新服务实例的IP地址将新服务实例的服务状态置为ON_SERVICE。
可以理解的是,针对其他服务注册中心,也可以采用其他指令将新服务实例的服务状态置为可用,将旧服务实例的服务状态置为不可用。
S106:检测所述新服务实例是否能够正常处理请求。
其中,可以调用健康检查程序对新服务实例进行健康状态检测,如果新服务实例能够正常处理请求,则说明该新服务实例能够正常运行,是健康的,新服务实例上线成功。
S107:若所述新服务实例能够正常处理请求,则删除所述旧服务实例,并提示上线成功。
其中,在检测到新服务实例能够正常处理请求后,可以将所述旧服务实例的注册信息从服务注册中心删除,并删除主机上的旧服务实例,从而将所述旧服务实例彻底下线。
本实施例通过将旧服务实例的服务状态先置为不可用,在新服务实例能够正常处理请求再将旧服务实例删除,可以提高新服务上线的安全性。
进一步地,当在步骤S106检测到所述新服务实例不能够正常处理请求时,则可以执行以下处理:
将所述旧服务实例的服务状态置为可用,以使所述旧服务实例恢复接收请求;将所述新服务实例的服务状态置为不可用;检测所述旧服务实例是否能够正常处理请求,在检测结果为是的情况下,删除所述新服务实例。
例如,若服务中心为Eureka server,则可以根据新服务实例的IP通过例如http://{eureka地址:端口}/eureka/apps/{eureka注册名}/{实例地址:端口}/status?value=OUT_OF_SERVICE的指令将新服务实例的服务状态置为OUT_OF_SERVICE,并根据旧服务实例的IP地址将旧服务实例的服务状态置为ON_SERVICE,从而使旧服务实例迅速的恢复服务。之后,可以检查旧服务实例是否能够正常处理请求,即检查旧服务实例的健康状态,例如,检查旧服务实例是否能正常的收发请求。在旧服务实例能够正常收发请求的情况下,可以从服务注册中心删除所述新服务实例的注册信息,并提示上线失败。
通过上述方法,本实施例可以在新服务实例上线不成功时立即启用旧服务实例来处理请求,避免对线上业务造成不良影响,保证线上业务的正常运行。
在本实施例的一种实现方式中,对于实时性服务,还可以将旧服务延迟下线,从而保证安全性。
具体而言,新服务实例的部署配置文件中还可以包括是否进行延迟下线的延迟下线标识,以及延迟下线的延迟时间。
在步骤S105中,启用新服务实例的服务后,可以检查部署配置文件中的延迟下线标识,根据延迟下线标识来判断是否进行延迟下线。例如,如果延迟下线标识为1,则说明需要延迟下线。如果延迟下线标识为0,则说明不需要延迟下线
若需要进行延迟下线,可以从部署配置文件中获取延迟时间,根据该延迟时间生成定时器,然后在定时结束后,即延迟时间到达后,再根据所述旧服务实例的地址将所述旧服务实例的服务状态置为不可用,以使所述旧服务实例不再接收请求。如果不需要进行延迟下线,则可以在启用新服务实例的服务后,立即将旧服务实例的服务状态置为不可用,进而将所述旧服务实例下线。
在本实施例的一种实现方式中,在新服务实例上线成功后,可以生成所述新服务实例的部署记录,并以新服务实例的名称作为标识。其中,部署记录中可以保存新服务实例的部署配置信息,例如该新服务实例对应的应用名称、该新服务实例的名称、主机标签、部署个数、挂载盘、内存等。新服务实例的名称可以根据该新服务实例对应的应用名称+时间的方式生成。例如,如果新服务实例对应的应用名称为application,则新服务实例的名称可以为:application-20200730165503。
在该实现方式中,可以在本地保存各应用的历史上线服务实例的部署记录,并以服务实例的名称作为该服务实例的部署记录索引。在填写待上线应用的新服务实例的部署配置信息时,用户可以查询该应用的部署记录。响应于用户的查询,本实施例可以根据用户输入的待上线应用的旧服务实例名称获取旧服务实例的部署记录,从旧服务实例的部署记录中解析出部署配置信息,然后将所述部署配置信息填入部署配置信息填写页面的相应配置信息选项中,从而使用户仅需要填写新服务实例与旧服务实例不同的配置信息即可。
例如,待上线应用的应用名称如果为application,用户输入的旧服务实例名称为application-20200730165503,则可以获取application-20200730165503这一服务的部署记录,然后该部署记录中解析出部署配置信息,将所述部署配置信息填入部署配置信息填写页面的相应配置信息选项中。
在应用上线时,用户需要填写大量繁琐的部署配置信息。本实施例从历史部署记录中获取待上线应用的历史上线部署配置信息,将历史部署配置信息显示到部署配置信息填写页面,可以避免用户反复填写重复信息,减少人工操作误差,提高用户体验。
实施例二
图2示出了根据本发明实施例二的应用自动上线的方法。如图2所示,除实施例一所述的方法之外,本实施例所述的应用自动上线方法还包括:
S201:通过审批协助信息填写页面接收审批协助信息,其中,所述审批协助信息包括:审批/协助流程、审批人/协助人、审批人/协助人联系方式、审批信息/协助内容。
其中,可以在前端提供审批协助信息填写页面,以供用户通过该页面填写审批协助信息。该审批协助信息填写页面可以提供多个信息填写模块,以供用户来填写不同的信息,用户填写的审批协助信息具体的可以包括:审批/协助流程、审批人/协助人、审批人/协助人联系方式、审批/协助内容等。
S202:响应于用户对于第一控件的操作,根据所述审批协助信息生成待发送给各审批人/协助人的通知信息。
在填写完成之后,用户可以点击第一控件来进行确认。第一控件例如可以为审批协助信息填写页面上的确认按钮,响应于用户对于第一控件的点击操作,本实施例可以根据用户填写的审批协助信息生成待发送给各审批人/协助人的通知信息。
S203:将所述通知信息发送给各审批人/协助人,以提示各审批人/协助人进行审批/协助。
其中,可以将待发送给各审批人/协助人的通知信息分别发送给相应的审批人/协助人,从而提示各审批人/协助人进行审批/协助。
S204:根据所述审批/协助流程生成审批/协助流程节点。
其中,可以在前端提供审批/协助页面,以供在审批人/协助人的审批/协助事项完成后,填写审批/协助完成信息。
进一步地,本实施例可以根据审批/协助流程生成审批/协助流程节点,并以审批/协助流程图的方式将各节点以及各节点的状态展示到所述审批/协助页面,从而使审批人/协助人在审批时对审批/协助的进度有整体了解。并且,响应于审批人/协助人对于审批/协助流程图中审批/协助流程节点的点击操作,本实施例还可以进一步显示该审批/协助节点的具体审批/协助内容。从而,通过本实施例提供的审批/协助流程图,审批人/协助人可以对所有的审批/协助节点的状态和审批/协助内容有整体的了解,便于审批人/协助人进行审批/协助,减少不同人员之间的人工沟通成本。
S205:响应于审批人/协助人对于第二控件的操作,将相应审批/协助流程节点的状态标记为已完成。
审批人/协助人在完成审批/协助事项后,可以点击第二控件来进行确认,第二控件例如可以为审批/协助页面的确认按钮。响应于审批人/协助人对于第二控件的点击操作,本实施例可以将相应审批/协助流程节点的状态标记为已完成,并更新审批/协助流程图中相应审批/协助节点的状态。
S206:在所述审批/协助流程节点的状态均为已完成时,生成审批协助流程完成事件。
在所有审批/协助流程节点的状态均为已完成后,可以生成审批/协助流程完成事件,从而触发进行实施例一所述的应用自动上线的处理。
本实施例通过进行审批/协助流程,在所有审批/协助节点的状态均已完成时生成审批/协助流程完成事件,进而触发待上线应用的上线流程,可以保证在所有审批/协助事项均已完成的情况下来进行上线,从而进一步保障上线的安全性,避免出错。
并且,在应用上线前,需要与不同部门的不同人员进行大量的步骤沟通。本实施通过在前端显示整体审批协助流程信息,可以减少不同人员之间的沟通成本。
实施例三
图3是本发明实施例三的应用自动上线的系统的模块示意图,如图3所示,本实施例所述的应用自动上线的系统10包括:
旧IP地址获取模块11,用于响应于待上线应用的审批协助完成事件,根据待上线应用的应用名称获取并保存所述应用注册到服务注册中心的旧服务实例的IP地址;
部署配置文件获取模块12,用于根据所述应用名称获取所述应用的新服务实例的部署配置文件,其中,所述部署配置文件里配置了所述应用的新服务实例的镜像地址、待部署所述新服务实例的主机标签;
新服务创建模块13,用于根据所述新服务实例的部署配置文件在所述主机标签对应的主机上创建并启动所述应用的新服务实例,其中,所述新服务实例启动后向所述服务注册中心注册自身的IP地址;
健康检测模块14,用于检测所述新服务实例的IP地址是否注册到所述服务注册中心;
新服务启用模块15,用于在所述新服务实例的IP地址注册到了所述服务注册中心时,启用所述新服务实例的服务,并根据所述旧服务实例的IP地址将所述旧服务实例的服务状态置为不可用,以使所述旧服务实例不再接收请求;
新服务验证模块16,用于检测所述新服务实例是否能够正常处理请求;
旧服务删除模块17,用于在所述新服务实例能够正常处理请求时,删除所述旧服务实例,并提示上线成功。
在本实施例的一种实现方式中,所述系统还包括:
新服务删除单元,用于在所述新服务实例的IP地址没有注册到所述服务注册中心时,停止上线并删除所述新服务实例,并提示上线失败。
在本实施例的一种实现方式中,所述系统还包括:
回滚模块,用于当所述新服务实例不能够正常处理请求时,执行以下处理:
将所述旧服务实例的服务状态置为可用,以使所述旧服务实例恢复接收请求;
将所述新服务实例的服务状态置为不可用;
检测所述旧服务实例是否能够正常处理请求,在检测结果为是的情况下,删除所述新服务实例。
在本实施例的一种实现方式中,所述新服务启用模块还包括:
延迟下线判断单元,用于判断是否需要延迟下线,
延迟下线单元,用于在需要延迟下线时,获取延迟时间,在延迟时间到达后,根据所述旧服务实例的IP地址将所述旧服务实例的服务状态置为不可用。
在本实施例的一种实现方式中,所述系统还包括:
审批协助信息接收单元,用于通过审批协助信息填写页面接收审批协助信息,其中,所述审批协助信息包括:审批/协助流程、审批人/协助人、审批人/协助人联系方式、审批/协助内容;
通知信息生成单元,用于响应于用户对于第一控件的操作,根据所述审批协助信息生成待发送给各审批人/协助人的通知信息;
提示单元,用于将所述通知信息发送给各审批人/协助人,以提示各审批人/协助人进行审批/协助。
在本实施例的一种实现方式中,所述系统还包括:
审批/协助流程节点生成单元,用于根据所述审批/协助流程生成审批/协助流程节点;
状态标记单元,用于响应于审批人/协助人对于第二控件的操作,将相应审批/协助流程节点的状态标记为已完成;
审批完成事件生成单元,用于在所述审批/协助流程节点的状态均为已完成时,生成所述审批协助流程完成事件。
本实施例提供的应用自动上线的系统用于实现前述方法实施例中应用自动上线的方法,其处理流程可参见前述方法实施例中的对应过程,在此不再赘述。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施方式的某些部分所述的方法。
实施例四
本实施例提供一种计算机存储介质,如硬盘、光盘、闪存、软盘、磁带等,其上存储有计算机可读指令,该计算机可读指令能够被处理器执行以实现上述实施例所述的应用自动上线的方法。
实施例五
本实施例提供一种计算机设备,包括:
存储器,其上存储有计算机程序,
处理器,其可以执行所述计算机程序以实现上述实施例所述的应用自动上线的方法。
本说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的保护范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
Claims (14)
1.一种应用自动上线的方法,其特征在于,所述方法包括:
S1:响应于待上线应用的审批协助完成事件,根据待上线应用的应用名称获取并保存所述应用注册到服务注册中心的旧服务实例的IP地址;
S2:根据所述应用名称获取所述应用的新服务实例的部署配置文件,其中,所述部署配置文件里配置了所述应用的新服务实例的镜像地址、待部署所述新服务实例的主机标签;
S3:根据所述新服务实例的部署配置文件在所述主机标签对应的主机上创建并启动所述应用的新服务实例,其中,所述新服务实例启动后向所述服务注册中心注册自身的IP地址;
S4:检测所述新服务实例的IP地址是否注册到所述服务注册中心;
S5:若所述新服务实例的IP地址注册到了所述服务注册中心,则启用所述新服务实例的服务,并根据所述旧服务实例的IP地址将所述旧服务实例的服务状态置为不可用,以使所述旧服务实例不再接收请求;
S6:检测所述新服务实例是否能够正常处理请求;
S7:若所述新服务实例能够正常处理请求,则删除所述旧服务实例,并提示上线成功。
2.根据权利要求1所述的方法,其特征在于,若在步骤S4检测到所述新服务实例的IP地址没有注册到所述服务注册中心,则停止上线并删除所述新服务实例,并提示上线失败。
3.根据权利要求1所述的方法,其特征在于,当在步骤S6检测到所述新服务实例不能够正常处理请求时,执行以下处理:
将所述旧服务实例的服务状态置为可用,以使所述旧服务实例恢复接收请求;
将所述新服务实例的服务状态置为不可用;
检测所述旧服务实例是否能够正常处理请求,在检测结果为是的情况下,删除所述新服务实例。
4.根据权利要求1-3中任意一项权利要求所述的方法,其特征在于,在步骤S5中,
在启用所述新服务实例的服务后,判断是否需要延迟下线;
若是,则获取延迟时间,在延迟时间到达后,根据所述旧服务实例的IP地址将所述旧服务实例的服务状态置为不可用。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过审批协助信息填写页面接收审批协助信息,其中,所述审批协助信息包括:审批/协助流程、审批人/协助人、审批人/协助人联系方式、审批/协助内容;
响应于用户对于第一控件的操作,根据所述审批协助信息生成待发送给各审批人/协助人的通知信息;
将所述通知信息发送给各审批人/协助人,以提示各审批人/协助人进行审批/协助。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述审批/协助流程生成审批/协助流程节点;
响应于审批人/协助人对于第二控件的操作,将相应审批/协助流程节点的状态标记为已完成;
在所述审批/协助流程节点的状态均为已完成时,生成所述审批协助流程完成事件。
7.一种用于应用自动上线的系统,其特征在于,所述系统包括:
旧IP地址获取模块,用于响应于待上线应用的审批协助完成事件,根据待上线应用的应用名称获取并保存所述应用注册到服务注册中心的旧服务实例的IP地址;
部署配置文件获取模块,用于根据所述应用名称获取所述应用的新服务实例的部署配置文件,其中,所述部署配置文件里配置了所述应用的新服务实例的镜像地址、待部署所述新服务实例的主机标签;
新服务创建模块,用于根据所述新服务实例的部署配置文件在所述主机标签对应的主机上创建并启动所述应用的新服务实例,其中,所述新服务实例启动后向所述服务注册中心注册自身的IP地址;
健康检测模块,用于检测所述新服务实例的IP地址是否注册到所述服务注册中心;
新服务启用模块,用于在所述新服务实例的IP地址注册到了所述服务注册中心时,启用所述新服务实例的服务,并根据所述旧服务实例的IP地址将所述旧服务实例的服务状态置为不可用,以使所述旧服务实例不再接收请求;
新服务验证模块,用于检测所述新服务实例是否能够正常处理请求;
旧服务删除模块,用于在所述新服务实例能够正常处理请求时,删除所述旧服务实例,并提示上线成功。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:
新服务删除单元,用于在所述新服务实例的IP地址没有注册到所述服务注册中心时,停止上线并删除所述新服务实例,并提示上线失败。
9.根据权利要求7所述的系统,其特征在于,所述系统还包括:
回滚模块,用于当所述新服务实例不能够正常处理请求时,执行以下处理:
将所述旧服务实例的服务状态置为可用,以使所述旧服务实例恢复接收请求;
将所述新服务实例的服务状态置为不可用;
检测所述旧服务实例是否能够正常处理请求,在检测结果为是的情况下,删除所述新服务实例。
10.根据权利要求7-9中任意一项权利要求所述的系统,其特征在于,所述新服务启用模块还包括:
延迟下线判断单元,用于判断是否需要延迟下线,
延迟下线单元,用于在需要延迟下线时,获取延迟时间,在延迟时间到达后,根据所述旧服务实例的IP地址将所述旧服务实例的服务状态置为不可用。
11.根据权利要求7所述的系统,其特征在于,所述系统还包括:
审批协助信息接收单元,用于通过审批协助信息填写页面接收审批协助信息,其中,所述审批协助信息包括:审批/协助流程、审批人/协助人、审批人/协助人联系方式、审批/协助内容;
通知信息生成单元,用于响应于用户对于第一控件的操作,根据所述审批协助信息生成待发送给各审批人/协助人的通知信息;
提示单元,用于将所述通知信息发送给各审批人/协助人,以提示各审批人/协助人进行审批/协助。
12.根据权利要求11所述的系统,其特征在于,所述系统还包括:
审批/协助流程节点生成单元,用于根据所述审批/协助流程生成审批/协助流程节点;
状态标记单元,用于响应于审批人/协助人对于第二控件的操作,将相应审批/协助流程节点的状态标记为已完成;
审批完成事件生成单元,用于在所述审批/协助流程节点的状态均为已完成时,生成所述审批协助流程完成事件。
13.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,该计算机可读指令可以被处理器执行以实现权利要求1-6中任意一项权利要求所述的方法。
14.一种计算机设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述计算机程序以实现权利要求1-6中任意一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010933367.4A CN111984272B (zh) | 2020-09-08 | 2020-09-08 | 应用自动上线的方法、系统、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010933367.4A CN111984272B (zh) | 2020-09-08 | 2020-09-08 | 应用自动上线的方法、系统、存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984272A true CN111984272A (zh) | 2020-11-24 |
CN111984272B CN111984272B (zh) | 2023-11-17 |
Family
ID=73448142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010933367.4A Active CN111984272B (zh) | 2020-09-08 | 2020-09-08 | 应用自动上线的方法、系统、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984272B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176790A (zh) * | 2011-12-26 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 应用发布方法和系统 |
CN105511968A (zh) * | 2015-12-31 | 2016-04-20 | 北京奇艺世纪科技有限公司 | 一种资源调度管理系统 |
CN107995169A (zh) * | 2017-11-21 | 2018-05-04 | 厦门点触科技股份有限公司 | 一种基于微服务架构的手机游戏服务端框架系统 |
CN108616599A (zh) * | 2018-05-11 | 2018-10-02 | 北京辰森世纪科技股份有限公司 | 应用服务注册、更新的方法及装置 |
CN109240708A (zh) * | 2018-07-02 | 2019-01-18 | 北京百度网讯科技有限公司 | 应用部署方法、装置、计算机设备及存储介质 |
CN109587169A (zh) * | 2018-12-29 | 2019-04-05 | 亿阳安全技术有限公司 | 一种服务准入的管理方法及装置 |
CN110750415A (zh) * | 2019-09-20 | 2020-02-04 | 平安普惠企业管理有限公司 | 接口服务配置方法、装置、介质和计算机设备 |
CN110990081A (zh) * | 2019-12-10 | 2020-04-10 | 北京懿医云科技有限公司 | 微服务注册、发现方法及装置、存储介质及电子设备 |
CN111273963A (zh) * | 2020-02-14 | 2020-06-12 | 广州极尚网络技术有限公司 | 应用程序配置信息生成方法、装置、计算机设备和介质 |
-
2020
- 2020-09-08 CN CN202010933367.4A patent/CN111984272B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176790A (zh) * | 2011-12-26 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 应用发布方法和系统 |
CN105511968A (zh) * | 2015-12-31 | 2016-04-20 | 北京奇艺世纪科技有限公司 | 一种资源调度管理系统 |
CN107995169A (zh) * | 2017-11-21 | 2018-05-04 | 厦门点触科技股份有限公司 | 一种基于微服务架构的手机游戏服务端框架系统 |
CN108616599A (zh) * | 2018-05-11 | 2018-10-02 | 北京辰森世纪科技股份有限公司 | 应用服务注册、更新的方法及装置 |
CN109240708A (zh) * | 2018-07-02 | 2019-01-18 | 北京百度网讯科技有限公司 | 应用部署方法、装置、计算机设备及存储介质 |
CN109587169A (zh) * | 2018-12-29 | 2019-04-05 | 亿阳安全技术有限公司 | 一种服务准入的管理方法及装置 |
CN110750415A (zh) * | 2019-09-20 | 2020-02-04 | 平安普惠企业管理有限公司 | 接口服务配置方法、装置、介质和计算机设备 |
CN110990081A (zh) * | 2019-12-10 | 2020-04-10 | 北京懿医云科技有限公司 | 微服务注册、发现方法及装置、存储介质及电子设备 |
CN111273963A (zh) * | 2020-02-14 | 2020-06-12 | 广州极尚网络技术有限公司 | 应用程序配置信息生成方法、装置、计算机设备和介质 |
Non-Patent Citations (4)
Title |
---|
MB5FCDF3C3C009F: "SpringBoot(十五):SpringBoot2.x集成eureka实现注高可用册中心,高可用的服务器提供者,以及消费者示例", pages 1 - 24, Retrieved from the Internet <URL:https://blog.51cto.com/u_15049790/4338193> * |
SEGMENTFAU: "聊聊eureka instance的overriddenstatus", pages 1 - 4, Retrieved from the Internet <URL:https://maimai.cn/article/detail?fid=408595618&efid=kfXwm0F3CahWVoe8krDv9w> * |
VENKI BALASUBRAMANIAN等: "A Scalable Cloud Platform for Active HealthcareMonitoring Applications", 《2014 IEEE CONFERENCE ON E-LEARNING, E-MANAGEMENT AND E-SERVICES (IC3E)》, pages 93 - 98 * |
文档分享: "itil体系管理)发布管理流程v1.0", pages 1 - 18, Retrieved from the Internet <URL:https://www.docin.com/p-1750918810.html> * |
Also Published As
Publication number | Publication date |
---|---|
CN111984272B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489161B (zh) | 一种版本文件的管理方法及相关装置 | |
CN108776643B (zh) | 一种基于版本控制流程的目标代码合并控制方法及系统 | |
WO2010057332A1 (en) | Provisioning method and system | |
CN113642004B (zh) | 一种容器镜像安全扫描与修复的方法、装置及设备 | |
CN108052336A (zh) | 一种分布式软件升级系统及其实现方法 | |
CN111162953A (zh) | 数据处理方法、系统升级方法和服务器 | |
CN110727575B (zh) | 一种信息处理方法、系统、装置、以及存储介质 | |
JP5989194B1 (ja) | テスト管理システムおよびプログラム | |
CN110659106B (zh) | 一种容器状态检查方法及装置 | |
CN114338363A (zh) | 一种持续集成方法、装置、设备及存储介质 | |
CN111506388B (zh) | 容器性能探测方法、容器管理平台及计算机存储介质 | |
CN112416394B (zh) | 一种服务升级方法、装置、存储介质及电子设备 | |
CN107203471B (zh) | 联调方法、服务平台及计算机存储介质 | |
WO2016086635A1 (zh) | 一种网元升级的管理方法及装置 | |
CN117055930A (zh) | 一种系统升级部署方法和系统 | |
CN111984272A (zh) | 应用自动上线的方法、系统、存储介质及计算机设备 | |
CN110187890B (zh) | 项目部署的方法、电子设备、存储介质 | |
CN109408104B (zh) | 一种获取游戏整合信息的方法及装置 | |
CN112882871B (zh) | 主机冲突检测方法、装置、设备及存储介质 | |
CN113434119B (zh) | 一种基于流程控制的业务处理方法及其装置 | |
CN110875832A (zh) | 异常业务监控方法、装置、系统及计算机可读存储介质 | |
CN113254028A (zh) | 代码处理方法、装置、电子设备及存储介质 | |
CN113485759A (zh) | 微服务配置信息管理系统、方法、电子设备及存储介质 | |
CN112667491A (zh) | 虚拟机的功能测试方法及装置 | |
CN112905428A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |