CN115955409B - 一种变更编排方法及相关装置 - Google Patents
一种变更编排方法及相关装置 Download PDFInfo
- Publication number
- CN115955409B CN115955409B CN202310222299.4A CN202310222299A CN115955409B CN 115955409 B CN115955409 B CN 115955409B CN 202310222299 A CN202310222299 A CN 202310222299A CN 115955409 B CN115955409 B CN 115955409B
- Authority
- CN
- China
- Prior art keywords
- sub
- execution
- infrastructure
- target
- task
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Exchange Systems With Centralized Control (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
提供一种变更编排方法及相关装置,涉及云服务领域,该方法包括:对用户提交的代码文件进行解析,以得到对该代码文件中涉及到的至少一个基础设施中的目标基础设施进行变更编排的N段子代码,该代码文件是基于IaC服务编写的,对目标基础设施的变更编排包括N个子任务,这N段子代码对应于N个子任务,每段子代码用于描述所对应的子任务完成时的状态,N为大于1的整数;基于目标基础设施的当前状态和这N段子代码,对目标基础设施进行变更。用户可以利用IaC描述目标基础设施从当前状态到目标状态的具体变更过程,以此实现对目标基础设施从初始状态到目标状态的中间过程的干预,满足业务需求。
Description
技术领域
本申请涉及云服务领域,尤其涉及一种变更编排方法及相关装置。
背景技术
随着云服务的发展,越来越多的企业将业务迁移到云上。在运维场景中,快速配置和管理复杂的云上的基础设施(可简称为基础设施)(例如虚拟机、网络、容器部署等)的需求很快成为一项挑战,随后,基础设施即代码(infrastructure as code,IaC)应运而生。
IaC服务是一种高效的配置管理形式,专注于基础设施配置和管理,可将组织的基础设施编码为代码文件,即使用代码描述云基础设施。简而言之,IaC服务的就是将基础设施抽象为资源,对基础设施的变更过程,也就是对资源的增删改查的过程。运维人员使用IaC描述各资源的目标状态,部署有支持IaC服务的云管理平台可以通过对资源的增删改查,将资源调和到目标状态。
但是,在目前的一些应用场景中,仅描述资源的目标状态,只强调对基础设施的状态管理已经不能满足当前一些业务的业务需求。
发明内容
本申请提供变更编排方法及相关装置,以期干预资源从初始状态到目标状态的中间过程,满足业务需求。
第一方面,本申请提供一种变更编排方法,该方法可以由部署有云管理平台的设备来执行,如云服务器,或者,也可以由能够实现全部或部分云管理平台功能的逻辑模块或软件实现(例如IaC服务),本申请对此不作限定。该云管理平台上部署有IaC服务。
示例性地,该方法包括:对用户提交的代码文件进行解析,以得到对该代码文件中涉及到的至少一个基础设施中的目标基础设施进行变更编排的N段子代码,该代码文件是基于IaC服务编写的,对目标基础设施的变更编排包括N个子任务,这N段子代码对应于N个子任务,每段子代码用于描述所对应的子任务完成时的状态,N为大于1的整数;基于目标基础设施的当前状态和这N段子代码,对目标基础设施进行变更。
基于上述方案,IaC服务可以支持定义目标资源(也即目标基础设施)从初始状态到目标状态的若干个中间状态,从而运维人员可以利用IaC描述目标资源从当前状态到目标状态的具体变更过程,以此来实现对目标资源从初始状态到目标状态的中间过程的干预,满足业务需求。
结合第一方面,在某些可能的实现方式中,N段子代码是按照执行的先后顺序排布的;以及,基于目标基础设施的当前状态和N段子代码,对目标基础设施进行变更,包括:基于目标基础设施的当前状态和N段子代码,生成任务列表,该任务列表包括按照执行的先后顺序排列的N个子任务;基于该任务列表,执行这N个子任务,以对目标基础设施进行变更。
结合第一方面,在某些可能的实现方式中,该方法还包括:在执行上述N个子任务中的第一子任务前,确定对该第一子任务的处理方式,该第一子任务为这N个子任务中的任意一个子任务,处理方式包括:暂停执行、继续执行或取消执行。
结合第一方面,在某些可能的实现方式中,每段子代码中包括控制字段,该控制字段用于指示上述处理方式。
结合第一方面,在某些可能的实现方式中,在处理方式为暂停执行时,该方法还包括:暂停执行该第一子任务。
结合第一方面,在某些可能的实现方式中,该方法还包括:响应于用户将处理方式由暂停执行修改为继续执行的操作,继续执行该第一子任务。
结合第一方面,在某些可能的实现方式中,该方法还包括:响应于用户将处理方式由暂停执行修改为取消执行的操作,取消对该第一子任务及其后续任务的执行。
IaC服务还可以支持设置中断控制点,也即,运维人员可以修改中断控制点的中断状态,以控制云管理平台执行各个子任务的行为,这样一来,进一步增强了运维人员对目标基础设施的变更过程的干预。
第二方面,本申请提供一种云服务器,该云服务器可以用于实现上述第一方面及第一方面任意一种可能实现方式中的方法。该云服务器包括用于执行上述方法的相应的模块。该云服务器包括的模块可以通过软件和/或硬件方式实现。
第三方面,本申请提供一种云服务器,该云服务器至少包括一个处理器和至少一个通信接口。该处理器与通信接口耦合,可用于执行计算机程序,以实现第一方面以及第一方面中任一种可能实现方式中的变更编排方法。
可选地,该云服务器还包括存储器,处理器与存储器耦合。
第四方面,本申请提供了一种芯片***,该芯片***包括至少一个处理器,用于支持实现上述第一方面以及第一方面任一种可能实现方式所涉及的功能,例如,处理上述方法中所涉及的数据等。
在一种可能的设计中,该芯片***还包括存储器,存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
该芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
第五方面,提供了一种计算机可读存储介质,所述计算机存储介质上存储有计算机程序(也可以称为代码,或指令),当所述计算机程序在被计算机运行时,使得上述第一方面以及第一方面中任一种可能实现方式中的方法被执行。
第六方面,提供了一种计算机程序产品。所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得上述第一方面以及第一方面中任一种可能实现方式中的方法被执行。
应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1是本申请实施例提供的IaC服务的结构框图;
图2是本申请实施例提供的变更编排方法的一种示意性流程图;
图3是本申请实施例提供的变更编排方法的另一种示意性流程图;
图4是本申请实施例提供的变更编排方法的再一种示意性流程图;
图5是本申请实施例提供的变更编排方法的又一种示意性流程图;
图6是适用于本申请实施例提供的变更编排方法的云服务器一种的结构框图;
图7是适用于本申请实施例提供的变更编排方法的云服务器的另一种结构框图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
第一,在本申请实施例中,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列模组、模块或单元的装置、***、产品或设备不必限于清楚地列出的那些模组、模块或单元,而是可包括没有清楚地列出的或对于这些装置、***、产品或设备固有的其它模组、模块或单元。
第二,在本申请实施例中,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系,但并不排除表示前后关联对象是一种“和”的关系的情况,具体表示的含义可以结合上下文进行理解。
第三,本申请实施例中,“示例性地”、“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
为了便于理解,以下对本申请中涉及到的术语作简单说明。
1、公有云:通常指第三方提供商为租户提供的能够使用的云,公有云一般可通过互联网使用。公有云的核心属性是共享资源服务。
2、云服务:是基于互联网的相关服务的增加、使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云服务可以指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是软件和互联网相关服务,也可是其他服务。
在本申请实施例中,云服务可以指公有云场景下,租户在公有云上所购买的基础设施。基础设施例如可以包括虚拟机(也可以称为云服务器)、容器、裸金属服务器、防火墙或云盘等资源。在本申请实施例中,基础设施也可以称为资源,目标基础设施可以称为目标资源。
3、云管理平台:云管理平台的逻辑功能可以划分为租户控制台、计算管理服务、网络管理服务、存储管理服务、鉴权服务、镜像管理服务等。租户控制台可以提供页面或应用程序接口(application programming interface,API)与租户交互;计算管理服务用于管理运行虚拟机和容器的服务器以及裸金属服务器,网络管理服务用于管理网络服务(如网关、防火墙等),存储管理服务用于管理存储服务(如数据桶服务),鉴权服务用于管理租户的账号密码,镜像管理服务用于管理虚拟机镜像。
云管理平台可以为客户端提供访问公有云的访问接口(如页面或API)。租户方可以操作客户端远程接入访问接口,在云管理平台上注册云账号,通过输入云账号和密码来登录云管理平台。例如,云管理平台对云账号和密码鉴权成功后,租户方可进一步通过客户端在云管理平台上进行操作,例如,选择并购买特定规格(虚拟处理器、虚拟内存、虚拟磁盘)的虚拟机,购买成功后,云管理平台可以提供所购买的虚拟机的远程登录账号和密码,租户方可以通过客户端远程登录到所购买的虚拟机,在该虚拟机中安装并运行租户方的应用。租户方的运维人员还可以对所购买的资源进行维护。
4、灰度升级:一种升级时候的平滑切换,当有些服务器的客户端要进行升级时,只对其中一个客户端升级并测试,确保程序无误后再全局升级,也就是说所有服务器不同步更新升级,其中一个服务器升级完成后再升级其它的服务器。
随着云服务的发展,越来越多的企业将业务迁移到云上,在运维场景中,快速配置和管理复杂的云上的基础设施(可简称为基础设施)(例如虚拟机、网络、容器部署等)的需求很快成为一项挑战,随后,IaC应运而生。
在IaC的技术思想下,对基础设施的运维管理可以包括:IaC服务的提供方定义一套编程语言范式,即描述基础设施以及对基础设施的变更流程的语法规范;相应地,IaC服务的使用方(例如运维人员)遵循IaC服务的提供方定义的编程语言范式,进行代码编写,以描述基础设施和以期基础设施变更到的目标状态,并将代码提交到IaC服务;相应地,IaC服务解析IaC服务的使用方所提交的代码,以得到析IaC服务的使用方以期使得基础设施变更到的目标状态,并将基础设施的当前状态与目标状态进行对比后,生成变更内容和变更过程,并按照变更过程对基础设施进行变更,以使得基础设施到达使用方所想要基础设施到达的目标状态。IaC服务需要使用专为云上的基础设施设计的平台(也即云管理平台),从而使标准软件工程实施方案和工具都能够得以应用。
也就是说,IaC服务是一种高效的配置管理形式,专注于基础设施配置和管理,可将组织的基础设施编码为代码文件,即使用代码描述云基础设施。简而言之,IaC服务就是将基础设施抽象为资源,对基础设施的变更过程,也就是对资源的增删改查的过程。运维人员使用IaC描述各资源的目标状态,部署有支持IaC服务的云管理平台可以通过对资源的增删改查,将资源调和到目标状态。
但是,在目前的一些应用场景中,仅描述资源的目标状态,只强调对基础设施的状态管理已经不能满足当前一些业务的业务需求,在目前的一些业务场景中,希望能够对资源从初始状态到目标状态的中间过程进行干预,以满足业务需求。
针对上述问题,本申请实施例提供了一种变更编排方法及相关装置,在该方法中,IaC服务可以支持定义目标资源从初始状态到目标状态的若干个中间状态,从而运维人员可以利用IaC描述目标资源从当前状态到目标状态的具体变更过程,以此来实现对目标资源从初始状态到目标状态的中间过程的干预,满足业务需求。
在介绍本申请提供的变更编排方法之前,首先对本申请提供的IaC服务的软件架构进行说明。
图1是本申请实施例提供的IaC服务的结构框图。需要说明的是,本申请实施例提供的IaC服务是提供已有的IaC服务的语法规范进行扩展得到的。
如图1所示,IaC服务可以包括代码解析引擎、任务执行引擎和资源管理子服务。其中,代码解析引擎可以对用户提交的代码文件进行解析,并结合目标基础设施的当前状态,生成对目标基础设施进行变更的变更过程,变更过程可以包括多个子任务的工作内容描述和各个子任务之间的依赖关系(也可以理解为执行顺序);任务执行引擎可以基于代码解析引擎生成的多个子任务和这多个子任务之间的执行顺序,逐步执行各个子任务;资源管理子服务可以被任务执行引擎调用,为任务执行引擎提供对各类型的资源进行增删改查的接口。资源管理子服务一般使用插件式开发,可以由IaC服务的提供方自研开发或者第三方开发后,注册到IaC服务中。应理解,资源管理子服务的工作模式(或工作原理)是IaC领域通用的成熟技术,具体的实现细节本申请实施例中不作详细说明。
在一些实现方式中,IaC服务还可以包括断点控制器,断点控制器可以为用户提供随时修改中断控制点的中断状态的接口,也即,修改对各个子任务的处理方式(中断状态与处理方式相对应)的接口,以控制任务执行引擎执行各个子任务的行为。断点控制器可以为用户提供查询、修改各个子任务的中断控制点的中断状态的接口,用户可以通过断点控制器提供的接口随时查询或修改任意一个子任务的中断控制点的中断状态。相应地,IaC服务可以支持定义各个子任务的中断控制点的中断状态,也就是说,用户提交到IaC服务的代码文本中可以包括用于描述中断控制点的中断状态相关的字段。
在一种可能的实现方式中,中断控制器可以维护一个包括至少一组键值对的列表,至少一组键值对中的每组键值对中,将子任务的名称作为键,将子任务的处理方式(也即子任务的中断控制点的中断状态)作为值。
应理解,图1仅为一示例,不应对本申请产生限定。在一些可能的实现方式中,IaC服务还可以包括其它模块,本申请对此不作限定。
以下结合图2对本申请提供的变更编排方法进行说明。
图2是本申请实施例提供的变更编排方法的一种示意性流程图。
如图2所示,方法200可以包括步骤210和步骤220。该方法200的步骤可以由部署有云管理平台的设备来执行,如云服务器,或者,还可以由能够实现全部或部分云管理平台功能的逻辑模块或软件实现(例如IaC服务),本申请实施例对此不作限定。其中,可以IaC服务可以具有如图1所示的结构,本申请实施例对此不作限定。下面对图2中的各步骤做详细说明。
在步骤210中,对用户提交的代码文件进行解析,以得到对该代码文件中涉及到的至少一个基础设施中的目标基础设施进行变更编排的N段子代码。
其中,代码文件是基于IaC服务编写的。上文已述及,IaC服务的提供方定义一套编程语言范式,IaC服务的使用方(也即用户)遵循IaC服务的提供方定义的编程语言范式,进行代码编写。
应理解,用户提交的代码文件中可能涉及多个不同的基础设施,可以包括目标基础设施和/或非目标基础设施。目标基础设施可以理解为用户在代码文件中对其的变更编排定义了至少一个中间状态和一个目标状态的基础设施,非目标基础设施可以理解为用户在代码文件中对其的变更编排只定义了一个目标状态的基础设施。
作为示例而非限定,使用“type”字段和“name”字段来作为基础设施的标记,“type”字段可以表示基础设施的类型,“name”字段可以表示基础设施的名称。例如,用户在代码文件中按顺序声明了type1-name1-alias1、type1-name1-alias2、type2-name2-alias1这三个变更过程,其中,涉及type1-name1和type2-name2这两个基础设施,type1-name1这个基础设施包括两个变更阶段,分别为alias1和alias2,也即,alias1这个变更阶段可以对应基础设施type1-name1的变更过程中的一个中间状态,alias2这个变更阶段可以对应基础设施type1-name1的变更过程中的一个目标状态;type2-name2这个基础设施包括一个变更阶段alias1,这个变更阶段alias1对应可以对应基础设施type2-name2的变更过程中的一个目标状态。也就是说,上述基础设施type1-name1为目标基础设施,基础设施type2-name2为非目标基础设施。
对目标基础设施的变更编排包括N(N为大于1的整数)个子任务,上述N段子代码对应于这N个子任务,每段子代码用于描述所对应的子任务完成时的状态。上述N段子代码中的前N-1段子代码对应于上述N个子任务中的前N-1个子任务;第N段子代码对应于第N个子任务。前N-1个子任务的执行结果对应于目标基础设施的N-1个中间状态;第N个子任务的执行结果对应于目标基础设施的目标状态。
示例性地,云管理平台上可以部署有如图1所示的IaC服务。上文已述及,用户可以遵循IaC服务的提供方定义的编程语言范式,进行代码编写,并将编写的代码文件上传到部署有IaC服务的云管理平台上,相应地,云管理平台可以基于IaC服务,对用户提交的代码文件进行解析,以得到对目标基础设施进行变更编排N段子代码。
可以理解的是,在用户提交的代码文件涉及多个目标基础设施的情况下,对代码文件解析后,可以得到这多个目标基础设施所对应的多组N段子代码。
在步骤220中,基于该目标基础设施的当前状态和N段子代码,对该目标基础设施进行变更。
云管理平台可以基于资源管理子服务查询到基础设施(包括目标基础设施和非目标基础设施)的当前状态。
在对用户提交的代码文件解析得到N段子代码后,云管理平台可以对这N段子代码进行解析,并基于目标基础设施的当前状态,对目标基础设施进行变更;也可以基于非目标基础设施当前状态和代码文件中声明的该非目标基础设施的目标状态,对非目标基础设施进行变更。需要说明的是,在本申请实施例中,可以利用已知的技术手段对非目标基础设施进行变更,对非目标基础设施进行变更的具体变更过程不作限定。
在一种可能的实现方式中,N段子代码是按照执行的先后顺序排布的;以及,基于目标基础设施的当前状态和N段子代码,对目标基础设施进行变更,包括:基于目标基础设施的当前状态和N段子代码,生成任务列表,该任务列表包括按照执行的先后顺序排列的N个子任务;基于该任务列表,执行这N个子任务,以对目标基础设施进行变更。
N段子代码是按照执行的先后顺序排布的,可以理解为,这N段代码之间具有一定的依赖关系,也即,这N段代码之间具有先后的执行顺序。
在对用户提交的代码文件解析得到N段子代码后,云管理平台可以对这N段子代码进行解析,生成任务列表,该任务列表包括按照执行的先后顺序排列的N个子任务。上文已述及,N段子代码对应于这N个子任务,每段子代码用于描述所对应的子任务完成时的状态。在生成任务列表后,云管理平台可以基于该任务列表,执行这N个子任务,以对目标基础设施进行变更。
上文已述及,用户提交的代码文件中可能涉及多个不同的基础设施,可以包括目标基础设施和/或非目标基础设施。在用户提交的代码文件涉及至少一个目标基础设施和至少一个非基础设施的情况下,上述基于目标基础设施的当前状态和N段子代码生成的任务列表,可以看作该代码文件所定义的整个变更过程中的所生成的总任务列表中的一部分,总任务列表可以包括目标基础设施所对应的N个子任务,还可以包括非目标基础设施所对应的变更任务。在总任务列表中,目标基础设施的所对应N个子任务和非目标基础设施所对应的变更任务的先后顺序,是与代码文件中对目标基础设施和非目标基础设施的描述顺序(也即声明顺序)一致的。例如,代码文件中先描述了目标基础设施type1-name1,又描述了非目标基础设施type2-name2,最后描述了目标基础设施type3-name3,则在总任务列表中,目标基础设施type1-name1所对应的多个子任务排在非目标基础设施type2-name2所对应的变更任务的前面,非目标基础设施type2-name2所对应的变更任务排在目标基础设施type3-name3所对应的多个子任务的前面。
在一种可能的实现方式中,方法200还包括:在执行上述N个子任务中的第一子任务前,确定对该第一子任务的处理方式,该第一子任务为这N个子任务中的任意一个子任务,处理方式包括:暂停执行、继续执行或取消执行。
为了便于描述,在本申请中将上述N个子任务中的任意一个子任务记为第一子任务。
云管理平台在执行第一子任务前,可以先确定对该第一子任务的处理方式。对第一子任务的处理方式可以包括暂停执行、继续执行或取消执行。其中,暂停执行可以理解为将第一子任务挂起,暂时不执行第一子任务,也即,暂停执行第一子任务及排列在第一子任务之后的子任务;继续执行可以理解为直接按照排列顺序继续执行第一子任务;取消执行可以理解为取消对第一子任务及排列在第一子任务之后的子任务的执行,直接结束变更过程。
在一种可能的实现方式中,每段子代码中包括控制字段,该控制字段用于指示上述处理方式。
上文已述及,用户提交到IaC服务的代码文本中可以包括用于描述中断控制点的中断状态相关的字段,也即,用户提交到IaC服务的代码文本中可以包括用于描述对第一子任务的处理方式的字段。这样一来,云管理平台可以通过对代码文本的解析,确定出对第一子任务的处理方式。也就是说,云管理平台在对上述N段子代码中的每段子代码进行解析后,就可以知道哪几段子代码中包括控制字段,也即,对哪些子任务设置了哪种处理方式也即,哪些子任务前设置了终端控制点,相应的中断控制点的中断状态是什么。
上文已述及,中断状态与处理方式相对应。中断状态可以包括暂停状态、继续状态或取消状态,暂停状态与暂停执行相对应,继续状态与继续执行相对应,取消状态与取消执行相对应,为了简洁,此处不再赘述。
在一种可能的实现方式中,在处理方式为暂停执行时,方法200还包括:暂停执行该第一子任务。
上文已述及,暂停执行可以理解为将第一子任务挂起,暂时不执行第一子任务。也就是说,云管理平台在确定对第一子任务的处理方式为暂停执行的情况下,云管理平台可以暂时不对第一任务及排列在第一子任务之后的任务进行执行操作,可以理解为,对基础设施的变更过程在执行第一子任务之前进行暂停。
上文已述及,断点控制器可以为用户提供随时修改对各个子任务的处理方式的接口,也就是说,用户可以随时修改对第一任务的处理方式,以控制云管理平台执行各个子任务的行为。这样一来,也就增强了用户对目标基础设施的变更过程的干预。
在一种可能的实现方式中,方法200还包括:响应于用户将处理方式由暂停执行修改为继续执行的操作,继续执行该第一子任务。
在用户将对第一子任务的处理方式由暂停执行修改为继续执行的情况下,云管理平台可以继续启动对第一子任务的执行。
在一种可能的实现方式中,方法200还包括:响应于用户将处理方式由暂停执行修改为取消执行的操作,取消对该第一子任务及其后续任务的执行。
在用户将对第一子任务的处理方式由暂停执行修改为取消执行的情况下,云管理平台可以取消对第一子任务的执行,以及取消对排列在第子一任务之后的任务的执行,也即,云管理平台可以就此终止整个变更过程。
可以理解的是,对于非目标基础设施,用户也可以在代码文件中在描述非目标基础设施的相关代码中写入控制字段,从而在云管理平台在执行非目标基础设施的变更任务之前,也可以先判断对该非目标基础设施的变更任务的处理方式,从而再进行后续的处理。
图3是本申请实施例提供的变更编排方法的另一种示意性流程图。
以下结合图1和图3再次对本申请提供的变更编排方法进行说明。
示例性地,图3中示出了步骤301至步骤308,下面对步骤301至步骤308进行说明。图3中的步骤可以由部署有云管理平台的设备来执行,如云服务器,或者,还可以由能够实现全部或部分云管理平台功能的逻辑模块或软件实现(例如IaC服务),本申请实施例对此不作限定。
在步骤301中,代码解析引擎生成总任务列表。
云管理平台可以基于IaC服务中的代码解析引擎,对用户所提交的代码文件进行解析,并结合该代码文件中所涉及到的基础设施的当前状态,生成总任务列表。
上文已述及,在用户提交的代码文件涉及至少一个目标基础设施和至少一个非基础设施的情况下,上述基于目标基础设施的当前状态和N段子代码生成的任务列表,可以看作该代码文件所定义的整个变更过程中的所生成的总任务列表中的一部分,总任务列表可以包括目标基础设施所对应的N个子任务,还可以包括非目标基础设施所对应的变更任务。
关于总任务列表的详细描述可以参看上文中的相关内容,为了简洁,此处不再赘述。
在步骤302中,任务执行引擎遍历总任务列表。
云管理平台可以基于IaC服务中的任务执行引擎遍历总任务列表,根据总任务列表中各个任务或各子任务之间的依赖关系确定这些任务的执行顺序。
上文已述及,在总任务列表中,目标基础设施的所对应N个子任务和非目标基础设施所对应的变更任务的先后顺序,是与代码文件中对目标基础设施和非目标基础设施的描述顺序(也即声明顺序)一致的。详细描述可以参看上文中的相关内容,为了简洁,此处不再赘述。
在步骤303中,任务执行引擎调用断点控制器,判断对第一任务的处理方式是否为暂停执行。
第一任务为总任务列表中包括目标基础设施所对应的N个子任务在内的多个任务中的任意一个任务。
云管理平台可以基于IaC服务中的任务执行引擎来调用断点控制器,以获取到对第子任务的处理方式,判断对第一任务的处理方式是否为暂停执行。
在对第一任务的处理方式不是暂停执行的情况下,云管理平台可以执行步骤304;在对第一任务的处理方式是暂停执行的情况下,云管理平台可以执行步骤305。
在步骤304中,判断对第一任务的处理方式是否为取消执行。
云管理平台可以继续基于断点控制器判断对第一任务的处理方式是否为取消执行。
在对第一任务的处理方式不是取消执行的情况下,云管理平台可以执行步骤306;在对第一任务的处理方式是取消执行的情况下,云管理平台可以结束变更,也就是终止整个变更过程。
在步骤305中,任务执行引擎暂停执行第一任务。
云管理平台可以基于IaC服务中的任务执行引擎,将第一任务挂起,暂时不执行第一任务。
在这种情况下,用户可以做一些场外判断,例如人工检查上一个任务或子任务的运行结果是否符合预期。如果上一个任务或子任务的运行结果与预期不符,则用户可以将对第一任务的处理方式由暂停执行修改为取消执行,第一任务和排列在第一任务之后的子任务或任务不再被执行,从而结束整个变更过程,以避免出现更大的不在预期之内的问题;另外,用户也可以通过人工处理修正后,将对第一任务的处理方式由暂停执行修改为继续执行,以触发云管理平台启动对第一任务的执行。如果上一个子任务或任务的运行结果与预期相符,则用户可以将对第一任务的处理方式由暂停执行修改为继续执行,以触发云管理平台启动对第一任务的执行。
也就是说,在用户对第一任务的处理方式进行修改后,可以返回执行步骤303及后续的相应步骤,直至结束变更。
在步骤306中,任务执行引擎调用资源管理子服务,执行第一任务。
云管理平台可以基于IaC服务中的任务执行引擎,调用资源管理子服务,来对第一任务所涉及到的基础设施进行变更。
在步骤307中,任务执行引擎判断执行第一任务是否成功。
云管理平台可以基于IaC服务中的任务执行引擎,根据第一任务所涉及到的基础设施在变更后的状态,是否与用户所提交的代码文件中与该第一任务对应的代码所描述的中间状态是否一致,如果一致,则确定第一任务执行成功;如果不一致,则确定第一任务执行失败。
在第一任务执行成功的情况下,云管理平台可以执行步骤308;在第一任务执行失败的情况下,云管理平台可以结束变更,也就是终止整个变更过程。
在步骤308中,任务执行引擎判断是否有下一个任务。
云管理平台可以基于IaC服务中的任务执行引擎,判断是否有下一个任务。
在有下一个任务的情况下,云管理平台可以返回执行步骤303及后续的相应步骤,直至结束变更;在没有下一个任务的情况下,云管理平台可以结束变更。
为了便于更好地理解本申请提供的变更编排方法,以灰度升级场景为例,以下分别结合图4和图5进行示例性地说明。
图4是本申请实施例提供的变更编排方法的再一种示意性流程图。
示例性地,如图4所示,以软件的灰度升级场景为例,为了保障升级过程中服务的可用性,在升级过程中需要***灰度升级过程和灰度测试过程,例如,先升级一台弹性计算服务(elastic compute service,ECS)服务器(基础设施的一个示例)上的软件,接入灰度流量,根据灰度测试(对应于图4中的步骤2)结果决定后续行为,若灰度测试通过,则继续升级剩下的ECS服务器上的软件;若灰度测试失败,则结束变更。
如图4所示,用户所使用的基础设施的当前状态为:3台ECS服务器,且这3台ECS服务器上均安装了1.0.0版本的软件a。在需要将这3台ECS服务器上的软件a都升级到1.0.1版本的情况下,用户可以基于IaC服务在代码文件中声明目标状态为:3台ECS服务器,均安装1.0.1版本的软件a(对应于图4中的步骤3),并声明一个中间状态:3台ECS服务器,其中ECS服务器1(可简称为ECS 1)升级软件a到1.0.1版本,其余两台ECS(也即ECS 2(可简称为ECS2)和ECS 3可简称为ECS 3)不升级(对应于图4中的步骤1)。还可以声明对步骤3的处理方式为暂停执行。
根据上述代码文本中的描述,对基础设施进行变更时,可以先将ECS 1上的软件a升级到1.0.1版本,然后等待用户执行灰度测试过程(对应于图4中的步骤2);用户执行灰度测试过程结束后,可以修改对步骤3的处理方式,如果用户将对步骤3的处理方式修改为继续执行,则云管理平台基于IaC服务继续执行步骤3,即将ECS 2和ECS 3上的软件a升级到1.0.1版本;如果用户将对步骤3的处理方式修改为取消执行,则云管理平台基于IaC服务结束变更,则ECS 2和ECS 3上的软件a的版本仍保持在1.0.0版本。
示例性地,仍然以软件的灰度升级场景为例,一个ECS服务器集群中包含3台ECS服务器,这3台ECS服务器上都安装了软件a的1.0.0版本,软件a的运维人员(下文称“用户”)在需要将软件a的版本升级到1.0.1版本,升级过程中为确保软件a的对外服务不中断,则需要先灰度升级其中1台ECS服务器上的软件a到1.0.1版本,升级后观察1.0.1版本的软件a能够正常工作后,再继续升级剩余2台ECS服务器上的软件a到1.0.1版本;如果观察到1.0.1版本的软件a工作异常,则结束变更,也即取消对剩余2台ECS服务器上的软件a的升级。
为实施本次变更,用户可以遵循IaC服务提供方提供的编程语言范式,编写如下示例代码来描述上述3台ECS服务器上的软件a从1.0.0版本变更到1.0.1版本的中间状态和目标状态:
----------------------------------
#声明资源目标状态和变更过程
components: #组件
- name:component1 #名称为component1的组件
resources: #描述资源列表及其各个变更阶段
- type:wiseeye_deploy_task_v1 #资源的类型为wiseeye_deploy_task_v1
name:deploy #资源的名称为deploy
alias:grey #资源在本变更阶段的别名为grey
confirm:true #执行前暂停,也即处理方式为暂停执行
properties: #描述属性变更
replica:3 #软件部署在3台ECS服务器上
name:software-a #软件的名称为software-a
version:1.0.1 #将软件升级到1.0.1版本
greyReplica:1 #中间状态,修改属性(灰度升级,升级一台ECS服务器上的软件a到1.0.1版本)
- type:wiseeye_deploy_task_v1 #资源的类型为wiseeye_deploy_task_v1
name:deploy #资源的名称为deploy
alias:live #资源在本变更阶段的别名为live
confirm:true #执行前暂停,也即处理方式为暂停执行
properties: #描述属性变更
replica:3 #软件部署在3台ECS服务器上
name:software-a #软件的名称为software-a
version:1.0.1 #将软件升级到1.0.1版本
greyReplica:0 #目标状态,没有灰度节点,全部升级(升级剩余2台ECS服务器上的软件a到1.0.1版本)
----------------------------------
上述这段代码描述了一个类型为wiseeye_deploy_task_v1、名称为deploy的资源在一次灰度升级过程中的目标状态和一个中间状态,中间状态对应的变更过程和目标状态对应的变更过程使用属性alias(别名)区分,中间状态对应的变更过程的别名为grey,目标状态对应的变更过程的别名为live。IaC服务的代码解析引擎可以结合资源的当前状态和该段代码中所描述的中间状态和目标状态生成两个子任务,分别为子任务grey(下文称子任务1)和依赖于子任务1的子任务live(下文称子任务2)。
对比当前状态和中间状态,子任务1的操作内容为:在ECS 1上安装软件software-a的1.0.1版本。对比中间状态和目标状态,子任务2的操作内容为:在ECS 2和ECS 3上安装软件software-a的1.0.1版本。
另外,上述代码中通过属性confirm(确认)的值为true,来描述在任务执行前主动暂停,也即,对任务的处理方式为暂停处理。由用户修改属性confirm的值来指示继续执行或取消执行。
用户将包括有上述代码的代码文件提交到部署有IaC服务的云管理平台后,云管理平台可以基于IaC服务中的代码解析引擎对上述代码文本进行解析,生成总任务列表,该总任务列表中包括子任务1和依赖于子任务1的子任务2;任务执行引擎可以基于该总任务列表,遵循子任务1和子任务2之间的依赖关系,按照如以下图5中的流程对目标基础设施进行变更。
图5是本申请实施例提供的变更编排方法的又一种示意性流程图。
示例性地,图5中示出了步骤501至步骤505,下面对步骤501至步骤505进行说明。图5中的步骤可以由部署有云管理平台的设备来执行,如云服务器,或者,能够实现全部或部分云管理平台功能的逻辑模块或软件实现(例如IaC服务),本申请实施例对此不作限定。
在步骤501中,判断是否执行子任务1。
在开始执行子任务1之前,云管理平台或IaC服务中的任务执行引擎可以通过调用中断控制器,判断是否执行子任务1,也即判断对子任务1的处理方式是否是继续执行,如果是继续直接,则执行步骤502;如果是取消执行,则直接结束变更;如果是暂停执行,则需要等待用户经过人工检查后修改对子任务1的处理方式。
更为详细地,上述代码中使用属性confirm设置了执行前人工确认,也即,设置了对子任务1的处理方式为暂停执行,所以在开始执行子任务1之前,云管理平台或IaC服务中的任务执行引擎可以通过调用中断控制器,将对子任务1的处理方式设置为暂停执行,以实现暂停执行子任务1。需要用户人工确认是否执行子任务1,在此期间用户可以检查此时升级软件是否合适,然后作出是否进行变更的决定。如果用户决定不进行变更,则用户可以通过中断控制器提供的接口,将对子任务的处理方式修改为取消执行,则本次变更结束;如果用户决定继续变更,则用户可以通过中断控制器提供的接口,将对子任务的处理方式修改为继续执行,则本次变更继续,启动执行步骤502。
在步骤502中,执行子任务1:更新ECS 1上的软件a的软件版本。
子任务1的变更内容为更新ECS 1上的software-a的软件版本为1.0.1,这一过程可以通过调用资源管理子服务来实现。
在步骤503中,判断子任务1是否为执行成功。
子任务1执行结束后,云管理平台或IaC服务中的任务执行引擎可以检查ECS 1上的software-a软件的版本是否已经成功升级到1.0.1,如果升级失败,则直接结束变更;如果升级成功,则继续执行步骤504。
在步骤504中,判断是否执行子任务2。
与上述步骤501类似,在开始执行子任务2之前,云管理平台或IaC服务中的任务执行引擎可以通过调用中断控制器,判断是否执行子任务2,也即判断对子任务2的处理方式是否是继续执行,如果是继续直接,则执行步骤505;如果是取消执行,则直接结束变更;如果是暂停执行,则需要等待用户经过人工检查后修改对子任务2的处理方式。
更为详细地描述可以参看上述对步骤501的描述,为了简洁,此处不再赘述。
在步骤505中,执行子任务2:更新ECS 2和ECS 3上的软件a的软件版本。
子任务2的变更内容为更新剩下的两台ECS服务器上的software-a的软件版本为1.0.1,也即,更新ECS 2和ECS 3上的software-a的软件版本为1.0.1,这一过程可以通过调用资源管理子服务来实现。至此,整个变更过程结束。
本申请实施例中的IaC服务可以支持定义基础设施从初始状态到目标状态的若干个中间状态,从而运维人员可以利用IaC描述基础设施从当前状态到目标状态的具体变更过程,以此来实现对基础设施从初始状态到目标状态的中间过程的干预,满足业务需求。再者,对于运维人员而言,运维人员不需要再使用IaC与工作流相结合的方式来干预对基础设施变更的中间状态,运维人员只需要掌握IaC服务的提供方定义这套编程语言范式即可,不需要运维人员再额外学***台执行各个子任务的行为,这样一来,进一步增强了运维人员对基础设施的变更过程的干预。
本申请还提供了一种云服务器,可用于执行上述图2至图5中任一项所述实施例中的方法。
可选地,该云服务器上部署有上述云管理平台,云管理平台上部署有IaC服务。
图6是适用于本申请实施例提供的变更编排方法的云服务器的一种结构框图。
如图6所示,该云服务器上部署有云管理平台,该云管理平台上部署有IaC服务,也即,该云管理平台可以包括支持IaC服务的代码解析引擎、任务执行引擎和资源管理子服务。
在一些可能的实现方式中,云管理平台还可以包括支持IaC服务的断点控制器。
关于代码解析引擎、任务执行引擎、资源管理子服务和断点控制器的详细描述,可以参看上文中的相关内容,为了简洁,此处不再赘述。
本申请还提供了一种云服务器,该云服务器包括存储器和处理器,其中,存储器用于存储计算机程序,处理器用于调用并执行计算机程序,以使得该云服务器执行上述图2至图5中任一项所述实施例中的步骤。
图7是适用于本申请实施例提供的变更编排方法的云服务器的另一种结构框图。
如图7所示,该云服务器700可以包括至少一个处理器710,用于实现本申请实施例提供的图2至图5任一项所述实施例中的云管理平台的功能。
当该云服务器700用于实现图2至图5任一项所述实施例中的云管理平台的功能时,处理器710可以用于对用户提交的代码文件进行解析,以得到对该代码文件中的至少一个基础设施中的目标基础设施进行变更编排的N段子代码,该代码文件是基于IaC服务编写的,对目标基础设施的变更编排包括N个子任务,这N段子代码对应于N个子任务,每段子代码用于描述所对应的子任务完成时的状态,N为大于1的整数;基于目标基础设施的当前状态和这N段子代码,对目标基础设施进行变更。具体参见方法示例中的详细描述,此处不做赘述。
该云服务器700还可以包括至少一个存储器720,用于存储程序指令和/或数据。存储器720和处理器710耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器710可能和存储器720协同操作。处理器710可能执行存储器720中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。
该云服务器700还可以包括通信接口730,用于通过传输介质和其它设备进行通信,从而用于该云服务器700可以和其它设备进行通信。所述通信接口730例如可以是收发器、接口、总线、电路或者能够实现收发功能的装置。处理器710可利用通信接口730收发数据和/或信息。
本申请实施例中不限定上述处理器710、存储器720以及通信接口730之间的具体连接介质。本申请实施例在图7中以处理器710、存储器720以及通信接口730之间通过总线740连接。总线740在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。本申请还提供了一种芯片***,所述芯片***包括至少一个处理器,用于实现上述图2至图5中任一项所述实施例中的步骤中所涉及的功能。
在一种可能的设计中,所述芯片***还包括存储器,所述存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
该芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被计算机执行时,上述图2至图5中任一项所述实施例中的步骤被执行。
本申请实施例还提供一种计算机程序产品,包括计算机程序,当该计算机程序被运行时,上述图2至图5中任一项所述实施例中的步骤被执行。
应理解,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的***和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本说明书中使用的术语“单元”、“模块”等,可用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上单元集成在一个模块中。
在上述实施例中,各功能模块的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令(程序)。在计算机上加载和执行所述计算机程序指令(程序)时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (6)
1.一种变更编排方法,其特征在于,应用于云管理平台,所述云管理平台部署有基础设施即代码IaC服务,所述方法包括:
对用户提交的代码文件进行解析,以得到对所述代码文件中涉及到的至少一个基础设施中的目标基础设施进行变更编排的N段子代码,所述代码文件是基于所述IaC服务编写的,对所述目标基础设施的变更编排包括N个子任务,所述N段子代码对应于所述N个子任务,每段子代码用于描述所对应的子任务完成时的状态,N为大于1的整数;前N-1个子任务的执行结果对应于目标基础设施的N-1个中间状态,第N个子任务的执行结果对应于目标基础设施的目标状态;所述N-1个中间状态和所述目标状态是所述用户在所述代码文件中声明的;
基于所述目标基础设施的当前状态和所述N段子代码,对所述目标基础设施进行变更;
在执行所述N个子任务中的第一子任务前,确定对所述第一子任务的处理方式,所述第一子任务为所述N个子任务中的任意一个子任务,所述处理方式包括:暂停执行、继续执行或取消执行;
在所述处理方式为暂停执行时,暂停执行所述第一子任务;
响应于所述用户将所述处理方式由暂停执行修改为继续执行的操作,继续执行所述第一子任务;
响应于所述用户将所述处理方式由暂停执行修改为取消执行的操作,取消对所述第一子任务及其后续任务的执行。
2.如权利要求1所述的方法,其特征在于,所述N段子代码是按照执行的先后顺序排布的;以及,
所述基于所述目标基础设施的当前状态和所述N段子代码,对所述目标基础设施进行变更,包括:
基于所述目标基础设施的当前状态和所述N段子代码,生成任务列表,所述任务列表包括按照执行的先后顺序排列的所述N个子任务;
基于所述任务列表,执行所述N个子任务,以对所述目标基础设施进行变更。
3.如权利要求1所述的方法,其特征在于,每段子代码中包括控制字段,所述控制字段用于指示所述处理方式。
4.一种云服务器,其特征在于,包括用于实现如权利要求1至3中任一项所述的方法的模块。
5.一种云服务器,其特征在于,包括处理器和存储器,其中,
所述存储器用于存储计算机程序;
所述处理器用于调用所述计算机程序,以使得所述云服务器执行如权利要求1至3中任一项所述的方法。
6.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在计算机上运行时,如权利要求1至3中任一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310222299.4A CN115955409B (zh) | 2023-03-09 | 2023-03-09 | 一种变更编排方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310222299.4A CN115955409B (zh) | 2023-03-09 | 2023-03-09 | 一种变更编排方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115955409A CN115955409A (zh) | 2023-04-11 |
CN115955409B true CN115955409B (zh) | 2023-05-30 |
Family
ID=85903294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310222299.4A Active CN115955409B (zh) | 2023-03-09 | 2023-03-09 | 一种变更编排方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115955409B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884732B1 (en) * | 2019-08-29 | 2021-01-05 | International Business Machines Corporation | Automation utilizing infrastructure as code modules |
CN114697334A (zh) * | 2022-03-29 | 2022-07-01 | 中国工商银行股份有限公司 | 一种编排任务的执行方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3544260B1 (en) * | 2016-12-15 | 2021-09-22 | Huawei Technologies Co., Ltd. | Service layout method and device, and server |
CN109214704A (zh) * | 2018-09-26 | 2019-01-15 | 广东电网有限责任公司 | 一种分布式智能化运维平台、方法、装置及可读存储介质 |
CN112181473B (zh) * | 2020-09-27 | 2023-06-23 | 上海万向区块链股份公司 | 基于混合云的基础设施即代码的运维管理*** |
CN114912897A (zh) * | 2022-05-18 | 2022-08-16 | 阿里巴巴(中国)有限公司 | 工作流执行方法、工作流编排方法及电子设备 |
-
2023
- 2023-03-09 CN CN202310222299.4A patent/CN115955409B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884732B1 (en) * | 2019-08-29 | 2021-01-05 | International Business Machines Corporation | Automation utilizing infrastructure as code modules |
CN114697334A (zh) * | 2022-03-29 | 2022-07-01 | 中国工商银行股份有限公司 | 一种编排任务的执行方法和装置 |
Non-Patent Citations (1)
Title |
---|
面向嵌入式环境的远程控制***;时磊,董金祥;计算机工程(22);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115955409A (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11178207B2 (en) | Software version control without affecting a deployed container | |
US11663110B2 (en) | Analysis to check web API code usage and specification | |
US10341194B2 (en) | System and method for building, optimizing, and enforcing infrastructure on a cloud based computing environment | |
US10977167B2 (en) | Application monitoring with a decoupled monitoring tool | |
US11599654B2 (en) | Method and apparatus for authority control, computer device and storage medium | |
US9672139B2 (en) | Debugging in a production environment | |
WO2014035309A1 (en) | Re-configuration in cloud computing environments | |
US11838296B1 (en) | Providing secure software project development environments | |
US11288170B1 (en) | Log analysis debugging without running on real production environment | |
CN117056240B (zh) | 一种支持离线Jar包的数据元件开发调试方法和*** | |
US20160321069A1 (en) | Effective feature location in large legacy systems | |
CN115113972A (zh) | 应用改造方法、***、集群、介质及程序产品 | |
CN113297081A (zh) | 一种持续集成流水线的执行方法和装置 | |
CN112491940B (zh) | 代理服务器的请求转发方法及装置、存储介质及电子设备 | |
CN115955409B (zh) | 一种变更编排方法及相关装置 | |
US10705824B2 (en) | Intention-based command optimization | |
US20190258462A1 (en) | Batch script decomposer | |
US11509730B1 (en) | Analyzing web service frontends to extract security-relevant behavior information | |
US9928039B2 (en) | Stateful development control | |
CN113687963A (zh) | 一种数据调用方法、装置和计算机设备 | |
CN113032004A (zh) | 在开发环境中管理开发作业的方法、设备和程序产品 | |
JP7073813B2 (ja) | 制御プログラム、制御方法および情報処理装置 | |
US20230281054A1 (en) | Computer System Execution Environment Builder Tool | |
US12038825B2 (en) | Partial program execution with attribute-based data conversion for dynamic program analysis | |
US11556356B1 (en) | Dynamic link objects across different addressing modes |
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 |