CN114374677B - 跨平台在线发布方法、装置、计算设备及存储介质 - Google Patents
跨平台在线发布方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN114374677B CN114374677B CN202011103485.9A CN202011103485A CN114374677B CN 114374677 B CN114374677 B CN 114374677B CN 202011103485 A CN202011103485 A CN 202011103485A CN 114374677 B CN114374677 B CN 114374677B
- Authority
- CN
- China
- Prior art keywords
- application
- machine
- instance
- service
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000003860 storage Methods 0.000 title claims abstract description 9
- 238000001514 detection method Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 17
- 230000005856 abnormality Effects 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 12
- 238000009826 distribution Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 18
- 238000013515 script Methods 0.000 abstract description 18
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 9
- 238000012549 training Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012417 linear regression Methods 0.000 description 2
- YHXISWVBGDMDLQ-UHFFFAOYSA-N moclobemide Chemical compound C1=CC(Cl)=CC=C1C(=O)NCCN1CCOCC1 YHXISWVBGDMDLQ-UHFFFAOYSA-N 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 101001095088 Homo sapiens Melanoma antigen preferentially expressed in tumors Proteins 0.000 description 1
- 102100037020 Melanoma antigen preferentially expressed in tumors Human genes 0.000 description 1
- 101150096185 PAAS gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- 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/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种跨平台在线发布方法、装置、计算设备及存储介质,该方法包括:获取待发布应用涉及的管理实例的配置信息,根据配置信息分析得到管理实例的端口信息、应用介质的目录信息以及业务实例所在的机器及路径;根据业务实例所在的机器及路径下载待发布应用的应用介质至目标机器的临时位置下;当接收到发布请求时,根据管理实例的端口信息调用解部署接口以进行解部署,以及根据应用介质的目录信息将临时位置下的应用介质拷贝到发布目录下并进行应用介质的部署。本发明方案,可自动实现向各种类型的应用服务中间件发布待发布应用,而无需编写针对不同中间件的不同脚本;以及,发布过程无需启停应用实例,提高了发布效率。
Description
技术领域
本发明涉及计算机演练技术领域,具体涉及一种跨平台在线发布方法、装置、计算设备及存储介质。
背景技术
随着业务规模的扩大和业务细化拆分,导致***建设越来越多,日常业务***的发布变更质量和效率尤其重要。企业逐步向中台化转型,讲究“薄应用、厚PAAS”的理念,业务需求变更迭代更加频繁,为了业务***发布时业务受的影响尽可能小,保证业务***发布的质量和效率,一般都会采用自动化发布的方法。
目前较为主流的自动化应用发布方案主要是全量基于脚本的自动化发布方法,通过编写一系列的shell、Python、perl脚本固化发布流程,脚本调用包含应用的启停动作,相比纯人工发布方式,发布质量和效率有一定提升。
然而,发明人在实施本发明实施例的过程中发现,目前主流的全量基于脚本的自动化发布方法至少存在如下缺陷:其一,脚本都是通过调用各种产品软件封装好的命令行进行实现,必须进行应用的启停操作,而随着复杂度的增加应用启停耗时会比较长,进而影响应用发布的效率;其二,企业的软件存在的种类比较多,其中应用服务器中间件是业务***的核心软件,其上应用的发布质量和效率直接影响了整个业务***的发布质量和效率,二纯脚本的方式,需要针对同不同类型,不同厂家的中间件编写对应的脚本,不具备跨平台特性,同时脚本维护工作量大,在业务***达到一定百级规模后,脚本维护成本几何倍数增加。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的跨平台在线发布方法、装置、计算设备及存储介质。
根据本发明实施例的一个方面,提供了一种跨平台在线发布方法,包括:
获取待发布应用涉及的管理实例的配置信息,根据所述配置信息分析得到管理实例的端口信息、业务实例所在的机器及应用路径以及应用介质的目录信息;
根据所述业务实例所在的机器下载待发布应用的应用介质至目标机器的临时位置下;
当接收到发布请求时,根据所述管理实例的端口信息调用解部署接口以进行现行应用介质的解部署,以及根据所述应用路径和目录信息将临时位置下的所述应用介质拷贝到应用路径下的发布目录中;
根据所述管理实例的端口信息调用部署接口以进行所述应用介质的部署。
根据本发明实施例的另一方面,提供了一种跨平台在线发布装置,包括:
获取模块,适于获取待发布应用涉及的管理实例的配置信息;
分析模块,适于根据所述配置信息分析得到管理实例的端口信息、业务实例所在的机器及应用路径以及应用介质的目录信息;;
下载模块,适于根据所述业务实例所在的机器下载待发布应用的应用介质至目标机器的临时位置下;
发布模块,适于当接收到发布请求时,根据所述管理实例的端口信息调用解部署接口以进行现行应用介质的解部署,以及根据所述应用路径和目录信息将临时位置下的所述应用介质拷贝到应用路径下的发布目录中;根据所述管理实例的端口信息调用部署接口以进行所述应用介质的部署。
根据本发明实施例的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述跨平台在线发布方法对应的操作。
根据本发明实施例的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述跨平台在线发布方法对应的操作。
根据本发明实施例的跨平台在线发布方法、装置、计算设备及存储介质,可以跨平台适配常见中间件类型的在线发布,无需重新启动应用实例,直接通过适配机制完成异构中间件常用标准化操作,无需编写大量的脚本,提高了发布效率,而且降低了运维难度和工作量。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明的在线发布***的构成图;
图2示出了本发明的在线发布适配器的指令触发流程图;
图3示出了本发明实施例提供的跨平台在线发布方法的流程图;
图4示出了在线发布***在发布过程中的交互示意图;
图5示出了本发明的在线发布的整体流程图;
图6示出了本发明实施例提供的跨平台在线发布装置的结构示意图;
图7示出了本发明实施例提供的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1示出了本发明的在线发布***的构成图。如图1所示,该***包括在线发布服务,节点以及在线发布适配器。
其中,在线发布服务和节点(图中示出了3个,具体实施时不以此为限)两部分采用分布式架构,在线发布服务部署为服务管理端,而节点则分散部署到各台机器上,每台机器上具有需要发布到的应用服务中间件(下文中简称中间件),这样架构可以提高在线发布的效率和质量;以及,在线发布服务的作用是发布信息的记录和归类,节点的作用是从文件服务器下载介质、上传配置文件,发布适配等完成在线发布服务发送过来的一系列指令动作。
其中,在线发布适配器是本发明的核心模块,其用于完成不同类型中间件的在线发布。在线发布适配器是针对每一类具体应用(相当于每一类中间件)而开发的适配器,每一个指令都会触发在线发布适配器的一个具体方法。这个发布适配器分为服务适配器和节点适配器,服务适配器运行在在线发布服务上,节点适配器运行在节点上,相应的,该在线发布适配器也是分布式的。
图2示出了本发明的在线发布适配器的指令触发流程图。如图2所示,针对每一类中间件的每一个动作,服务适配器和节点适配器都需要先注册,在发布过程中才能被正常触发执行相应的指令。该在线发布适配器针对不同的中间件实现了标准化的方法,无需编写各种各样的脚本,减少了脚本开发和维护成本,降低了发布难度。
图3示出了本发明实施例提供的跨平台在线发布方法的流程图。图4示出了在线发布***在发布过程中的交互示意图。在本实施例中,将结合图3和图3来进行说明。其中,跨平台是指跨中间件类型,例如,应用a需要同时发布到类型1和类型2的中间件上,则认为需要进行跨平台发布。该方法基于前文公开的在线发布***来实现。
如图3所示,该方法包括以下步骤:
步骤S310:获取待发布应用涉及的管理实例的配置信息,根据该配置信息分析得到管理实例的端口信息、业务实例所在的机器及应用路径以及应用介质的目录信息。
每种类型的中间件产品由一个控制台来管理,该控制台只能对相应类型的中间件产品来进行管理。其中,待发布应用涉及的管理实例是指管理待发布到的应用服务中间件的控制台实例。举例来说,待发布应用要发布到类型1和类型2的中间件,则管理实例是指管理类型1和类型2的中间件的控制台实例。换言之,在本发明实施例的在线发布***和中间件之间还具有一层中间件的控制台,该控制台无法实现跨中间件类型的管理,因而需要本发明的在线发布***来完成跨中间件类型的发布。
具体地,首先进行信息采集,各个管理实例的配置信息是由部署在该管理实例所管理的机器上的节点上报给在线发布服务的,对于每个管理实例,其配置信息包括该管理实例及其所管理的机器(中间件安装在机器上),以及机器上的业务实例的信息;然后进行信息分析,在线发布服务获取节点采集来的此次待发布应用涉及的管理实例的配置信息,对这些管理实例的配置信息进行分析,从中分析出管理实例的端口信息、业务实例所在的机器及应用路径以及应用介质的目录信息,其中,管理实例的端口信息反映的是应用发布过程中解部署以及部署的接口,业务实例所在的机器及应用路径是指待发布应用的历史版本所发布到的机器以及具体发布到的路径,以及,业务实例即历史版本实例,应用介质的目录信息则是指待发布应用的历史版本的介质(后文中称为现行介质)在该发布路径下的目录。
举例来说,应用a需要进行版本升级,该应用a的历史版本是在机器1和机器2上的,其中,机器1上的中间件类型为类型1,机器2上的中间件类型为类型2,则认为应用a需要发布到类型1和类型2的中间件上,具有跨平台发布需求,则通过部署在机器1和机器2上的节点上传分别对其进行管理的管理实例1和管理实例2的配置信息,在线发布服务获取到该配置信息后,则分析出管理实例1和管理实例2的端口信息,应用a的历史版本所发布到的机器1和机器2及其中的应用路径,以及应用a的历史版本的现行介质在该应用路径下的目录。
在本发明的一些可选的实施例中,在进行信息分析之后,还需要进行信息分类:在线发布服务以单个待发布应用为单位,为该管理实例的端口信息、应用介质的目录信息以及业务实例所在的机器及路径进行打标处理,使得对应不同待发布应用的信息具有不同的标识信息。通常情况下,一个发布周期内(例如,一晚上),通常要发布多个待发布应用,通过上述独立打标的方式,可为每个待发布应用的信息打上独立的标识,不同待发布应用的标识不同,以便后续在执行发布动作时,可以明确各项信息对应的待发布应用,避免造成混乱。
步骤S320:根据该业务实例所在的机器下载待发布应用的应用介质至目标机器的临时位置下。
针对任一待发布应用,在线发布服务根据该待发布应用对应的业务实例所在的机器确定出该待发布应用的历史版本所发布到的机器,并通知部署在该机器上的目标节点进行该待发布应用的应用介质的下载,目标节点将应用介质下载到其所在机器的临时位置,以便真正发布时直接从本地拷贝,从而节省发布时的网络流量,提升了发布效率。
延用前文举例来说,在线发布服务根据业务实例所在的机器确定出应用a需要发布到的机器1和机器2,然后通知机器1和机器2上部署的目标节点1和目标节点2分别进行应用a的应用介质的下载,并存放在机器1和机器2分别的临时位置中。
如图4所示,上述步骤S310至步骤S320中的信息采集(涉及节点上传配置)、信息分析与分类以及应用介质下载的过程,都处于正式发布前的预处理阶段,该预处理阶段在空闲时间提前操作,减少正式发布的时间。
步骤S330:当接收到发布请求时,根据该管理实例的端口信息调用解部署接口以进行现行应用介质的解部署,以及根据该应用路径和目录信息将临时位置下的该应用介质拷贝到发布目录下。
其中,通过在线发布服务发起在线发布请求,而后与在线发布适配器进行通信,在线发布适配器接收到该发布请求后,可根据需要发布到的不同类型的中间件完成相应的发布动作。
具体地,服务适配器在接收到在线发布请求后,针对任一待发布应用,首先进行应用介质解部署,该解部署的过程包括:服务适配器下发指令通知节点适配器(部署在目标节点上的节点适配器,下同)根据该管理实例的端口信息调用解部署接口,通过该解部署接口完成对该待发布应用的现行介质的解部署,其中,现行介质即为待发布应用的历史版本所对应的介质。
以及,在解部署完成后,进行应用介质替换,服务适配器下发指令通知节点适配器根据应用路径和目录信息进行应用介质替换,节点适配器响应该指令将机器中临时位置处的最新的应用介质拷贝到应用路径下的发布目录中,替换该发布目录下的现行介质,其中,发布目录是指目录信息下需要进行内容更改的目录,例如,在应用路径下共有现行介质的5个文件夹构成的目录信息,此次发布只需对其中2个文件夹中的介质进行替换,则发布目录为该2个文件夹对应的目录。
步骤S340:根据该管理实例的端口信息调用部署接口以进行该应用介质的部署。
当完成应用介质替换后,则可进行应用介质部署,服务适配器下发指令通知节点适配器根据管理实例的端口信息调用部署接口,通过该部署接口完成替换后的应用介质的部署,此时则发布完成。
如图4所示,上述步骤S330和步骤S340中的应用介质解部署、应用介质替换以及应用介质部署的过程,都处于在线发布阶段,该在线发布阶段中由在线发布适配器根据待发布应用的发布需求(发布到的中间件类型、机器以及目录等)来执行灵活发布到任意类型中间件的发布动作,可以发布到多种类型中间件的机器上,无需编写大量的脚本进行中间件应用生命周期管理,减少了脚本开发和维护成本,降低了发布难度。并且,该在线发布阶段,可针对不同类型的中间件的应用实现在线发布,无需启停正在运行的应用实例,减少了启动过程中类重新加载的时间,大大提升了业务***发布的效率,例如,当前对应用a进行发布,则无需启停正在运行的历史版本的应用a,然后进行发布,而可以动态加载,实现在线发布。
为更加清晰的说明跨平台发布的过程,下面以任一待发布应用需要发布到多种中间件类型的情况进行说明:针对任一待发布应用,若该待发布应用对应有多个管理实例,即节点上报了该待发布应用的多个管理实例的配置信息,其中,一个管理实例对应一种类型的中间件,则表明需要发布到多个中间件平台,则在进行应用介质解部署时,根据该多个管理实例的端口信息并发调用多个解部署接口以进行现行应用介质的解部署;以及,在进行应用介质部署时,根据该多个管理实例的端口信息并发调用多个部署接口以进行应用介质的部署。这种并发调用的方式,可快速通过标准化的方法将待发布应用发布到多种类型的中间件平台,无需针对每种类型中间件编写相应的脚本。
另外,在本发明的一些可选的实施例中,在该进行该应用介质的部署之后,进一步进行发布验证,在这些可选的实施例中,通过多维度的发布验证来检测该待发布应用的发布是否正常,其中多维度包括以下至少两项:主机指标异常检测、数据库连接异常检测、集群负载异常检测和/或应用类指标异常检测,通过多维度指标结合AI算法进行分类异常检测,再进行组合判断,有任意维度的异常检测失败都认为发布异常。该过程即对应图4中的发布验证阶段。
其中,主机指标异常检测:通过BOMC或采集主机的Disk_io_util、CPU_util_pct、CPU_iowait_time和Disk_await等主机指标数据,模型选择LSTM时间序列拟合算法,通过输入门、遗忘门、输出门网络结构可以很好的学习存储较长时间的时间序列性质,提高对未来序列波动的预测能力,将指标的历史数据传入训练模型,拟合效果比较理想。训练LSTM模型,通过对滑动窗口的大小、激活函数的选择、隐含层的层数以及神经元的个数等参数调优,尽可能使得模型具有较高的准确率和推广能力。
其中,数据库连接异常检测:将模型的接口封装和部署发布,最终以restful接口的形式提供检测服务。异常数据进行人工打标,打标的结果送入模型再度优化模型。
其中,集群负载异常检测:岭回归是线性回归模型的一种,其与普通的最小二乘法的不同之处在于,加入了惩罚项L2范数,主要目的是为了防止过拟合,进而使得模型有更高的适用性和准确率。训练岭回归模型,与普通的线性回归模型训练类似,输入经过数据预处理及特征工程后的训练数据集,指定初始学习率即可训练模型。对岭回归模型进行迭代次数和学习率等参数进行调优,尽可能使得模型具有较高的准确率和推广能力。
其中,应用类指标异常检测:arima算法是最常用的时间序列算法之一,善于预测走势有规律的指标,如平稳型、趋势增长型、周期型等有规律的指标特征。其中核心参数是p,q的定阶以及差分d。目前的auto-arima算法可自动选择最优化参数。其优势在于模型相对简单,可解释性较强。xgboost算法的基本思想是一种提升树的思想,后一个模型学习拟合前一个模型的残差,由此反复迭代直到拟合全部的残差。通过较好的特征转化后建立的xgboost模型用来做时间序列的回归在大部分指标集上表现较好。训练arima和Xgoost模型,首先是特征工程,借助woe转化采用基尼系数为基准筛选重要的特征,抽取模型需要的时序特征和数理特征参与模型训练。Auto-arima只需要传入特征工程的训练数据集即可,算法本身会自动寻找合适的阶p,q,差分参数d;同理将特征转化后的训练数据集输入xgboost算法训练模型,主要任务是筛选出最优的参数,包括最大迭代次数、学习率、最大棵树、树的最大深度参数进行调优,使用测试集以MAPE作为评判标准得出有效模型,尽可能使得模型具有较高的准确率和推广能力。
在上述多维度检测可选实施例中,若检测出由于应用介质导致的异常,即应用类指标异常,则从临时位置获取历史缓存的现行应用介质,回退到前一版本。在机器的临时位置中,缓存有前一个版本和当前版本的应用介质,其中,前一版本的应用介质即为现行应用介质,若应用介质导致发布异常,则节点可快速从机器的临时位置获取现行应用介质并回退到前一版本,实现快速回退。
根据本实施例提供的跨平台在线发布方法,至少可以实现如下效果:
其一,发布效率提升。通过在线适配器机制解决异构中间件的在线发布,无需在发布过程中重启中间件实例,减少了发布中耗时较长的环节,大大提升了发布的效率。
其二,确保发布质量和效率。发布动作与发布验证联动,采用多维度AI算法发布验证机制,在在线发布完成后立即对发布结果进行组合判断,确保发布质量的同时尽早的发现发布失败的服务采取修复措施,进一步提升发布效率。
其三,减少人工维护脚本工作量。在线发布适配器实现了跨中间件平台的发布动作标准化管理,在提升发布效率的同时将中间件与发布相关的各种动作标准化成内部方法,无需编写大量的脚本,降低运维难度的同时降低了维护的工作量。
为便于对本发明实施例的理解,下面以一个完整的发布流程图来明示本发明中涉及的在线发布过程。图5示出了本发明的在线发布的整体流程图。如图5所示,共包括4个阶段:
阶段一,预处理阶段:在空闲时间提前操作,减少正式发布的时间,主要包括应用包的备份,新应用包下载、应用版本创建,新应用包推送操作。
阶段二,发布阶段:通过发布适配器适配不同中间件类型,将应用包发布到对应类型的中间件上。
阶段三,验证阶段:结合AI算法通过多维度判断已发布版本是否存在异常,确保发布版本的质量。
阶段四,回退阶段:若验证阶段异常检测出在线发布异常是由于应用问题导致则获取备份的应用包回退到上一版本。
图6示出了本发明实施例提供的跨平台在线发布装置的结构示意图。如图6所示,该装置包括:
获取模块610,适于获取待发布应用涉及的管理实例的配置信息;
分析模块620,适于根据所述配置信息分析得到管理实例的端口信息、业务实例所在的机器及应用路径以及应用介质的目录信息;;
下载模块630,适于根据所述业务实例所在的机器下载待发布应用的应用介质至目标机器的临时位置下;
发布模块640,适于当接收到发布请求时,根据所述管理实例的端口信息调用解部署接口以进行现行应用介质的解部署,以及根据所述应用路径和目录信息将临时位置下的所述应用介质拷贝到应用路径下的发布目录中;根据所述管理实例的端口信息调用部署接口以进行所述应用介质的部署。
在一种可选的方式中,待发布应用涉及的管理实例是指管理待发布到的应用服务中间件的控制台实例。
在一种可选的方式中,该装置还包括:分类模块,适于以单个待发布应用为单位,为所述管理实例的端口信息、业务实例所在的机器及路径以及应用介质的目录信息进行打标处理,使得对应不同待发布应用的信息具有不同的标识信息。
在一种可选的方式中,针对任一待发布应用,若该待发布应用对应有多个管理实例,所述发布模块进一步包括:
根据该多个管理实例的端口信息并发调用多个解部署接口以进行现行应用介质的解部署;
根据该多个管理实例的端口信息并发调用多个部署接口以进行应用介质的部署。
在一种可选的方式中,该装置还包括:验证模块,适于通过多维度的发布验证来检测所述待发布应用的发布是否正常,其中多维度包括以下至少两项:主机指标异常检测、数据库连接异常检测、集群负载异常检测和/或应用类指标异常检测。
在一种可选的方式中,该装置还包括:回退模块,适于若检测出由于应用介质导致的异常,则从所述临时位置获取历史缓存的现行应用介质,回退到前一版本。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的跨平台在线发布方法。
图7示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图7所示,该计算设备可以包括:处理器(processor)702、通信接口(Communications Interface)704、存储器(memory)706、以及通信总线708。
其中:处理器702、通信接口704、以及存储器706通过通信总线708完成相互间的通信。通信接口704,用于与其它设备比如客户端或其它服务器等的网元通信。处理器702,用于执行程序710,具体可以执行上述用于计算设备的跨平台在线发布方法实施例中的相关步骤。
具体地,程序710可以包括程序代码,该程序代码包括计算机操作指令。
处理器702可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器706,用于存放程序710。存储器706可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序710具体可以用于使得处理器702执行以下操作:
获取待发布应用涉及的管理实例的配置信息,根据所述配置信息分析得到管理实例的端口信息、业务实例所在的机器及应用路径以及应用介质的目录信息;
根据所述业务实例所在的机器下载待发布应用的应用介质至目标机器的临时位置下;
当接收到发布请求时,根据所述管理实例的端口信息调用解部署接口以进行现行应用介质的解部署,以及根据所述应用路径和目录信息将临时位置下的所述应用介质拷贝到应用路径下的发布目录中;
根据所述管理实例的端口信息调用部署接口以进行所述应用介质的部署。
在一种可选的方式中,待发布应用涉及的管理实例是指管理待发布到的应用服务中间件的控制台实例。
在一种可选的方式中,所述程序710进一步使所述处理器702执行以下操作:
以单个待发布应用为单位,为所述管理实例的端口信息、业务实例所在的机器及路径以及应用介质的目录信息进行打标处理,使得对应不同待发布应用的信息具有不同的标识信息。
在一种可选的方式中,所述程序710进一步使所述处理器702执行以下操作:
针对任一待发布应用,若该待发布应用对应有多个管理实例,根据该多个管理实例的端口信息并发调用多个解部署接口以进行现行应用介质的解部署;
根据该多个管理实例的端口信息并发调用多个部署接口以进行应用介质的部署。
在一种可选的方式中,所述程序710进一步使所述处理器702执行以下操作:
通过多维度的发布验证来检测所述待发布应用的发布是否正常,其中多维度包括以下至少两项:主机指标异常检测、数据库连接异常检测、集群负载异常检测和/或应用类指标异常检测。
在一种可选的方式中,所述程序710进一步使所述处理器702执行以下操作:
若检测出由于应用介质导致的异常,则从所述临时位置获取历史缓存的现行应用介质,回退到前一版本。
在此提供的算法或显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明实施例的内容,并且上面对特定语言所做的描述是为了披露本发明实施例的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明实施例并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明实施例进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
Claims (9)
1.一种跨平台在线发布方法,包括:
获取待发布应用涉及的多个管理实例的配置信息,根据所述配置信息分析得到管理实例的端口信息、业务实例所在的机器及应用路径以及应用介质的目录信息;其中,所述管理实例是指管理待发布到的应用服务中间件的控制台实例;每个管理实例对应一种类型的中间件;所述业务实例所在的机器及应用路径是指待发布应用的历史版本所发布到的机器以及具体发布到的路径;所述应用介质的目录信息则是指待发布应用的历史版本的介质在该发布路径下的目录;
根据所述待发布应用对应的业务实例所在的机器确定出该待发布应用的历史版本所发布到的机器,并通知部署在该机器上的目标节点进行该待发布应用的应用介质的下载,目标节点将应用介质下载到其所在机器的临时位置;
当服务适配器接收到发布请求时,该服务适配器下发指令通知节点适配器,根据所述管理实例的端口信息调用解部署接口,以通过该解部署接口进行对该待发布应用的现行应用介质的解部署,以及该服务适配器下发指令通知该节点适配器根据所述应用路径和目录信息进行应用介质替换,该节点适配器响应该指令将机器中临时位置下的最新的所述应用介质拷贝到应用路径下的发布目录中,替换该发布目录下的现行应用介质;其中,该服务适配器运行在在线发布服务上,该节点适配器运行在节点上;
该服务适配器下发指令通知该节点适配器根据所述管理实例的端口信息调用部署接口,以通过该部署接口进行所述应用介质的部署。
2.根据权利要求1所述的方法,其中,在所述根据所述配置信息分析得到管理实例的端口信息、业务实例所在的机器及应用路径以及应用介质的目录信息之后,所述方法还包括:
以单个待发布应用为单位,为所述管理实例的端口信息、业务实例所在的机器及路径以及应用介质的目录信息进行打标处理,使得对应不同待发布应用的信息具有不同的标识信息。
3.根据权利要求1所述的方法,其中,针对任一待发布应用,若该待发布应用对应有多个管理实例,则所述根据所述管理实例的端口信息调用解部署接口以通过该解部署接口进行对该待发布应用的现行应用介质的解部署进一步包括:
根据该多个管理实例的端口信息并发调用多个解部署接口以通过该多个解部署接口进行对该待发布应用的现行应用介质的解部署;
以及,所述根据所述管理实例的端口信息调用部署接口以通过该部署接口进行所述应用介质的部署进一步包括:
根据该多个管理实例的端口信息并发调用多个部署接口以通过该多个部署接口进行应用介质的部署。
4.根据权利要求1所述的方法,其中,在所述进行所述应用介质的部署之后,所述方法还包括:
通过多维度的发布验证来检测所述待发布应用的发布是否正常,其中多维度包括以下至少两项:主机指标异常检测、数据库连接异常检测、集群负载异常检测和/或应用类指标异常检测。
5.根据权利要求4所述的方法,其中,在所述通过多维度的发布验证来检测所述待发布应用的发布是否正常之后,所述方法还包括:
若检测出由于应用介质导致的异常,则从所述临时位置获取历史缓存的现行应用介质,回退到前一版本。
6.一种跨平台在线发布装置,包括:
获取模块,适于获取待发布应用涉及的多个管理实例的配置信息;
分析模块,适于根据所述配置信息分析得到管理实例的端口信息、业务实例所在的机器及应用路径以及应用介质的目录信息;其中,所述管理实例是指管理待发布到的应用服务中间件的控制台实例;每个管理实例对应一种类型的中间件;所述业务实例所在的机器及应用路径是指待发布应用的历史版本所发布到的机器以及具体发布到的路径;所述应用介质的目录信息则是指待发布应用的历史版本的介质在该发布路径下的目录;
下载模块,适于根据所述待发布应用对应的业务实例所在的机器确定出该待发布应用的历史版本所发布到的机器,并通知部署在该机器上的目标节点进行该待发布应用的应用介质的下载,目标节点将应用介质下载到其所在机器的临时位置;
发布模块,适于当服务适配器接收到发布请求时,该服务适配器下发指令通知节点适配器,根据所述管理实例的端口信息调用解部署接口,以通过该解部署接口进行对该待发布应用的现行应用介质的解部署,以及该服务适配器下发指令通知节点适配器根据所述应用路径和目录信息进行应用介质替换,该节点适配器响应该指令将机器中临时位置下的最新的所述应用介质拷贝到应用路径下的发布目录中,替换该发布目录下的现行应用介质;其中,该服务适配器运行在在线发布服务上,该节点适配器运行在节点上;该服务适配器下发指令通知该节点适配器根据所述管理实例的端口信息调用部署接口,以通过该部署接口进行所述应用介质的部署。
7.根据权利要求6所述的装置,其中,所述装置还包括:分类模块,适于以单个待发布应用为单位,为所述管理实例的端口信息、业务实例所在的机器及路径以及应用介质的目录信息进行打标处理,使得对应不同待发布应用的信息具有不同的标识信息。
8.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-5中任一项所述的跨平台在线发布方法对应的操作。
9.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-5中任一项所述的跨平台在线发布方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011103485.9A CN114374677B (zh) | 2020-10-15 | 2020-10-15 | 跨平台在线发布方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011103485.9A CN114374677B (zh) | 2020-10-15 | 2020-10-15 | 跨平台在线发布方法、装置、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114374677A CN114374677A (zh) | 2022-04-19 |
CN114374677B true CN114374677B (zh) | 2023-12-26 |
Family
ID=81137859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011103485.9A Active CN114374677B (zh) | 2020-10-15 | 2020-10-15 | 跨平台在线发布方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114374677B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419607A (zh) * | 2008-11-27 | 2009-04-29 | 浙江大学 | 使用命令行部署文件***中jar文件到模拟器的方法 |
CN101453410A (zh) * | 2007-12-07 | 2009-06-10 | 北京闻言科技有限公司 | 一种通过应用缓存提高文件下载速度的方法 |
CN101931944A (zh) * | 2010-07-23 | 2010-12-29 | 华为终端有限公司 | 在线升级终端补丁的方法、装置与*** |
CN103634144A (zh) * | 2013-11-15 | 2014-03-12 | 新浪网技术(中国)有限公司 | 多idc集群的配置文件管理方法、***和设备 |
CN104346697A (zh) * | 2014-10-31 | 2015-02-11 | 亚信科技(南京)有限公司 | 一种分级发布产品的方法及*** |
CN104378397A (zh) * | 2013-08-15 | 2015-02-25 | 世纪禾光科技发展(北京)有限公司 | 一种程序包增量更新发布的方法与*** |
CN105511854A (zh) * | 2015-11-26 | 2016-04-20 | 深圳市金立通信设备有限公司 | 一种应用回退方法及终端设备 |
KR20170047911A (ko) * | 2015-10-26 | 2017-05-08 | 에스케이텔레콤 주식회사 | 서버 업데이트 방법 및 업데이트 중에도 지속 운영 가능한 서버 |
CN106874040A (zh) * | 2017-01-17 | 2017-06-20 | 武汉天喻教育科技有限公司 | 基于Windows服务实现PC端软件静默升级的***及方法 |
CN107315608A (zh) * | 2017-06-22 | 2017-11-03 | 上海艾融软件股份有限公司 | 面向移动端混合模式热更新方法 |
CN108874409A (zh) * | 2017-05-09 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 一种信息更新方法、装置、服务器及*** |
CN109981461A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种数据传输方法、装置及*** |
WO2020000811A1 (zh) * | 2018-06-29 | 2020-01-02 | 平安科技(深圳)有限公司 | 应用组件部署方法、装置及计算机存储介质 |
CN110780937A (zh) * | 2019-09-16 | 2020-02-11 | 腾讯大地通途(北京)科技有限公司 | 任务发布方法、装置、计算机可读存储介质及设备 |
CN110855735A (zh) * | 2019-09-20 | 2020-02-28 | 广州亚美信息科技有限公司 | 项目发布方法、装置、***和计算机设备 |
CN111240722A (zh) * | 2020-01-07 | 2020-06-05 | 翱捷科技(上海)有限公司 | 空中升级固件的方法及其所应用的终端、服务器及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2751682A4 (en) * | 2011-08-29 | 2015-01-07 | Fiberlink Comm Corp | PLATFORM FOR USE AND DISTRIBUTION OF MODULES TO END POINTS |
-
2020
- 2020-10-15 CN CN202011103485.9A patent/CN114374677B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453410A (zh) * | 2007-12-07 | 2009-06-10 | 北京闻言科技有限公司 | 一种通过应用缓存提高文件下载速度的方法 |
CN101419607A (zh) * | 2008-11-27 | 2009-04-29 | 浙江大学 | 使用命令行部署文件***中jar文件到模拟器的方法 |
CN101931944A (zh) * | 2010-07-23 | 2010-12-29 | 华为终端有限公司 | 在线升级终端补丁的方法、装置与*** |
CN104378397A (zh) * | 2013-08-15 | 2015-02-25 | 世纪禾光科技发展(北京)有限公司 | 一种程序包增量更新发布的方法与*** |
CN103634144A (zh) * | 2013-11-15 | 2014-03-12 | 新浪网技术(中国)有限公司 | 多idc集群的配置文件管理方法、***和设备 |
CN104346697A (zh) * | 2014-10-31 | 2015-02-11 | 亚信科技(南京)有限公司 | 一种分级发布产品的方法及*** |
KR20170047911A (ko) * | 2015-10-26 | 2017-05-08 | 에스케이텔레콤 주식회사 | 서버 업데이트 방법 및 업데이트 중에도 지속 운영 가능한 서버 |
CN105511854A (zh) * | 2015-11-26 | 2016-04-20 | 深圳市金立通信设备有限公司 | 一种应用回退方法及终端设备 |
CN106874040A (zh) * | 2017-01-17 | 2017-06-20 | 武汉天喻教育科技有限公司 | 基于Windows服务实现PC端软件静默升级的***及方法 |
CN108874409A (zh) * | 2017-05-09 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 一种信息更新方法、装置、服务器及*** |
CN107315608A (zh) * | 2017-06-22 | 2017-11-03 | 上海艾融软件股份有限公司 | 面向移动端混合模式热更新方法 |
CN109981461A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种数据传输方法、装置及*** |
WO2020000811A1 (zh) * | 2018-06-29 | 2020-01-02 | 平安科技(深圳)有限公司 | 应用组件部署方法、装置及计算机存储介质 |
CN110780937A (zh) * | 2019-09-16 | 2020-02-11 | 腾讯大地通途(北京)科技有限公司 | 任务发布方法、装置、计算机可读存储介质及设备 |
CN110855735A (zh) * | 2019-09-20 | 2020-02-28 | 广州亚美信息科技有限公司 | 项目发布方法、装置、***和计算机设备 |
CN111240722A (zh) * | 2020-01-07 | 2020-06-05 | 翱捷科技(上海)有限公司 | 空中升级固件的方法及其所应用的终端、服务器及*** |
Non-Patent Citations (4)
Title |
---|
Efficient Publish/Subscribe Through a Self-Organizing Broker Overlay and its Application to SIENA;Roberto Baldoni et al.;《The Computer Journal》;全文 * |
Mobile Application Development Experiences on Apple’s iOS and Android OS;Kim W. Tracy;《IEEE Potentials》;全文 * |
海量存储***的部署方案设计;贾昭元;管海兵;;计算机应用与软件(第08期);全文 * |
软件发布机制体系结构研究;赵雨水;左春;杨立;杨泳;;计算机工程与设计(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114374677A (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10419546B2 (en) | Migration assessment for cloud computing platforms | |
EP2210183B1 (en) | Managing updates to create a virtual machine facsimile | |
JP5535484B2 (ja) | 自動ソフトウェアテストフレームワーク | |
US7765081B2 (en) | Systems and methods for a distributed execution environment with per-command environment management | |
US9535754B1 (en) | Dynamic provisioning of computing resources | |
US8918783B2 (en) | Managing virtual computers simultaneously with static and dynamic dependencies | |
CN108776643B (zh) | 一种基于版本控制流程的目标代码合并控制方法及*** | |
CN110740184B (zh) | 基于微服务架构的交易策略测试*** | |
JP2017201470A (ja) | 設定支援プログラム、設定支援方法及び設定支援装置 | |
US9256509B1 (en) | Computing environment analyzer | |
US20070234328A1 (en) | File handling for test environments | |
CA3150183A1 (en) | Flink streaming processing engine method and device for real-time recommendation and computer equipment | |
CN110291505A (zh) | 减少应用的恢复时间 | |
US11151020B1 (en) | Method and system for managing deployment of software application components in a continuous development pipeline | |
US20050108704A1 (en) | Software distribution application supporting verification of external installation programs | |
CN114237754B (zh) | 一种数据加载方法、装置、电子设备以及存储介质 | |
US20060168492A1 (en) | Graceful load fail over | |
CN114374677B (zh) | 跨平台在线发布方法、装置、计算设备及存储介质 | |
CN116775061A (zh) | 微服务应用的部署方法、装置、设备及存储介质 | |
CN111552648A (zh) | 用于应用的自动验证方法和*** | |
CN113238956B (zh) | 异常应用的故障分析方法、装置、设备及存储介质 | |
US20230088318A1 (en) | Remotely healing crashed processes | |
CN111209197B (zh) | 应用程序持续集成测试方法、***、设备和存储介质 | |
US20210132934A1 (en) | Cluster deployment | |
CN113360389A (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 |