CN117270888B - 一种云端应用部署方法、系统、装置及计算机设备 - Google Patents

一种云端应用部署方法、系统、装置及计算机设备 Download PDF

Info

Publication number
CN117270888B
CN117270888B CN202311578313.0A CN202311578313A CN117270888B CN 117270888 B CN117270888 B CN 117270888B CN 202311578313 A CN202311578313 A CN 202311578313A CN 117270888 B CN117270888 B CN 117270888B
Authority
CN
China
Prior art keywords
deployment
function
execution
cloud application
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
Application number
CN202311578313.0A
Other languages
English (en)
Other versions
CN117270888A (zh
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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202311578313.0A priority Critical patent/CN117270888B/zh
Publication of CN117270888A publication Critical patent/CN117270888A/zh
Application granted granted Critical
Publication of CN117270888B publication Critical patent/CN117270888B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration 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)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种云端应用部署方法、系统、装置及计算机设备。所述方法包括:获取针对云端应用的部署函数;接收进度记录器按照函数部署顺序信息发送的执行触发通知;根据执行触发通知执行部署函数,并基于部署函数的执行结果,将云端应用部署于分布式服务器。采用本方法,将部署计算过程视为函数按照一定的顺序执行,注重部署计算过程中函数的逻辑,无需详细指定执行步骤,使得代码更易于理解,实现简单易用的云端应用部署;使用历史部署信息记录部署过程,当部署结果为失败时,相关人员可以通过历史部署信息记录的部署失败原因快速进行问题的定位诊断,提供可维护的部署过程;设定统一的函数编写规范和框架屏蔽个人风格引入的代码质量差异。

Description

一种云端应用部署方法、系统、装置及计算机设备
技术领域
本申请涉及私有云计算技术领域,特别是涉及一种云端应用部署方法、系统、装置及计算机设备。
背景技术
在云端应用部署执行过程中,不同的应用部署过程前后串连起来,整体上将花费较长的时间,任何一个中间环节的应用部署异常,部署都将中断,如果从头部署将引入大量重复工作,最终使得部署周期变长。
并且,对于开发人员而言,他们要专注于云端分布式部署的脚本或程序的业务逻辑实现;牵涉到多名开发人员时,需要有统一规范或者框架来屏蔽个人风格引入的代码质量差异。对于现场部署实施人员而言,他们能够根据部署现场实际情况,灵活地编排部署过程;同时,部署实施人员往往也希望能在部署异常出现时,能通过统一的视图快速发现问题、诊断定位问题。
通常采用容器技术(如Docker)进行云端应用的分布式部署。容器提供了将应用程序及其依赖打包成独立的镜像的能力,因此可以确保在不同的环境中以相同的方式运行,提供了环境一致性。每个容器都是独立且隔离的运行环境,不会互相影响。但是,容器技术的学习曲线较陡,部署和管理容器化应用程序的过程相对复杂,需要一定的技术知识和经验。
综合上述因素,在设备众多、应用众多、执行流程长的云端应用分布式部署场景下,如何提供易用的、可维护的、统一的云端应用分布式部署软件框架和操作规范,是一个亟待解决的工程问题。
发明内容
基于此,有必要针对上述技术问题,提供一种云端应用部署方法、系统、装置及计算机设备。
第一方面,本申请提供了一种云端应用部署方法。所述方法包括:
获取针对所述云端应用的部署函数;
接收进度记录器按照函数部署顺序信息发送的执行触发通知;其中,所述函数部署顺序信息,是由所述进度记录器基于预设的配置文件,以及所述云端应用的当前历史部署信息编排确定的;
根据所述执行触发通知执行所述部署函数,并基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器;其中,所述进度记录器根据传递的所述部署函数的执行结果生成所述云端应用的新的历史部署信息。
在其中一个实施例中,获取针对所述云端应用的部署函数,包括:
获取函数注册中心的注册函数列表;其中,所述注册函数列表由第一用户编写,并注册至所述函数注册中心;
获取所述注册函数列表的函数组;其中,所述注册函数列表,包括至少两个函数组,所述函数组用于分类不同的部署函数;
获取所述函数组的部署函数;其中,所述函数组,包括至少两个同类的部署函数;所述部署函数,包括执行开关,所述执行开关用于判断所述部署函数是否执行。
在其中一个实施例中,所述方法包括:
所述预设的配置文件,由所述进度记录器从配置管理器获取;
所述配置管理器,用于加载由第二用户编写的所述预设的配置文件,并进行合法性检验,得到合法性检验结果;
如果所述合法性检验结果指示所述配置文件具有合法性,所述配置管理器将所述配置文件作为合法配置文件,发送至所述进度记录器;
如果所述合法性检验结果指示所述配置文件不具有合法性,所述配置管理器向所述运行控制器传递用于指示终止部署的终止信息,结束本次部署。
在其中一个实施例中,所述方法还包括:
所述进度记录器基于预设的配置文件,计算待执行函数组;
所述进度记录器读取所述当前的历史部署信息,根据所述当前的历史部署信息,计算所述待执行函数组的函数索引信息;
所述进度记录器根据所述配置文件、所述待执行函数组和所述函数索引信息,编排确定所述函数部署顺序信息。
在其中一个实施例中,根据所述执行触发通知执行所述部署函数之后,所述方法还包括:
得到所述部署函数的执行结果,并向所述进度记录器传递所述部署函数的执行结果;
如果所述部署函数的执行结果指示部署执行失败,结束本次部署;
如果所述部署函数的执行结果指示部署执行成功,判断是否完成所有的函数部署步骤;
如果完成所有的所述函数部署步骤,结束本次部署;
如果没有完成所有的所述函数部署步骤,等待下一次所述函数部署步骤对应的所述部署函数的执行结果。
在其中一个实施例中,所述部署函数的执行结果指示部署执行失败,结束本次部署,包括:
所述部署函数的执行结果指示部署执行失败,结束本次部署,获取所述当前的历史部署信息;根据所述当前的历史部署信息的报错信息,恢复执行所述函数部署步骤。
在其中一个实施例中,基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器,包括:
基于所述部署函数的执行结果,通过网络远程方式,向待部署的云端应用下发应用部署指令;
其中,所述待部署的云端应用,接收所述应用部署指令,执行对应的部署操作,部署于所述分布式服务器。
第二方面,本申请还提供了一种云端应用部署系统。所述系统包括:配置管理器、运行控制器、函数注册中心、进度记录器;
所述进度记录器,分别连接所述配置管理器与所述运行控制器;
所述运行控制器,分别连接所述函数注册中心与所述进度记录器,用于执行以下步骤:
获取针对所述云端应用的部署函数;
接收进度记录器按照函数部署顺序信息发送的执行触发通知;其中,所述函数部署顺序信息,是由所述进度记录器基于预设的配置文件,以及所述云端应用的当前历史部署信息编排确定的;
根据所述执行触发通知执行所述部署函数,并基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器;其中,所述进度记录器根据传递的所述部署函数的执行结果生成所述云端应用的新的历史部署信息。
第三方面,本申请还提供了一种云端应用部署装置。所述装置包括:
函数获取模块,用于获取针对所述云端应用的部署函数;
通知接收模块,用于接收进度记录器按照函数部署顺序信息发送的执行触发通知;
部署执行模块,用于根据所述执行触发通知执行所述部署函数,并基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取针对所述云端应用的部署函数;
接收进度记录器按照函数部署顺序信息发送的执行触发通知;其中,所述函数部署顺序信息,是由所述进度记录器基于预设的配置文件,以及所述云端应用的当前历史部署信息编排确定的;
根据所述执行触发通知执行所述部署函数,并基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器;其中,所述进度记录器根据传递的所述部署函数的执行结果生成所述云端应用的新的历史部署信息。
上述云端应用部署方法、系统、装置及计算机设备,通过根据所述执行触发通知执行所述部署函数,并基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器,将部署计算过程视为函数按照一定的顺序执行,只需注重部署计算过程中函数的逻辑,无需详细指定执行步骤,使得代码更易于理解,实现更简单易用的云端应用部署;通过所述进度记录器根据传递的所述部署函数的执行结果生成所述云端应用的新的历史部署信息,使用历史部署信息记录部署过程,当部署结果为失败时,相关用户和人员可以通过历史部署信息记录的部署失败原因快速进行问题的定位诊断,提供可维护的部署过程;通过获取针对所述云端应用的部署函数,实现设定统一的函数编写规范和框架屏蔽个人风格引入的代码质量差异。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1展示本申请一个实施例中云端应用部署方法的应用环境图;
图2展示本申请一个实施例中云端应用部署方法的流程示意图;
图3展示本申请一个实施例中注册函数列表的组成示意图;
图4展示本申请一个实施例中配置管理器的流程示意图;
图5展示本申请一个实施例中进度记录器的流程示意图;
图6展示本申请一个实施例中执行结果的流程示意图;
图7展示本申请优选实施例中云端应用部署方法的流程示意图;
图8展示本申请一个实施例中云端应用部署装置的结构框图;
图9展示本申请一个实施例中计算机设备的内部结构图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供的云端应用部署方法,可以应用于如图1所示的应用环境中。函数注册中心130、运行控制器140、进度记录器150和配置管理器160都是软件的概念,用来描述图1所示的系统中的不同组件的功能。其中,第一用户110编写部署函数,注册到函数注册中心130,供运行控制器140调用。第一用户110为开发人员使用的用户终端,开发人员专注云端应用部署的脚本或程序的业务逻辑实现,由第一用户110编写的部署函数完成和业务逻辑的实现。函数注册中心130,负责缓存并管理具有部署功能的函数注册信息,只有符合定义规范、注册成功的函数才允许被运行控制器140调用。运行控制器140是本方法业务逻辑的执行模块,通过执行部署函数,完成指定的部署逻辑,最终实现对云端应用170的部署。运行控制器140通过网络远程方式与云端应用170连接,执行部署函数。
第二用户120为部署实施人员使用的用户端,部署实施人员负责处理函数的安装、配置和部署,确保部署函数能够在目标环境中正常运行,根据实际的部署需求填写配置文件,并由配置管理器160负责加载配置文件。配置文件包含配置参数,根据不同的配置参数,程序应用可以实现差异化的安装效果。进度记录器150,基于配置管理器160传递的配置文件和当前的历史部署信息,计算编排确定部署函数的执行顺序,进而触发运行控制器140按照所述执行顺序执行部署函数。历史部署信息,是进度记录器150根据运行控制器140在完成部署后传递的部署函数的执行结果而生成的。历史部署信息,包括部署函数的信息,部署时间及结果等用于描述部署的信息,可以用于部署过程问题的反馈处理。
在一个实施例中,如图2所示,提供了一种云端应用部署方法,以该方法应用于图1中的运行控制器140为例进行说明,包括以下步骤:
步骤S210:获取针对所述云端应用的部署函数;
云端应用是指部署在云计算平台上的应用程序。传统的应用程序通常是部署在本地服务器或单个主机上,而云端应用则利用云计算平台的资源和服务,在分布式的环境中运行和提供服务。部署函数是某一部署逻辑的抽象定义,通过运行控制器执行部署函数,可以完成对云端应用的部署,也即完成云端应用的功能配置。云端应用可以使用部署在云平台上的函数作为其中的某个组件或服务,通过请求与函数进行交互,传递参数并接收函数的返回结果,实现某一具体的业务功能。函数可以根据需要被多次调用,根据应用的负载情况自动扩展或缩减运行实例。通过将函数部署到云端,云平台提供了一种弹性和可靠的方式来托管函数,使开发人员可以更灵活地构建和部署云端应用的功能。
步骤S220:接收进度记录器按照函数部署顺序信息发送的执行触发通知;其中,所述函数部署顺序信息,是由所述进度记录器基于预设的配置文件,以及所述云端应用的当前历史部署信息编排确定的;
进度记录器负责加载和保存历史部署信息,以及计算函数部署顺序信息。配置文件包含配置参数,根据不同的配置参数,程序应用可以实现差异化的安装效果。示例性地,配置文件可以划分为以下几个层级:(1)provider:代表函数组配置层级,包括某个完整功能模块的配置内容。在典型的云端应用部署实施中,完整的功能模块可以分为:服务器组件安装(meterial)、容器编排平台安装(kubernetes)、基于云原生的微服务应用安装(addons)等。(2)component:代表组件配置层级,该配置项在provider层级之下,通常是较为完整的一个程序。例如,在负责节点服务器组件安装的名为meterial的provider下,可以定义名为docker(容器)的component。在该component中,再定义docker安装所需的配置。(3)machines:代表分布式部署的服务器连接配置列表,包含待部署服务器的ip地址、用户名、密码等。
历史部署信息记录了包括部署函数注册名称、部署结果状态、部署时间、部署失败原因、部署完成消息打印的信息。历史部署信息记录的部署失败原因可供相关用户或人员快速进行问题定位诊断。
进度记录器首先基于预设的配置文件,获取本次云端应用部署需要完成部署配置的功能,同时结合当前历史部署信息记录的已经完成的部署函数的信息,进一步计算确定本次函数部署顺序的信息。
步骤S230:根据所述执行触发通知执行所述部署函数,并基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器;其中,所述进度记录器根据传递的所述部署函数的执行结果生成所述云端应用的新的历史部署信息。
运行控制器按照执行触发通知中的函数部署顺序信息执行部署函数,完成指定的部署逻辑,最终实现对云端应用的部署。同时生成部署函数的执行结果,将执行结果回传给进度记录器。进度记录器根据传递的所述部署函数的执行结果生成所述云端应用的新的历史部署信息。新的历史部署信息可以被进度记录器用于下一次部署进程中,确定下一次部署进程的函数部署顺序信息。
上述云端应用方法中,通过根据所述执行触发通知执行所述部署函数,并基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器,将部署计算过程视为函数按照一定的顺序执行,只需注重部署计算过程中函数的逻辑,无需详细指定执行步骤,使得代码更易于理解,实现更简单易用的云端应用部署;通过所述进度记录器根据传递的所述部署函数的执行结果生成所述云端应用的新的历史部署信息,使用历史部署信息记录部署过程,当部署结果为失败时,相关用户和人员可以通过历史部署信息记录的部署失败原因快速进行问题的定位诊断,提供可维护的部署过程;通过获取针对所述云端应用的部署函数,设定统一的函数编写规范和框架,进而屏蔽个人风格引入的代码质量差异。
在一个实施例中,获取针对所述云端应用的部署函数,包括:
获取函数注册中心的注册函数列表;其中,所述注册函数列表由第一用户编写,并注册至所述函数注册中心;
获取所述注册函数列表的函数组;其中,所述注册函数列表,包括至少两个函数组,所述函数组用于分类不同的部署函数;
获取所述函数组的部署函数;其中,所述函数组,包括至少两个同类的部署函数;所述部署函数,包括执行开关,所述执行开关用于判断所述部署函数是否执行。
函数注册中心,负责缓存具有部署功能的部署函数的注册信息,只有符合定义规范、注册成功的函数才允许被运行控制器调用,称之为部署函数。注册函数列表的组成如图3所示,包括函数组1、函数组2、……、函数组N等至少两个函数组。其中,函数组1包括函数1-1、函数1-2、……、函数1-N等不同部署函数,其他函数组同样包括至少两个同类的部署函数。函数组是函数注册中心的最小管理单元,所有的部署函数都需归类到某一函数组下。部署函数是整个分布式部署过程中的最小执行单元,负责完成某一个原子功能的部署操作。
部署函数编写需符合以下规范:(1)部署函数必须接收全量的配置参数。(2)部署函数必须是独立的逻辑单元,部署函数间的执行顺序由注册顺序决定。
部署函数注册的信息包含以下内容:(1)部署函数必须注册到指定的函数组中。(2)部署函数的执行开关,即运行控制器在执行该函数前,会根据执行开关判断该部署函数是否执行。
本实施例通过分类分组部署函数,使得研发人员能够更加高效地组织具体部署相关业务逻辑;部署实施人员能够更加灵活地编排部署模块及执行顺序,提高了云端应用部署的效率。
在一个实施例中,如图4所示,所述配置管理器参与的流程包括:
步骤S410:读取预设的配置文件,载入内存;
预设的配置文件是部署流程依赖的配置项文件,由部署人员根据实际部署需求手动填写,配置文件的结构格式如下:
machines:
-hostname: XXXXXXX
ip: XXXXXXX
username: XXXXXXX
password: XXXXXXX
-hostname: XXXXXXX
ip: XXXXXXX
username: XXXXXXX
password: XXXXXXX
provider1:
component1:
enable: true
parameter1: XXXXXXX
parameter2: XXXXXXX
component2:
enable: false
parameter1: XXXXXXX
parameter2: XXXXXXX
provider2:
component1:
enable: true
parameter1: XXXXXXX
parameter2: XXXXXXX
component2:
enable: false
parameter1: XXXXXXX
parameter2: XXXXXXX
配置文件包含的几个层级含义为:
(1)machines:代表分布式部署的服务器连接配置列表,包含待部署服务器的名称(hostname)、ip地址(ip)、用户名(username)、密码(password)等。
(2)provider:代表函数组配置层级,包括某个完整功能模块的配置内容。在典型的云端应用部署实施中,完整的功能模块可以分为:服务器组件安装(meterial)、容器编排平台安装(kubernetes)、基于云原生的微服务应用安装(addons)等。其中,enable表示该配置层级包含的参数(parameter)是否有效。enable状态为true表示有效;反之,enable状态为false表示无效。
(3)component:代表组件配置层级,该配置项在provider层级之下,通常是较为完整的一个程序。例如,在负责节点服务器组件安装的名为meterial的provider下,可以定义名为docker(容器)的component。在该component中,再定义docker安装所需的配置。
所述预设的配置文件包含待本轮部署组件的全部可配置参数。根据不同的配置参数,云端应用可以实现差异化的安装效果。
步骤S420:检验配置文件的合法性,得到合法性检验结果;
检查内容包括:在开发时已被明确定义的字段的值类型、被部署服务器IP的网络可达性等。在这个阶段,若有任意一个检查项被判定为非法,则得到指示所述配置文件不具有合法性的检验结果;否则,返回指示所述配置文件具有合法性的检验结果。
步骤S431:如果所述配置文件具有合法性,将所述配置文件作为合法配置文件,发送至所述进度记录器;
步骤S432:如果所述配置文件不具有合法性,向所述运行控制器传递用于指示终止部署的终止信息,结束本次部署。
通过检验配置文件的合法性,在实际部署实施前,避免了错误的部署执行,既保证了本方案部署的可靠性,又提高了部署的效率。
在一个实施例中,如图5所示,所示进度管理器参与的流程包括:
步骤S510:接收预设的配置文件;
步骤S520:基于预设的配置文件,计算待执行函数组;读取所述当前的历史部署信息,根据所述当前的历史部署信息,计算所述待执行函数组的函数索引信息;根据所述配置文件、所述待执行函数组和所述函数索引信息,编排确定所述函数部署顺序信息;根据函数索引信息能快速定位部署函数。并且,运行控制器在会根据传递的函数索引信息,确定待执行的部署函数,避免重复安装。
步骤S530:发送执行触发通知至运行控制器;在确定了函数部署顺序信息后,再发送执行触发通知指示运行控制器按顺序执行所述部署函数,保证了部署进程的顺利实施。
步骤S540:获取运行控制器返回的执行结果;根据所述执行结果生成新的历史部署信息。
在一个实施例中,如图6所示,根据所述执行触发通知执行所述部署函数之后,本方法还包括:
步骤S610:获取所述部署函数的执行结果,并向所述进度记录器传递所述部署函数的执行结果;执行结果包括指示部署执行失败,或者指示部署执行成功这两种状态。
步骤S620:判断执行结果是否成功;如果所述部署函数的执行结果指示部署执行失败,进入步骤S640,结束本次部署;如果所述部署函数的执行结果指示部署执行成功,则进入步骤S630的判断流程。
步骤S630:判断是否完成所有的所述函数部署步骤;如果完成所有的所述函数部署步骤,进入步骤S640,结束本次部署;如果没有完成所有的函数部署步骤,则返回步骤S610,等待下一次所述函数部署步骤对应的所述部署函数的执行结果。
步骤S640:结束本次部署。
每个部署函数执行后都有对应的执行结果,整个部署过程由多个部署函数组成。因此,不仅需要检查每个部署函数对应的执行结果,也要检查是否完成所有的部署函数是否完成了部署,才可以判断本次部署完成与否。
通过确认执行结果是否成功,保证了部署的正常实施,在出现异常部署,也即执行结果指示部署执行失败时,及时结束本次部署,此时可以交由相关技术人员查明部署执行失败的原因,避免在部署全部执行后再检查与修复,减少了工作量,提高了部署效率。通过确认是否完成所有的函数部署步骤,判断本次部署完成与否。
在一个实施例中,所述部署函数的执行结果指示部署执行失败,结束本次部署,包括:
所述部署函数的执行结果指示部署执行失败,结束本次部署,获取所述当前的历史部署信息;根据所述当前的历史部署信息的报错信息,恢复执行所述函数部署步骤。
历史部署信息的可以编写为如下所示的结构格式:
{
"conditions": [
{
"type": "EnsureKubeConfig",
"status": "True",
"lastTransitionTime": "2023-09-07T04:25:00Z",
"reason": "EnsureKubeConfig",
"message": "successed"
},
{
"type": "EnsurePv",
"status": "True",
"lastTransitionTime": "2023-09-07T04:25:08Z",
"reason": "EnsurePv",
"message": "successed"
}
}
历史部署信息是部署过程的可视化记录,也是部署异常恢复的断点存档,以"conditions"命名,代表记录了历史部署的各种状态。历史部署信息整体为json格式,每一个函数执行的记录将包括:
(1)执行函数注册名称(type):"EnsureKubeConfig"和"EnsurePv"代表两种用于执行不同功能的函数的名称;
(2)部署结果状态(status):status包括两种状态,"Ture"表示部署成功,"False"表示部署失败;
(3)部署时间(lastTransition Time):"2023-09-07T04:25:00Z"表示标准格林威治时间,即格林威治时间2023年9月7日4时25分00秒;
(4)部署失败原因(reason):在status为"True"中不用记录,使用执行函数注册名称代替;
(5)部署完成消息打印(message):"successed"表示部署成功的同时完成了消息打印。
当部署结果状态为“False”时,该执行记录可视为部署的异常断点存档,并且此时记录的部署失败原因可供部署实施人员快速进行问题定位诊断。
在一个实施例中,基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器,包括:
基于所述部署函数的执行结果,通过网络远程方式,向待部署的云端应用下发应用部署指令;
其中,所述待部署的云端应用,接收所述应用部署指令,执行对应的部署操作,部署于所述分布式服务器。
在优选实施例中,如图7所示,所述方法包括:
步骤S710:开发人员编写部署函数并注册到函数注册中心,供运行控制器调用;
步骤S720:部署人员根据不同的部署需求填写配置文件;配置文件,是部署流程依赖的配置项文件,由部署人员根据实际部署需求手动填写。该文件包含待本轮部署组件的全部可配置参数。根据不同的配置参数,程序可以实现差异化的安装效果。
步骤S730:配置管理器加载配置文件,对于配置项的合法性进行校验;检查内容包括:在开发时已被明确定义的字段的值类型、被部署服务器IP的网络可达性等。在这个阶段,若有任意一个检查项被判定为非法,将直接返回错误,终止部署。
步骤S740:进度记录器接收经过合法性校验的配置项参数,分析待执行的函数组信息,并根据加载的部署记录文件,计算出待执行的函数索引信息;
步骤S750:运行控制器接收配置项信息、待执行的函数组函数索引信息,运行函数组中注册的部署函数;
步骤S760:运行控制器向进度记录器传递函数执行结果,进度记录器负责生成部署记录文件,记录本轮安装的执行结果。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的云端应用部署方法的云端应用部署装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个云端应用部署装置实施例中的具体限定可以参见上文中对于云端应用部署方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种云端应用部署装置800,包括:函数获取模块810、通知接收模块820和部署执行模块830,其中:
函数获取模块810,用于获取针对所述云端应用的部署函数;
通知接收模块820,用于接收进度记录器按照函数部署顺序信息发送的执行触发通知;其中,所述函数部署顺序信息,是由所述进度记录器基于预设的配置文件,以及所述云端应用的当前历史部署信息编排确定的;
部署执行模块830,用于根据所述执行触发通知执行所述部署函数,并基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器;其中,所述进度记录器根据传递的所述部署函数的执行结果生成所述云端应用的新的历史部署信息。
在一个实施例中,所述函数获取模块810,还用于:
获取函数注册中心的注册函数列表;其中,所述注册函数列表由第一用户编写,并注册至所述函数注册中心;
获取所述注册函数列表的函数组;其中,所述注册函数列表,包括至少两个函数组,所述函数组用于分类不同的部署函数;
获取所述函数组的部署函数;其中,所述函数组,包括至少两个同类的部署函数;所述部署函数,包括执行开关,所述执行开关用于判断所述部署函数是否执行。
在一个实施例中,所述通知接收模块820,还包括:
所述预设的配置文件,由所述进度记录器从配置管理器获取;
所述配置管理器,用于加载由第二用户编写的所述预设的配置文件,并进行合法性检验,得到合法性检验结果;
如果所述合法性检验结果指示所述配置文件具有合法性,所述配置管理器将所述配置文件作为合法配置文件,发送至所述进度记录器;
如果所述合法性检验结果指示所述配置文件不具有合法性,所述配置管理器向所述运行控制器传递用于指示终止部署的终止信息,结束本次部署。
在一个实施例中,所述通知接收模块820,还包括:
所述进度记录器基于预设的配置文件,计算待执行函数组;
所述进度记录器读取所述当前的历史部署信息,根据所述当前的历史部署信息,计算所述待执行函数组的函数索引信息;
所述进度记录器根据所述配置文件、所述待执行函数组和所述函数索引信息,编排确定所述函数部署顺序信息。
在一个实施例中,所述部署执行模块830,还用于:
得到所述部署函数的执行结果,并向所述进度记录器传递所述部署函数的执行结果;
如果所述部署函数的执行结果指示部署执行失败,结束本次部署;
如果所述部署函数的执行结果指示部署执行成功,判断是否完成所有的函数部署步骤;
如果完成所有的所述函数部署步骤,结束本次部署;
如果没有完成所有的所述函数部署步骤,等待下一次所述函数部署步骤对应的所述部署函数的执行结果。
在一个实施例中,所述部署执行模块830,还用于:
所述部署函数的执行结果指示部署执行失败,结束本次部署,获取所述当前的历史部署信息;根据所述当前的历史部署信息的报错信息,恢复执行所述函数部署步骤。
在一个实施例中,所述部署执行模块830,还用于:
基于所述部署函数的执行结果,通过网络远程方式,向待部署的云端应用下发应用部署指令;
其中,所述待部署的云端应用,接收所述应用部署指令,执行对应的部署操作,部署于所述分布式服务器。
上述云端应用部署装置800中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储部署函数、配置文件和历史部署信息数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种云端应用部署方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种云端应用部署方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取针对所述云端应用的部署函数;
接收进度记录器按照函数部署顺序信息发送的执行触发通知;其中,所述函数部署顺序信息,是由所述进度记录器基于预设的配置文件,以及所述云端应用的当前历史部署信息编排确定的;
根据所述执行触发通知执行所述部署函数,并基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器;其中,所述进度记录器根据传递的所述部署函数的执行结果生成所述云端应用的新的历史部署信息。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例不再赘述。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random AccessMemory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (9)

1.一种云端应用部署方法,其特征在于,应用于运行控制器,所述方法包括:
获取针对所述云端应用的部署函数;
接收进度记录器按照函数部署顺序信息发送的执行触发通知;其中,所述函数部署顺序信息,是由所述进度记录器基于预设的配置文件,以及所述云端应用的当前历史部署信息编排确定的;
根据所述执行触发通知执行所述部署函数,并基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器;其中,所述进度记录器根据传递的所述部署函数的执行结果生成所述云端应用的新的历史部署信息;
其中,获取针对所述云端应用的部署函数包括:获取函数注册中心的注册函数列表;其中,所述注册函数列表由第一用户编写,并注册至所述函数注册中心;获取所述注册函数列表的函数组;其中,所述注册函数列表,包括至少两个函数组,所述函数组用于分类不同的部署函数;获取所述函数组的部署函数;其中,所述函数组,包括至少两个同类的部署函数;所述部署函数,包括执行开关,所述执行开关用于判断所述部署函数是否执行。
2.根据权利要求1所述的方法,其特征在于,包括:
所述预设的配置文件,由所述进度记录器从配置管理器获取;
所述配置管理器,用于加载由第二用户编写的所述预设的配置文件,并进行合法性检验,得到合法性检验结果;
如果所述合法性检验结果指示所述配置文件具有合法性,所述配置管理器将所述配置文件作为合法配置文件,发送至所述进度记录器;
如果所述合法性检验结果指示所述配置文件不具有合法性,所述配置管理器向所述运行控制器传递用于指示终止部署的终止信息,结束本次部署。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述进度记录器基于预设的配置文件,计算待执行函数组;
所述进度记录器读取所述当前的历史部署信息,根据所述当前的历史部署信息,计算所述待执行函数组的函数索引信息;
所述进度记录器根据所述配置文件、所述待执行函数组和所述函数索引信息,编排确定所述函数部署顺序信息。
4.根据权利要求1所述的方法,其特征在于,根据所述执行触发通知执行所述部署函数之后,所述方法还包括:
得到所述部署函数的执行结果,并向所述进度记录器传递所述部署函数的执行结果;
如果所述部署函数的执行结果指示部署执行失败,结束本次部署;
如果所述部署函数的执行结果指示部署执行成功,判断是否完成所有的函数部署步骤;
如果完成所有的所述函数部署步骤,结束本次部署;
如果没有完成所有的所述函数部署步骤,等待下一次所述函数部署步骤对应的所述部署函数的执行结果。
5.根据权利要求4所述方法,其特征在于,所述部署函数的执行结果指示部署执行失败,结束本次部署,包括:
所述部署函数的执行结果指示部署执行失败,结束本次部署,获取所述当前的历史部署信息;根据所述当前的历史部署信息的报错信息,恢复执行所述函数部署步骤。
6.根据权利要求1所述的方法,其特征在于,基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器,包括:
基于所述部署函数的执行结果,通过网络远程方式,向待部署的云端应用下发应用部署指令;
其中,所述待部署的云端应用,接收所述应用部署指令,执行对应的部署操作,部署于所述分布式服务器。
7.一种云端应用部署系统,其特征在于,所述系统包括:配置管理器、运行控制器、函数注册中心、进度记录器;
所述进度记录器,分别连接所述配置管理器与所述运行控制器;
所述运行控制器,分别连接所述函数注册中心与所述进度记录器,用于执行权利要求1至权利要求6任一项所述的云端应用部署方法。
8.一种云端应用部署装置,其特征在于,所述装置包括:
函数获取模块,用于获取针对所述云端应用的部署函数;
通知接收模块,用于接收进度记录器按照函数部署顺序信息发送的执行触发通知;
部署执行模块,用于根据所述执行触发通知执行所述部署函数,并基于所述部署函数的执行结果,将所述云端应用部署于分布式服务器;
其中,获取针对所述云端应用的部署函数包括:获取函数注册中心的注册函数列表;其中,所述注册函数列表由第一用户编写,并注册至所述函数注册中心;获取所述注册函数列表的函数组;其中,所述注册函数列表,包括至少两个函数组,所述函数组用于分类不同的部署函数;获取所述函数组的部署函数;其中,所述函数组,包括至少两个同类的部署函数;所述部署函数,包括执行开关,所述执行开关用于判断所述部署函数是否执行。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至权利要求6中任一项所述的方法的步骤。
CN202311578313.0A 2023-11-24 2023-11-24 一种云端应用部署方法、系统、装置及计算机设备 Active CN117270888B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311578313.0A CN117270888B (zh) 2023-11-24 2023-11-24 一种云端应用部署方法、系统、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311578313.0A CN117270888B (zh) 2023-11-24 2023-11-24 一种云端应用部署方法、系统、装置及计算机设备

Publications (2)

Publication Number Publication Date
CN117270888A CN117270888A (zh) 2023-12-22
CN117270888B true CN117270888B (zh) 2024-04-16

Family

ID=89221888

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311578313.0A Active CN117270888B (zh) 2023-11-24 2023-11-24 一种云端应用部署方法、系统、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN117270888B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020931A (zh) * 2016-05-19 2016-10-12 浪潮电子信息产业股份有限公司 一种基于Heat的云应用部署方案
CN106789200A (zh) * 2016-12-07 2017-05-31 国云科技股份有限公司 一种云平台自定义自动部署的方法
CN108614688A (zh) * 2016-12-30 2018-10-02 上海华讯网络系统有限公司 应用于混合云环境的可视化应用编排及方法
CN111371579A (zh) * 2018-12-26 2020-07-03 中兴通讯股份有限公司 云平台部署方法、装置、服务器及存储介质
CN113064600A (zh) * 2021-04-20 2021-07-02 支付宝(杭州)信息技术有限公司 部署应用的方法和装置
CN114020373A (zh) * 2021-11-26 2022-02-08 北京神舟航天软件技术股份有限公司 一种基于函数式定义流程的实现方法
CN114253557A (zh) * 2022-03-01 2022-03-29 苏州浪潮智能科技有限公司 一种云平台应用部署方法、装置、电子设备及存储介质
CN114840221A (zh) * 2022-04-15 2022-08-02 医渡云(北京)技术有限公司 云服务器部署方法、装置、系统、存储介质及计算机设备
CN115941758A (zh) * 2022-12-27 2023-04-07 天翼云科技有限公司 基于动态规划的云服务控制台部署方法、系统及存储介质
CN116089097A (zh) * 2023-04-11 2023-05-09 睿云联(厦门)网络通讯技术有限公司 一种基于多组件多环境的云平台部署方法、设备及介质
CN116541160A (zh) * 2022-09-23 2023-08-04 深圳市腾讯计算机系统有限公司 函数部署方法、装置、服务器及云计算平台
CN116701004A (zh) * 2022-02-25 2023-09-05 杭州有赞科技有限公司 云函数开发方法、装置、电子装置和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556332B2 (en) * 2021-02-23 2023-01-17 International Business Machines Corporation Application updating in a computing environment using a function deployment component

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020931A (zh) * 2016-05-19 2016-10-12 浪潮电子信息产业股份有限公司 一种基于Heat的云应用部署方案
CN106789200A (zh) * 2016-12-07 2017-05-31 国云科技股份有限公司 一种云平台自定义自动部署的方法
CN108614688A (zh) * 2016-12-30 2018-10-02 上海华讯网络系统有限公司 应用于混合云环境的可视化应用编排及方法
CN111371579A (zh) * 2018-12-26 2020-07-03 中兴通讯股份有限公司 云平台部署方法、装置、服务器及存储介质
CN113064600A (zh) * 2021-04-20 2021-07-02 支付宝(杭州)信息技术有限公司 部署应用的方法和装置
CN114020373A (zh) * 2021-11-26 2022-02-08 北京神舟航天软件技术股份有限公司 一种基于函数式定义流程的实现方法
CN116701004A (zh) * 2022-02-25 2023-09-05 杭州有赞科技有限公司 云函数开发方法、装置、电子装置和存储介质
CN114253557A (zh) * 2022-03-01 2022-03-29 苏州浪潮智能科技有限公司 一种云平台应用部署方法、装置、电子设备及存储介质
CN114840221A (zh) * 2022-04-15 2022-08-02 医渡云(北京)技术有限公司 云服务器部署方法、装置、系统、存储介质及计算机设备
CN116541160A (zh) * 2022-09-23 2023-08-04 深圳市腾讯计算机系统有限公司 函数部署方法、装置、服务器及云计算平台
CN115941758A (zh) * 2022-12-27 2023-04-07 天翼云科技有限公司 基于动态规划的云服务控制台部署方法、系统及存储介质
CN116089097A (zh) * 2023-04-11 2023-05-09 睿云联(厦门)网络通讯技术有限公司 一种基于多组件多环境的云平台部署方法、设备及介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Towards Reliable Application Deployment in the Cloud;Ruichuan Chen;《Proceedings of the 13th International Conference on emerging Networking EXperiments and Technologies》;全文 *
一种基于CloudSim的Web集群节能部署仿真方案;熊智;陆红燕;曾胜涛;;系统仿真学报(12);全文 *
面向云计算的分布式应用自动部署框架;李超;花磊;宋云奎;;计算机技术与发展(06);全文 *

Also Published As

Publication number Publication date
CN117270888A (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
US8997088B2 (en) Methods and systems for automated deployment of software applications on heterogeneous cloud environments
CN105359102B (zh) 先进的客户支持服务-先进的支持云门户
US10817387B2 (en) Auto point in time data restore for instance copy
CN104765678A (zh) 对移动终端设备上的应用进行测试的方法及装置
CN112241360B (zh) 一种测试用例生成方法、装置、设备及存储介质
CN109308227A (zh) 故障检测控制方法及相关设备
CN110673993B (zh) 一种故障注入方法、平台及系统
CN102859505B (zh) 管理系统以及计算机系统的管理方法
US20220103555A1 (en) Service deployment method, device, system, and computer-readable storage medium
CN114879939A (zh) 生成微服务的方法、系统、电子设备及存储介质
CN113747150B (zh) 一种基于容器云实现的视频服务系统的测试方法和系统
CN117270888B (zh) 一种云端应用部署方法、系统、装置及计算机设备
CN109388420A (zh) 应用升级测试方法、装置、计算机设备及存储介质
US9053084B1 (en) Self-service testing
CN112650688A (zh) 自动化回归测试方法、关联设备以及计算机程序产品
CN113094251B (zh) 嵌入式系统测试方法、装置、计算机设备和存储介质
CN109101408B (zh) 联调环境中业务可用性的检测方法和装置
CN111752601A (zh) 一种数据配置方法、装置、系统、电子设备及其存储介质
CN115982049A (zh) 性能测试中的异常检测方法、装置和计算机设备
US11693643B2 (en) Network-based solution module deployment platform
CN112230938B (zh) 工业互联网的租赁产品的配置方法和装置
CN115437903A (zh) 接口测试方法、装置、设备、存储介质及程序
CN111737130B (zh) 公有云多租户认证服务测试方法、装置、设备及储存介质
CN110677469B (zh) 一种证券灾备系统及灾备实现方法
CN109995617A (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