应用配置库创建方法、应用发布方法及装置、电子设备
文献发布时间:2024-04-18 19:58:26
技术领域
本公开涉及计算机技术领域和金融科技领域,更具体地,涉及一种应用配置库创建方法、应用发布方法及装置、电子设备、计算机可读存储介质。
背景技术
随着互联网技术的飞速发展,越来越多的企业将应用部署运用到资源配置以及生产的全生命周期中,应用开发的需求与日俱增。
应用开发可以指使用程序语言编写用于商业、生活等方面的应用系统或者应用系统中的软件部分的过程。在应用投产全生命周期活动中,由于软件本身规模的发展和其开发、测试、运维等环境的需求不同,使得软件环境越来复杂、与不同环境相适应的应用也越来越多。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:由于应用和环境及配置之间存在着强耦合关系,因此不同环境和不同配置的应用之间存在着描述不一致、规则不统一等问题,从而导致应用开发的工作量较大,无法保障应用开发的效率和安全性。
发明内容
有鉴于此,本公开提供了一种应用配置库的创建方法、应用发布方法及装置、电子设备、计算机可读存储介质和计算机程序产品。
根据本公开的一个方面,提供了一种应用配置库的创建方法,包括:响应于接收到应用配置请求,获取与上述应用配置请求指示的M个应用标识各自对应的应用对象,其中,上述应用对象包括与P个阶段标识各自对应的P个应用子对象;在应用配置库中创建与上述M个应用标识的P个阶段标识各自对应的版本控制分支;响应于检测到与上述M个应用标识各自对应的上述P个应用子对象中的Q个目标应用子对象发生变更,确定与上述Q个目标应用子对象各自对应的目标应用标识、目标阶段标识和变更后的目标应用子对象;以及响应于上述变更后的目标应用子对象通过校验,利用与上述目标应用标识和上述目标阶段标识对应的上述版本控制分支,根据上述变更后的目标应用子对象,对上述目标应用子对象进行变更,得到变更后的应用配置库;其中,P、Q和M均为正整数,且Q小于或等于P。
根据本公开的实施例,上述应用子对象包括初级应用配置对象和次级应用配置对象;上述响应于接收到应用配置请求,获取与上述应用配置请求指示的M个应用标识各自对应的应用对象包括:响应于接收到上述应用配置请求,调用应用对象配置模板;针对上述M个应用标识中的每个应用标识,针对上述P个阶段标识中的每个阶段标识,根据上述应用标识和上述阶段标识,获取应用属性信息和负载配置信息、运维配置信息、资源配置信息中的至少之一;利用上述应用对象配置模板,根据上述应用属性信息,创建与上述应用标识和上述阶段标识对应的上述初级应用配置对象;以及利用上述应用对象配置模板,根据上述负载配置信息、上述运维配置信息和上述资源配置信息中的至少之一,创建与上述应用标识和上述阶段标识对应的上述次级应用配置对象。
根据本公开的实施例,上述方法还包括,在上述响应于检测到与上述M个应用标识各自对应的上述P个应用子对象中的Q个目标应用子对象发生变更,确定与上述Q个目标应用子对象各自对应的目标应用标识、目标阶段标识和变更后的目标应用子对象之后:针对上述Q个目标应用子对象中的每个目标应用子对象,根据上述目标阶段标识,确定初级对象校验规则和次级对象校验规则;根据上述初级对象校验规则,对与上述目标阶段标识对应的初级应用配置对象进行校验,得到初级对象校验结果;响应于上述初级对象校验结果表征上述初级应用配置对象通过校验,根据上述次级对象校验规则,对与上述目标阶段标识对应的次级应用配置对象进行校验,得到次级对象校验结果;以及响应于上述次级对象校验结果表征上述次级应用配置对象通过校验,确定表征上述变更后的目标应用子对象通过校验的应用子对象校验结果。
根据本公开的实施例,上述的方法还包括:响应于上述初级对象校验结果表征上述初级应用配置对象未通过校验或上述次级对象校验结果表征上述次级应用配置对象未通过校验,确定上述变更后的目标应用子对象的运行故障信息;以及输出上述目标应用标识、上述目标阶段标识、上述变更后的目标应用子对象和上述运行故障信息。
根据本公开的实施例,上述目标应用子对象包括当前版本信息、S个第一对象名称字段和与上述S个第一对象名称字段各自对应的当前对象值字段,上述变更后的目标应用子对象包括更新版本信息、T个第二对象名称字段和与上述T个第二对象名称字段各自对应的更新对象值字段;上述响应于上述变更后的目标应用子对象通过校验,利用与上述目标应用标识和上述目标阶段标识对应的上述版本控制分支,根据上述变更后的目标应用子对象,对上述目标应用子对象进行变更,得到变更后的应用配置库包括:利用与上述目标阶段标识对应的上述版本控制分支,根据上述更新版本信息,上述应用配置库中的上述当前版本信息进行替换,得到变更后的版本信息;针对上述T个第二对象名称字段中的每个第二对象名称字段,将上述第二对象名称字段与上述S个第一对象名称字段分别进行匹配,得到目标对象名称字段;以及利用与上述目标阶段标识对应的上述版本控制分支,根据上述更新对象值字段,对与上述目标对象名称字段对应的当前对象值字段进行替换,得到变更后的应用配置信息。
根据本公开的实施例,上述阶段标识包括开发阶段标识、测试阶段标识、生产阶段标识和灾备阶段标识中至少之一;上述在应用配置库中创建与上述M个应用标识的P个阶段标识各自对应的版本控制分支包括:根据与上述开发阶段标识对应的上述初级应用配置对象和上述次级应用配置对象,创建开发分支;根据与上述测试阶段标识对应的上述初级应用配置对象和上述次级应用配置对象,创建测试分支;根据与上述生产阶段标识对应的上述初级应用配置对象和上述次级应用配置对象,创建生产分支;以及根据与上述灾备阶段标识对应的上述初级应用配置对象和上述次级应用配置对象,创建灾备分支。
根据本公开的一个方面,提供了一种应用的发布方法,包括:响应于接收到应用发布请求,利用与上述应用发布请求中的待发布应用标识和待发布阶段标识对应的版本控制分支,从应用配置库中获取待发布应用对象;对上述待发布应用对象进行处理,得到经处理应用对象;以及根据上述经处理应用对象,发布与上述待发布应用标识对应的目标应用;其中,上述应用配置库是上述的方法创建得到的。
根据本公开的实施例,上述应用配置库存储有与M个应用标识各自对应的P个版本控制分支;上述响应于接收到应用发布请求,利用与上述应用发布请求中的待发布应用标识和待发布阶段标识对应的版本控制分支,从应用配置库中获取待发布应用对象包括:响应于接收到上述应用发布请求,将上述待发布应用标识和上述M个应用标识分别进行匹配,得到目标应用标识;将上述待发布阶段标识和与上述目标应用标识对应的P个版本控制分支分别进行匹配,得到目标版本控制分支;以及利用上述目标版本控制分支,从上述应用配置库中获取上述待发布应用对象。
根据本公开的实施例,上述待发布应用对象包括初级应用配置对象和次级应用配置对象,上述次级应用配置对象包括负载配置信息、运维配置信息、资源配置信息中的至少之一;上述对上述待发布应用对象进行处理,得到经处理应用对象包括以下方式至少之一:根据上述负载配置信息中的提供方标识,利用与上述提供方标识对应的应用程序编程接口对上述待发布应用对象进行处理,得到上述经处理应用对象;根据上述运维配置信息中的运维策略标识,利用与上述运维策略标识对应的运维策略对上述待发布应用对象进行处理,得到上述经处理应用对象;以及根据上述资源配置信息中的基础资源标识,利用与上述基础资源标识对应的资源部署脚本对上述待发布应用对象进行处理,得到上述经处理应用对象。
根据本公开的实施例,上述版本控制分支包括开发分支、测试分支、生产分支和灾备分支中的至少一个,上述开发分支用于控制开发阶段的应用子对象,上述测试分支用于控制测试阶段的应用子对象,上述生产分支用于控制生产阶段的应用子对象,上述灾备分支用于控制灾备阶段的应用子对象。
根据本公开的实施例,上述应用发布请求还包括发布地址信息;上述根据上述经处理应用对象,发布与上述待发布应用标识对应的目标应用包括:响应于检测到上述开发分支针对上述开发阶段的应用子对象的开发操作已完成,发起第一合并请求;根据上述第一合并请求,将上述开发分支合并至上述测试分支;响应于检测到上述测试分支针对上述测试阶段的应用子对象的测试操作已完成,发起第二合并请求;根据上述第二合并请求,将上述测试分支合并至上述生产分支;以及根据上述发布地址信息,对上述经处理应用对象进行编译处理,得到上述目标应用。
根据本公开的另一个方面,提供了一种应用配置库的创建装置,包括:第一获取模块,用于响应于接收到应用配置请求,获取与上述应用配置请求指示的M个应用标识各自对应的应用对象,其中,上述应用对象包括与P个阶段标识各自对应的P个应用子对象;创建模块,用于在应用配置库中创建与上述M个应用标识的P个阶段标识各自对应的版本控制分支;确定模块,用于响应于检测到与上述M个应用标识各自对应的上述P个应用子对象中的Q个目标应用子对象发生变更,确定与上述Q个目标应用子对象各自对应的目标应用标识、目标阶段标识和变更后的目标应用子对象;以及变更模块,用于响应于上述变更后的目标应用子对象通过校验,利用与上述目标应用标识和上述目标阶段标识对应的上述版本控制分支,根据上述变更后的目标应用子对象,对上述目标应用子对象进行变更,得到变更后的应用配置库;其中,P、Q和M均为正整数,且Q小于或等于P。
根据本公开的另一个方面,提供了一种应用的发布装置,包括:第二获取模块,用于响应于接收到应用发布请求,利用与上述应用发布请求中的待发布应用标识和待发布阶段标识对应的版本控制分支,从应用配置库中获取待发布应用对象;处理模块,用于对上述待发布应用对象进行处理,得到经处理应用对象;以及发布模块,用于根据上述经处理应用对象,发布与上述待发布应用标识对应的目标应用;其中,上述应用配置库是利用上述的装置创建得到的。
根据本公开的另一个方面,提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个指令,其中,当上述一个或多个指令被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如本公开所述的方法。
根据本公开的另一个方面,提供了一种计算机可读存储介质,其上存储有可执行指令,上述可执行指令被处理器执行时使处理器实现如本公开所述的方法。
根据本公开的另一个方面,提供了一种计算机程序产品,上述计算机程序产品包括计算机可执行指令,上述计算机可执行指令在被执行时用于实现如本公开所述的方法。
根据本公开的实施例,通过在服务器端接收到应用配置请求时获取与应用标识对应的应用对象,并且在应用配置库中创建与阶段标识对应的版本控制分支,当应用对象发生变更时,利用与目标应用标识和目标阶段标识对应的版本控制分支,对变更后的应用对象进行准确性、合理性校验,用通过校验的应用对象替换原先应用配置库里的应用对象,从而实现了应用配置库中应用对象的实时更新,至少部分地克服了相关技术中由于应用和环境及配置之间存在着强耦合关系,因此不同环境和不同配置的应用之间存在着描述不一致、规则不统一的技术问题,有利于后续直接利用应用配置库中的应用对象实现应用开发,由此提高了应用开发的效率和安全性。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用应用配置库的创建方法和应用的发布方法的系统架构;
图2示意性示出了根据本公开实施例的应用配置库的创建方法的流程图;
图3示意性示出了根据本公开一具体实施例的应用配置库的创建方法的流程图;
图4示意性示出了根据本公开一具体实施例的应用配置对象的配置属性的示意图;
图5示意性示出了根据本公开实施例的初级应用配置对象的创建方法的流程图;
图6示意性示出了根据本公开实施例的次级应用配置对象的创建方法的流程图;
图7示意性示出了根据本公开实施例的应用子对象校验结果的确定方法的流程图;
图8示意性示出了根据本公开实施例的应用配置信息的变更方法的流程图;
图9示意性示出了根据本公开实施例的版本控制分支的创建方法的流程图;
图10示意性示出了根据本公开实施例的应用的发布方法的流程图;
图11示意性示出了根据本公开实施例的待发布应用对象的获取方法的流程图;
图12示意性示出了根据本公开实施例的待发布应用对象的处理方法的示意图;
图13示意性示出了根据本公开实施例的目标应用的发布方法的示意图;
图14示意性示出了根据本公开一具体实施例的应用产品架构的示意图;
图15示意性示出了根据本公开的实施例的应用配置库的创建装置的框图;
图16示意性示出了根据本公开的实施例的应用的发布装置的框图;以及
图17示意性示出了根据本公开实施例的适于实现应用配置库的创建方法和应用的发布方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本发明的技术方案中,所涉及的用户信息(包括但不限于用户个人信息、用户图像信息、用户设备信息,例如位置信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、存储、使用、加工、传输、提供、公开和应用等处理,均遵守相关国家和地区的相关法律法规和标准,采取了必要保密措施,不违背公序良俗,并提供有相应的操作入口,供用户选择授权或者拒绝。在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
随着互联网技术的飞速发展,越来越多的企业将应用部署运用到资源配置以及生产的应用全生命周期中。
其中,应用生命周期是指应用程序进程从创建到消亡的整个过程,比如软件开发从需求分析开始,历经项目规划、项目实施、配置管理、测试管理等阶段,直至最终被交付或发布的全过程,企业可以整合并重构应用开发管理全生命周期流程,实现管理过程的标准化、流程化和显性化,以实现企业从业务需求,到互联网需求,到开发计划,再到持续交付最后到运维管理的全过程跟踪。
然而,在应用投产全生命周期活动中,由于软件本身规模的发展和其开发、测试、运维等环境的需求,使得软件环境越来复杂、应用越来越多,容易导致应用缺乏标准化、模型化描述等问题;此外,由于应用和环境、配置之间存在强耦合关系,导致测试、灾备、生产等多环境异构发布时较为复杂且容易出错,从而导致运维人员工作量大且有风险,产品难以快速交付。
为了至少部分地解决相关技术中存在的技术问题,本公开提供了一种应用配置库的创建方法、应用的发布方法及装置、电子设备、计算机可读存储介质和计算机程序产品。
需要说明的是,本公开实施例提供的应用配置库的创建方法、应用的发布方法及装置可用于计算机技术领域和金融科技领域,例如应用于计算机软件技术领域。本公开实施例提供的应用配置库的创建方法、应用的发布方法及装置也可用于除计算机领域和金融科技领域之外的任意领域,例如应用于互联网架构技术领域。本公开实施例提供的应用配置库的创建方法、应用的发布方法及装置的应用领域不做限定。
图1示意性示出了根据本公开实施例的可以应用应用配置库的创建方法和应用的发布方法的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括第一终端设备101、第二终端设备102、第三终端设备103,网络104和服务器105。网络104用以在第一终端设备101、第二终端设备102、第三终端设备103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用第一终端设备101、第二终端设备102、第三终端设备103中的至少一个通过网络104与服务器105交互,以接收或发送消息等。第一终端设备101、第二终端设备102、第三终端设备103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
第一终端设备101、第二终端设备102、第三终端设备103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用第一终端设备101、第二终端设备102、第三终端设备103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的应用配置库的创建方法或应用的发布方法一般可以由服务器105执行。相应地,本公开实施例所提供的应用配置库的创建装置或应用的发布装置一般可以设置于服务器105中。本公开实施例所提供的应用配置库的创建方法或应用的发布方法也可以由不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的应用配置库的创建装置或应用的发布装置也可以设置于不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群中。
备选地,本公开实施例所提供的应用配置库的创建方法或应用的发布方法也可以由第一终端设备101、第二终端设备102或第三终端设备103执行,或者也可以由不同于第一终端设备101、第二终端设备102或第三终端设备103的其他终端设备执行。相应地,本公开实施例所提供的应用配置库的创建装置或应用的发布装置也可以设置于第一终端设备101、第二终端设备102或第三终端设备103中,或设置于不同于第一终端设备101、第二终端设备102或第三终端设备103的其他终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
应注意,以下方法中各个操作的序号仅作为该操作的表示以便描述,而不应被看作表示该各个操作的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。
图2示意性示出了根据本公开实施例的应用配置库的创建方法的流程图。
如图2所示,该应用配置库的创建方法包括操作S210~S240。
在操作S210,响应于接收到应用配置请求,获取与应用配置请求指示的M个应用标识各自对应的应用对象。
根据本公开的实施例,应用配置请求可以用于表征管理人员发送的更改应用配置的请求报文。其中,应用配置可以包括应用拓扑配置、应用部署配置、应用介质管理、基础资源配置等。应用配置可以指用于描述应用的相关配置信息。上述应用可以用于表征企业管理平台中所安装的应用,例如Jira大师、谷歌分析等。
根据本公开的实施例,应用标识可以用于表征对应用属性进行统一表述的关键词或关键字段。例如,应用标识可以是表征应用架构的架构字段、表征运维特征的特征字段等。
根据本公开的实施例,应用对象可以用于表征应用描述模型,该应用描述模型可以用于对应用及其运行环境进行全生命周期的声明式描述,应用描述模型可以以文件形式存储在数据库中,例如,应用描述模型可以包括应用配置文件。
根据本公开的实施例,应用对象包括与P个阶段标识各自对应的P个应用子对象,即应用描述模型可以包括与P个阶段标识各自对应的P个应用描述子模型,应用子对象可以理解为与各个阶段标识分别对应的应用配置子文件,其中,阶段标识可以用于表征应用的全生命周期过程中对应各个阶段的字段,例如开发、测试、投产、运维等字段。应用子对象可以用于表征与阶段标识对应的应用对象。例如,阶段标识是测试字段时,应用子对象可以是用于测试阶段的应用描述模型。
在操作S220,在应用配置库中创建与M个应用标识的P个阶段标识各自对应的版本控制分支。
根据本公开的实施例,应用配置库可以用于存储与管理企业互联网架构中设备的各种配置信息,并可以通过技术、流程管控应用配置库数据的完整性,为运维自动化工具提供应用配置数据。应用配置库包括开发库、版本控制库、工作库、备份库等。
根据本公开的实施例,版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理。版本控制可以包括检入检出控制、分支和合并、历史记录等操作。
根据本公开的实施例,根据类型还可以将版本控制分为集中式版本控制和分布式版本控制,集中式版本控制中的版本仓库是集中存放在中央服务器中的。例如,集中式版本控制可以应用与一个开放源代码的集中式版本控制系统(Subversion,SVN)。
根据本公开的实施例,分布式版本控制中可以没有中央服务器,多人协作只需要各自修改,开发完成即可,推送给对方。例如,分布式版本控制可以应用于一个开放源代码的分布式版本控制系统(Git)。
根据本公开的实施例,Git可以用于通过对文件夹和文件的快照进行跟踪,并记录这些快照的历史变化,可以保存和管理整个项目的历史记录。Git还可以用于解决代码备份、还原、协同开发、多版本同时开发、追溯问题代码等问题。
根据本公开的实施例,版本控制分支可以用于表征以一个已有分支的特定版本为起点但独立发展的版本序列。简单来说,版本控制分支可以用于表征从主线上分离出来进行另外操作的支线。
根据本公开的实施例,在获取到应用标识对应的阶段标识之后,在应用配置库中创建与阶段标识对应的版本控制分支。例如,应用A的应用标识为大数据运维,那么应用A的应用标识对应的阶段标识即运维阶段,可以在应用配置库如Git的本地仓库中创建一条运维分支。
在操作S230,响应于检测到与M个应用标识各自对应的P个应用子对象中的Q个目标应用子对象发生变更,确定与Q个目标应用子对象各自对应的目标应用标识、目标阶段标识和变更后的目标应用子对象。
根据本公开的实施例,在检测到与多个应用标识对应的多个应用子对象中有一个或多个应用子对象发生了信息或动作变更,则可以将这些发生了变更的应用描述模型作为目标应用子对象,并且获取这些目标应用子对象对应的应用标识和阶段标识,作为目标应用标识和目标阶段标识。
根据本公开的实施例,应用子对象发生的变更操作可以包括应用重启、扩容、回退等变更操作。
在操作S240,响应于变更后的目标应用子对象通过校验,利用与目标应用标识和目标阶段标识对应的版本控制分支,根据变更后的目标应用子对象,对目标应用子对象进行变更,得到变更后的应用配置库。
根据本公开的实施例,在接收到一个变更后的目标应用描述模型通过校验之后,利用与目标应用标识和目标阶段标识对应的版本控制分支和变更后的应用描述模型,对应用配置库中的目标应用描述模型进行变更和替换,得到存储有变更后的应用描述模型的应用配置库,从而实现了应用配置库的更新。
下面参考图3,对根据本发明实施例的应用配置库的创建方法200做进一步说明。
图3示意性示出了根据本公开一具体实施例的应用配置库的创建方法的流程图。
如图3所示,该具体实施例的应用配置库的创建方法300包括:在流程开始时,获取应用对象301,将获取到的应用对象推送到参数检查模块302中,由参数检查模块302对输入的应用对象301进行校验,若校验结果表征不合格则会结束流程并反馈报错信息,若校验结果表征合格,则将该应用对象推送至应用配置库303中。
若应用对象301发生变更,则会将变更后的应用对象301重新推送至参数检查模块302,由参数检查模块302对变更后的应用对象301进行校验,若校验结果表征变更后的应用对象301不合格则会结束流程并反馈报错信息,若校验结果表征变更后的应用对象301通过校验,则会将应用配置库303中的原应用对象替换为变更后的应用对象,从而更新应用配置库303。
本公开的实施例在服务器端接收到应用配置请求时,获取与应用标识对应的应用对象,并且在应用配置库中创建与阶段标识对应的版本控制分支,当应用对象发生变更,利用与目标应用标识和目标阶段标识对应的版本控制分支,对变更后的应用对象进行准确性、合理性校验,用通过校验的应用对象替换原先应用配置库里的应用对象,从而实现了应用配置库中应用对象的实时更新,至少部分地克服了相关技术中由于应用和环境及配置之间存在着强耦合关系,因此不同环境和不同配置的应用之间存在着描述不一致、规则不统一的技术问题,有利于后续直接利用应用配置库中的应用对象实现应用开发,由此提高了应用开发的效率和安全性。
根据本公开的实施例,响应于接收到应用配置请求,调用应用对象配置模板;针对M个应用标识中的每个应用标识,针对P个阶段标识中的每个阶段标识,根据应用标识和阶段标识,获取应用属性信息和一个或多个负载配置信息、运维配置信息、资源配置信息;利用应用对象配置模板,根据应用属性信息,创建与应用标识和阶段标识对应的初级应用配置对象;以及利用应用对象配置模板,根据一个或多个负载配置信息、运维配置信息和资源配置信息中,创建与应用标识和阶段标识对应的次级应用配置对象。
根据本公开的实施例,应用子对象包括初级应用配置对象和次级应用配置对象。其中,应用配置对象可以用于描述应用对象的主要功能。例如,应用对象可以包括以下至少之一:应用概述、组件描述、资源描述等。
根据本公开的实施例,应用对象配置模板是用于为用户提供应用对象的基础模板,该模板可以帮助开发人员快速定制应用的模型。
根据本公开的实施例,初级应用配置对象可以用于描述应用对象的应用概述信息。应用概述信息可以用于表征应用对象的应用属性信息。
根据本公开的实施例,上述应用属性信息可以用于定义一个系统的交付和管理形式、系统特性、包含的组件以及从整体对系统属性的描述等,该应用属性信息是属于最顶层配置的信息。例如,应用属性信息可以是属性名称、应用类型、权限设置等信息。
根据本公开的实施例,次级应用配置对象可以用于描述应用对象的组件描述信息,组件描述是系统组件最小部署单元的描述,该组件描述信息属于配置的二级目录。例如,组件描述信息可以包括负载配置信息、运维配置信息以及资源配置信息。
根据本公开的实施例,负载配置信息可以用于定义组件运行形态、版本包的下载路径等研发属性。例如,组件运行形态可以包括传统容器部署、虚机部署等。
根据本公开的实施例,研发属性还可以包括部署顺序、确认需要投产的版本以及部署的时序等属性信息,且研发属性可以由研发人员提供。
根据本公开的实施例,运维配置信息可以用于定义组件的伸缩扩容策略、监控配置指标、部署策略、回滚策略等运维属性。例如,部署策略可以包括金丝雀部署策略、灰度部署策略、蓝绿部署策略等。
根据本公开的实施例,运维属性还可以包括用于覆盖日常运维的范围以及设定相应的参数,该运维属性可以作为运维各种事项的参照标准,并支持灵活动态调整。
根据本公开的实施例,资源配置信息可以用于定义应用运行所属环境的计算、存储等资源需求,网络访问关系、安全等策略以及操作系统和运行的基础软件等资源属性。例如,应用运行的基础设施资源信息包括系统、cpu、内存、硬盘等信息,以及应用依赖的基础软件包括软件开发工具包(Java Development Kit,JDK)、高性能的反向代理服务器(nginx)等。
根据本公开的实施例,资源属性还可以用于定义应用完整的运行基础设施和软件依赖,确保配置描述和实际运行资源的一致性。
图4示意性示出了根据本公开一具体实施例的应用配置对象的配置属性的示意图。
如图4所示,本公开一具体实施例的应用配置对象的配置属性的示意图400包括研发属性、运维属性以及资源属性。
其中,研发属性包括应用编排过程中的运行形态、组件、部署时序、生命周期等属性。
运维属性包括运维策略编排过程中的部署策略、伸缩策略、应急策略、负载策略、回滚策略、监控策略等属性。
资源属性包括服务器中的操作系统、硬盘、内存、中央处理器等属性,还包括网络中的负载均衡、安全套接层(Secure Socket Layer,SSL)加解密、域名分配、网络硬件设备、机构线路、专线等网络属性,还包括安全属性中的防火墙、主机安全、容器安全、漏洞扫描、入侵检测、加密等安全属性,还包括基础软件中的中间件、数据库、JDK、大数据组件等软件属性。
下面参考图5,对根据本发明实施例的初级应用配置对象的创建方法500做进一步说明。
图5示意性示出了根据本公开实施例的初级应用配置对象的创建方法的流程图。
如图5所示,在操作S510中,确定是否接收到应用配置请求?若为否,则会结束该流程;若为是,则会调用对象配置模板501。
根据多个应用配置请求指示中的每个应用标识502以及每个阶段标识503,获取应用对象的应用属性信息504。
利用应用对象配置模板501和应用属性信息504,在应用配置库中创建与应用标识502和阶段标识503对应的初级应用配置对象505。
备选地,还可以参考图6,对根据本发明实施例的次级应用配置对象的创建方法600做进一步说明。
图6示意性示出了根据本公开实施例的次级应用配置对象的创建方法的流程图。
如图6所示,在操作S610中,确定是否接收到应用配置请求?若为否,则会结束该流程;若为是,则会调用对象配置模板601。
根据多个应用配置请求指示中的每个应用标识602以及每个阶段标识603,获取应用对象的一个或多个负载配置信息、运维配置信息和资源配置信息604。
利用应用对象配置模板601和一个或多个负载配置信息、运维配置信息和资源配置信息604,在应用配置库中创建与应用标识602和阶段标识603对应的次级应用配置对象605。
本公开的实施例通过从开发、测试和运维等不同阶段标识的角度对应用架构、部署架构、运维特征等应用标识对应用对象进行统一描述,并且根据应用配置调用请求调用应用对象配置模板,与获取的应用属性信息,以及一个或多个负载配置信息、运维配置信息、资源配置信息,创建初级应用配置对象和次级应用配置对象,以支持属性任意拓展,实现参数的动态配置和灵活定义。
根据本公开的实施例,上述方法还包括在响应于检测到与M个应用标识各自对应的P个应用子对象中的Q个目标应用子对象发生变更,确定与Q个目标应用子对象各自对应的目标应用标识、目标阶段标识和变更后的目标应用子对象之后:针对Q个目标应用子对象中的每个目标应用子对象,根据目标阶段标识,确定初级对象校验规则和次级对象校验规则;根据初级对象校验规则,对与目标阶段标识对应的初级应用配置对象进行校验,得到初级对象校验结果;响应于初级对象校验结果表征初级应用配置对象通过校验,根据次级对象校验规则,对与目标阶段标识对应的次级应用配置对象进行校验,得到次级对象校验结果;以及响应于次级对象校验结果表征次级应用配置对象通过校验,确定表征变更后的目标应用子对象通过校验的应用子对象校验结果。
根据本公开的实施例,对象校验规则用于对应用对象中的属性参数进行合法性、合理性、合规性校验。该校验规则可以针对目标应用对象不同阶段的属性信息进行设定。例如,可以通过与开源数据库中存储的应用对象进行比对、匹配等方式,对应用对象在用于测试环境中的属性参数进行校验。
根据本公开的实施例,在检测到与多个应用标识各自对应的应用对象中,有一个或多个目标应用对象发生信息变更,确定与一个或多个目标应用对象各自对应的目标应用标识、目标阶段标识和变更后的目标应用对象之后,对于每个目标应用对象,根据目标阶段标识,确定初级对象校验规则和次级对象校验规则。
根据本公开的实施例,根据设定的初级对象校验规则,对与目标阶段标识对应的应用对象中处于配置顶层的应用概述进行校验,得到初级对象校验结果。
根据本公开的实施例,当初级对象校验结果表示该应用对象中处于配置顶层的应用概述通过准确性、合理性等校验,根据设定的次级对象校验规则,对与目标阶段标识对应的应用对象中处于配置二级目录的组件描述进行校验,得到次级对象校验结果。
根据本公开的实施例,当次级对象校验结果表示组件描述通过校验,则可以确定表征变更后的目标应用对象通过校验的应用对象校验结果。
下面参考图7,对根据本发明实施例的应用子对象校验结果的确定方法700做进一步说明。
图7示意性示出了根据本公开实施例的应用子对象校验结果的确定方法的流程图。
如图7所示,根据初级对象校验规则702对初级应用配置701进行校验,得到初级对象校验结果703,经过判断操作S710,确定初级应用配置对象是否通过校验?若为否,则会结束流程。
若为是,则会继续根据刺激对象校验规则705对次级应用配置704进行校验,得到次级对象校验结果706,经过判断操作S720,确定次级应用配置对象是否通过校验?若为否,则会结束流程;若为是,则会输出应用子对象校验结果707。
本公开的实施例通过根据目标阶段标识,确定初级对象校验规则和次级对象校验规则,并分别对处在配置顶层和处在配置二级目录的应用概述和组件描述信息进行校验,进而实现对应用对象的参数校验,以提高应用对象的准确性。
根据本公开的实施例,响应于初级对象校验结果表征初级应用配置对象未通过校验或次级对象校验结果表征次级应用配置对象未通过校验,确定变更后的目标应用子对象的运行故障信息;以及输出目标应用标识、目标阶段标识、变更后的目标应用子对象和运行故障信息。
根据本公开的实施例,运行故障信息可以包括参数错误、字段不完整、描述不规范等故障信息。
根据本公开的实施例,若上述初级对象校验结果表示应用对象中处于配置顶层的应用概述未通过校验,或次级对象校验结果表征应用对象中处于配置二级目录的组件描述未通过校验,则会自动确定变更后的目标应用子对象即应用对象的运行故障信息的具体内容,并输出目标应用标识、目标阶段标识、变更后的目标应用子对象和运行故障信息,用于提示用户在应用对象更新的过程中出现故障。
根据本公开的实施例,经过校验后确定存在运行故障,在输出故障信息的同时也会阻止应用对象继续变更,在对错误的数据进行及时更正之后再次进行校验,直到所有目标应用对象通过校验。
本公开的实施例通过确定未通过校验的初级应用配置对象或次级应用配置对象的运行故障信息,并对于不规范的目标应用对象变更进行及时提醒,并阻止变更实施,对错误的数据进行及时更正之后再次进行校验,以提高目标应用对象信息变更的准确性。
图8示意性示出了根据本公开实施例的应用配置信息的变更方法的流程图。
如图8所示,操作S240可以包括操作S841~S843。
在操作S841,利用与目标阶段标识对应的版本控制分支,根据更新版本信息,应用配置库中的当前版本信息进行替换,得到变更后的版本信息。
在操作S842,针对T个第二对象名称字段中的每个第二对象名称字段,将第二对象名称字段与S个第一对象名称字段分别进行匹配,得到目标对象名称字段。
在操作S843,利用与目标阶段标识对应的版本控制分支,根据更新对象值字段,对与目标对象名称字段对应的当前对象值字段进行替换,得到变更后的应用配置信息。
根据本公开的实施例,目标应用子对象包括当前版本信息、S个第一对象名称字段和与S个第一对象名称字段各自对应的当前对象值字段,变更后的目标应用子对象包括更新版本信息、T个第二对象名称字段和与T个第二对象名称字段各自对应的更新对象值字段。
根据本公开的实施例,版本信息是指软件或操作系统发行时附带的详细信息,包括版本号码、发行日期、所属开发者、适用平台等等。例如,某移动端版本信息包括:版本名称为Windows 10,版本号为22.2,发行日期为2023-01-01。
根据本公开的实施例,对象名称字段可以用于表征应用子对象的名称对应的字段,对象值字段可以用于表征应用子对象的名称字段对应的具体描述或实际数据。
例如,当前创建一个名为“应用子对象A”的数据表,其中包含三个字段:“运行形态”、“是否加密”和“部署策略”,这三个字段后分别对应的具体描述为:“虚机形态”、“加密”、“灰度策略”,则“运行形态”、“是否加密”和“部署策略”就是应用子对象A对应的对象名称字段,“虚机形态”、“加密”、“灰度策略”就是上述三个对象名称字段对应的对象值字段。
根据本公开的实施例,在变更后的应用对象通过校验后,利用与目标阶段标识对应的版本控制分支,根据变更后应用对象对应的更新版本信息,对当前应用配置库中变更前应用对象对应的当前版本信息进行替换,可以得到变更后的应用对象对应的版本信息。
根据本公开的实施例,将变更后的应用对象所对应的所有第二对象名称字段,与变更前的应用对象所对应的所有第一对象名称字段分别进行匹配,得到匹配结果,若匹配结果表征第一对象名称字段与第二对象名称字段相匹配,则表示该对象名称字段无需更改替换;若匹配结果表征第一对象名称字段与第二对象名称字段不匹配,则将该一个或多个不匹配的第二对象名称字段作为目标对象名称字段。
利用目标阶段标识对应的版本控制分支和更新后应用对象对应的更新对象值字段,对上述目标对象名称字段即一个或多个不匹配的第二对象名称字段所对应的当前对象值字段进行替换,经过字段值替换的应用对象可以构成更新后的应用配置库。
本公开的实施例通过引入版本信息、对象名称字段以及对象值字段,用于将当前目标应用子对象与变更后目标应用子对象进行匹配,通过替换匹配结果不一致的对象值字段,以更新应用配置库中原来的目标应用子对象,从而根据配置变更实时更新应用配置库中存储的配置信息,在实现自动更新的基础上还能提高配置库中配置信息的准确性。
图9示意性示出了根据本公开实施例的版本控制分支的创建方法的流程图。
如图9所示,操作S220可以包括900中的操作S921~S924。
在操作S921,根据与开发阶段标识对应的初级应用配置对象和次级应用配置对象,创建开发分支。
在操作S922,根据与测试阶段标识对应的初级应用配置对象和次级应用配置对象,创建测试分支。
在操作S923,根据与生产阶段标识对应的初级应用配置对象和次级应用配置对象,创建生产分支。
在操作S924,根据与灾备阶段标识对应的初级应用配置对象和次级应用配置对象,创建灾备分支。
根据本公开的实施例,阶段标识包括一个或多个开发阶段的字段标识、测试阶段的字段标识、生产阶段的字段标识和灾备阶段的字段标识。
根据本公开的实施例,根据与开发阶段标识对应的初级应用配置对象和次级应用配置对象,创建开发分支。
例如,当有跨迭代任务的时候,则从开发分支拉取一个副本,在该副本上进行迭代任务开发,该任务开发完成后,再合并到开发主分支,回归到正常开发流程。
根据本公开的实施例,根据与测试阶段标识对应的初级应用配置对象和次级应用配置对象,创建测试分支。
例如,问题测试、回归测试、性能压力测试等都会使用测试分支来处理,待到该版本最终测试通过后,可以将测试报告提交给产品部门,由产品部门来决定是否发布到生产分支。
根据本公开的实施例,根据与生产阶段标识对应的初级应用配置对象和次级应用配置对象,创建生产分支。生产分支可以用于表征我们线上使用的正式环境,不可随意更改,并且每次发布都会标记版本和备份。
例如,当有紧急需求或问题需要修改时,可以从正式分支拉一个副本下来,在副本基础上做开发或修复然后测试,回归等操作完全无误时,产品人员最终确认后,可以将该副本发布到生产环境中去,并对应标记版本,将正在开发中的版本顺延一个,最终回归到正常开发流程。
根据本公开的实施例,根据与灾备阶段标识对应的初级应用配置对象和次级应用配置对象,创建灾备分支。其中,灾备分支能提供应用系统接管能力,即在生产中心发生故障的情况下,灾备分支能够接管应用。
本公开的实施例通过根据不同阶段标识如开发、生产、测试、灾备等多个不同环境下对应的应用配置对象,以创建对应的版本控制分支,在应用对象发生变更时也可以将实时将变更信息分布到各个版本控制分支上,以及时对接应用配置库进行相应的变更动作,从而尽量减少系统停机时间,提高应用运行和投产的连续性。
图10示意性示出了根据本公开实施例的应用的发布方法的流程图。
如图10所示,该应用的发布方法1000包括操作S1010~S1030。
在操作S1010,响应于接收到应用发布请求,利用与应用发布请求中的待发布应用标识和待发布阶段标识对应的版本控制分支,从应用配置库中获取待发布应用对象。
根据本公开的实施例,应用发布请求可以包括经过配置后等待发布的应用对应的各个标识信息。例如,应用标识、阶段标识、时间标识等。待发布应用标识可以用于表征经过配置后等待发布的应用对应的运维特征、应用架构等应用标识。待发布阶段标识可以用于表征经过配置后等待发布的应用对应的生产、灾备等不同环境阶段的阶段标识。待发布应用对象可以用于表征经过配置后等待发布的应用在应用配置库中对应的应用对象。
根据本公开的实施例,在接收到应用发布请求后,利用与该发布请求中的待发布应用标识,以及与待发布阶段标识对应的版本控制分支,从更新后的应用配置库中选出与之匹配的待发布应用对象,也就是选出待发布应用对应的应用对象。
在操作S1020,对待发布应用对象进行处理,得到经处理应用对象。
根据本公开的实施例,在从最新的应用配置库中选出待发布应用对应的应用对象之后,对选出的应用对象进行描述转换处理,使得处理之后的应用对象能够以应用发布请求中的描述形式相一致,并将处理后的应用对象作为经处理应用对象。
在操作S1030,根据经处理应用对象,发布与待发布应用标识对应的目标应用。
根据本公开的实施例,根据经描述转换处理后的应用对象,向不同平台发布与待发布应用标识对应的目标应用。
本公开的实施例在接收到应用发布请求之后,从应用配置库中调用与待发布应用对应的待发布应用对象,通过对待发布应用对象进行描述转换处理,使待发布应用对象在处理之后与应用发布请求中的描述形式相一致,以便在发布应用时能够向不同平台发布与平台描述形式相匹配的目标应用,从而屏蔽不同环境下的差异,实现待发布目标应用的应用描述与平台解耦,以提高应用对象的适配能力,从而提高应用投产效率。
图11示意性示出了根据本公开实施例的待发布应用对象的获取方法的流程图。
如图11所示,操作S1010可以包括1100中的操作S1111~S1113。
在操作S1111,响应于接收到应用发布请求,将待发布应用标识和M个应用标识分别进行匹配,得到目标应用标识。
根据本公开的实施例,在接收到应用发布请求之后,将待发布应用的应用标识与应用配置请求指示的一个或多个应用标识分别进行匹配,将相匹配的应用标识作为目标应用标识。
在操作S1112,将待发布阶段标识和与目标应用标识对应的P个版本控制分支分别进行匹配,得到目标版本控制分支。
根据本公开的实施例,将待发布应用的阶段标识与上述目标应用标识对应的版本控制分支分别进行匹配,将相匹配的版本控制分支作为目标版本控制分支,其中,一个或多个应用标识各自对应的一个或多个版本控制分支存储在应用配置库中。
在操作S1113,利用目标版本控制分支,从应用配置库中获取待发布应用对象。
根据本公开的实施例,根据上述相匹配的目标版本控制分支,从应用配置库中调出与目标版本控制分支对应的待发布应用的应用对象。
本公开的实施例通过将待发布应用的应用标识、阶段标识与应用配置库中存储的应用标识以及版本控制分支相匹配,匹配结果一致的应用对象即可作为待发布应用的应用对象,以实现快速调用出待发布应用所对应版本控制分支的应用对象,从而提高应用投产效率。
根据本公开的实施例,对待发布应用对象进行处理,得到经处理应用对象包括以下方式至少之一:根据负载配置信息中的提供方标识,利用与提供方标识对应的应用程序编程接口对待发布应用对象进行处理,得到经处理应用对象;根据运维配置信息中的运维策略标识,利用与运维策略标识对应的运维策略对待发布应用对象进行处理,得到经处理应用对象;以及根据资源配置信息中的基础资源标识,利用与基础资源标识对应的资源部署脚本对待发布应用对象进行处理,得到经处理应用对象。
根据本公开的实施例,待发布应用对象包括初级应用配置对象和次级应用配置对象,其中,初级应用配置对象与次级应用配置对象与上述描述相同,在此不再赘述。
根据本公开的实施例,根据负载配置信息中的提供方标识,利用与提供方标识对应的应用程序编程接口对待发布应用对象进行处理,得到经处理应用对象
根据本公开的实施例,提供方标识可以用于表征应用发布请求中所包括的应用投产平台对应的标识信息。例如,在应用发布请求中表征应用A需投产到容器平台中,则提供方标识即为容器平台。
根据本公开的实施例,应用程序编程接口可以用于实现计算机软件之间的相互通信。例如,可以通过转换成标准的访问查询语言实现应用程序之间的数据共享。
根据本公开的实施例,根据次级应用配置对象即组件描述中的负载配置信息,筛选出与应用发布请求对应的提供方标识,并调用与提供方标识对应的应用程序编程接口,对待发布应用的应用对象进行翻译等处理,经过处理后的应用对象即为经处理应用对象。
例如,在调用到与待发布应用相匹配的应用对象之后,可以根据负载配置信息如容器部署、版本包下载路径等信息,匹配对应的应用程序编程接口,并且可以通过调用应用程序编程接口以通用语言标准对该应用对象进行翻译处理,输出和应用投产平台适配的应用对象。
下面参考图12,对根据本发明一具体实施例的待发布应用对象的处理方法做进一步说明。
图12示意性示出了根据本公开实施例的待发布应用对象的处理方法的示意图。
如图12所示的1200中,将变更后的应用配置模型1201推送至应用对象处理平台1202中,经过应用对象处理平台1202调用分别与容器平台1203和传统架构1204对应的应用程序编程接口,对应用配置模型1201进行处理,将处理后适配的应用配置模型1201分别配置到容器平台1203和传统架构1204中。
在容器平台1203中,通过一容器集群管理系统(Kubernetes,K8S)将编排好的应用对象1201推送至集群部署应用和服务的多容器运行单元POD中,以实现应用的配置。
备选地,还可以在传统架构1204中,通过商业栈和互联网栈标识将编排好的应用对象1201推送至对应的虚机中以实现应用的配置。
根据本公开的实施例,根据次级应用配置对象即组件描述中的运维配置信息,筛选出与应用发布请求对应的运维策略标识如监控策略、伸缩策略等,对待发布应用的应用对象进行监控、伸缩等调整处理,从而得到应用投产平台适配的应用对象。
根据本公开的实施例,次级应用配置对象即组件描述中的资源配置信息,筛选出与应用发布请求对应的基础资源标识如系统、硬盘、应用依赖的基础软件等,利用基础资源标识对应的资源部署脚本对待发布应用的应用对象进行调整处理,从而得到应用投产平台适配的应用对象。
本公开的实施例通过引入三种不同的待发布应用对象的处理方法,使应用对象能够适配到不同的应用平台中,并且可以同时兼容传统架构和容器平台,实现了应用对象与应用平台的解耦。
根据本公开的实施例,版本控制分支包括开发分支、测试分支、生产分支和灾备分支中的至少一个,开发分支用于控制开发阶段的应用子对象,测试分支用于控制测试阶段的应用子对象,生产分支用于控制生产阶段的应用子对象,灾备分支用于控制灾备阶段的应用子对象。
根据本公开的实施例,在应用配置库中创建的不同环境下的版本控制分支包括一个或多个开发分支、测试分支、生产分支和灾备分支。具体地,开发分支用于控制开发阶段的应用对象,测试分支用于控制测试阶段的应用对象,生产分支用于控制生产阶段的应用对象,灾备分支用于控制灾备阶段的应用对象。
根据本公开的实施例,可以根据与开发阶段标识、测试阶段标识、生产阶段标识以及灾备阶段标识各自对应的初级应用配置对象和次级应用配置对象,创建开发分支、测试分支、生产分支和灾备分支。
根据本公开的实施例,根据经处理应用对象,发布与待发布应用标识对应的目标应用包括:响应于检测到开发分支针对开发阶段的应用子对象的开发操作已完成,发起第一合并请求;根据第一合并请求,将开发分支合并至测试分支;响应于检测到测试分支针对测试阶段的应用子对象的测试操作已完成,发起第二合并请求;根据第二合并请求,将测试分支合并至生产分支;以及根据发布地址信息,对经处理应用对象进行编译处理,得到目标应用。
根据本公开的实施例,应用发布请求还包括发布地址信息。例如,应用程序上传至服务器的链接地址即可作为发布地址信息。
根据本公开的实施例,在应用投产的流程控制过程中,将开发作为应用对象变更的发起点,对开发分支进行维护,例如,包含应用版本、环境参数、部署脚本等信息。当服务器检测到开发分支针对开发阶段的应用对象已开发完成,则会发起将开发分支合并至测试分支的第一合并请求。
根据本公开的实施例,当开发分支合并至测试分支之后,对合并后的分支中的应用对象进行测试操作,例如,对应用描述修改及其应用部署效果进行验证审核或对变更进行准出审批。在检测到测试分支针对测试阶段的应用对象的测试操作已完成,发起将测试分支合并至生产分支的第二合并请求。
根据本公开的实施例,当测试分支合并至生产分支之后,对合并后的分支中的应用对象进行投产操作,将配置后的应用对象向不同平台进行交付。
根据本公开的实施例,在各个版本控制分支中对应用对象进行开发、测试等操作之后,根据应用发布请求中所包含的发布地址信息,对处理后的应用对象进行编译处理,从而得到目标应用。
下面参考图13,对根据本发明一具体实施例的目标应用的发布方法1300做进一步说明。
图13示意性示出了根据本公开实施例的目标应用的发布方法的示意图。
如图13所示,开发测试区包括开发分支和测试分支,生产区毛扩生产分支和灾备分支,将应用对象推送至开发分支中,经过开发人员的开发操作之后,提出将开发分支合并到测试分支的合并请求,同时应用配置库可以向外发送开发环境下应用模型所在分支发生合并动作的通知。
在合并之后,再由测试人员对合并后的测试分支进行测试操作,经过测试人员的测试操作之后,提出将测试分支合并到生产分支的合并请求,同时应用配置库可以向外发送测试环境下应用模型所在分支发生合并动作的通知。
在合并之后,再由运维人员对合并后的生产分支进行运维操作,经过运维人员的运维操作之后,若生产中心未发生故障,即可对合并后的分支中的应用对象进行投产操作,将配置后的应用对象向不同平台进行交付,同时应用配置库可以向外发送生产环境下应用模型所在分支发生推送动作的通知。
经过运维人员的运维操作之后,若生产中心发生故障,则提出将生产分支合并到灾备分支的合并请求,由灾备分支能够接管应用,并且在对故障处理之后,即可对合并后的分支中的应用对象进行投产操作,将配置后的应用对象推送不同平台进行交付,同时应用配置库可以向外发送灾备环境下应用模型所在分支发生推送或合并动作的通知。
本公开的实施例通过将开发作为应用配置文件变更的发起点,对开发分支进行维护后提交合并请求到测试分支,在测试阶段对应用描述修改及其应用部署效果进行验证审核之后提交合并请求到生产分支,在生产阶段通过运维审批,驱动应用对象从开发态向运行态进行移交,从而完成应用投产的闭环管控,以提高应用投产效率。
下面参考图14,图14为上述应用配置库的创建方法以及应用的发布方法的具体实施例之一。
图14示意性示出了根据本公开一具体实施例的应用产品架构的示意图。
如图14所示,该具体实施例的应用产品架构1400包括投产应用服务层、云原生支持服务层以及基础设施支撑层三层架构。
投产应用服务层包括应用描述平台和流程控制平台。
在应用描述平台中,由开发单位对应用对象进行编排,为用户提供应用对象的基础模板,即应用对象配置模板,帮助开发单位的开发人员根据应用配置请求快速定制应用对象。
备选地,若应用对象发生变更,对变更后的应用对象进行校验,并利用在应用配置库中创建的不同的版本控制分支对应用配置库中的应用对象进行替换,将更新后的应用配置模型输出至云原生支持服务层。
备选地,在投产应用服务层中还包括流程控制平台,流程控制平台可以向数据中心的运维人员提供模型合并的审批功能,通过审批驱动版本、架构等应用对象的变更从开发态流转到运行态,以确保应用对象的一致性。
云原生支持服务层包括应用配置库、版本控制分支管理中心以及应用对象处理中心。
在云原生支持服务层中,可以对从投产应用服务层调用的应用对象进行翻译和转化,通过语言标准等需求将应用对象适配到不同的平台中,以实现应用配置的变更通过处理及时反馈到基础设施支撑层。
云原生支持服务层可以用于配置统一的应用配置库如Git中心仓库。在创建好应用配置库之后,可以将投产应用服务层编排好的应用对象统一集中到该应用配置库中,用于对应用对象进行统一管控。
备选地,云原生支持服务层还可以用于在版本控制分支管理中心中对不同阶段标识对应的版本控制分支以及分支权限进行统一管理,以保证目标应用在投产过程中配置在不同分支内有效合并流转。
备选地,云原生支持服务层还可以用于在应用对象处理中心中对调用的应用对象提供应用程序编程接口(Application Programming Interface,API),并根据语言标准等需求对待发布应用进行翻译、转化等处理,以实现应用重启、扩容、回退等变更操作。
备选地,云原生支持服务层还可以用于提供应用对象的脚本编排能力,例如在应用投产过程中进行备份、集成测试、老服务停止、新服务启动、技术验证、绿灯测试等等相关的投产操作,以保障应用投产的连贯性和准确性。
备选地,云原生支持服务层还可以用于提供推送/合并管理功能,通过借助应用配置库的通知功能,能够在应用对象发生推送或者合并相关动作的时候及时向外发送消息,告知云平台对应用的变更及时响应。
基础设施支撑层用于提供应用运行的基础环境以对接云原生支持服务层,以申请对应的计算资源以及实现应用的自动部署。该基础设施支撑层可以是虚拟机、云平台等平台。
图15示意性示出了根据本公开的实施例的应用配置库的创建装置的框图。
如图15所示,应用配置库的创建装置1500可以包括第一获取模块1510、创建模块1520、确定模块1530、变更模块1540。
第一获取模块1510,用于响应于接收到应用配置请求,获取与应用配置请求指示的M个应用标识各自对应的应用对象,其中,应用对象包括与P个阶段标识各自对应的P个应用子对象。在一实施例中,第一获取模块1510可以用于执行前文描述的操作S210,在此不再赘述。
创建模块1520,用于在应用配置库中创建与M个应用标识的P个阶段标识各自对应的版本控制分支。在一实施例中,创建模块1520可以用于执行前文描述的操作S220,在此不再赘述。
确定模块1530,用于响应于检测到与M个应用标识各自对应的P个应用子对象中的Q个目标应用子对象发生变更,确定与Q个目标应用子对象各自对应的目标应用标识、目标阶段标识和变更后的目标应用子对象。在一实施例中,确定模块1530可以用于执行前文描述的操作S230,在此不再赘述。
变更模块1540,用于响应于变更后的目标应用子对象通过校验,利用与目标应用标识和目标阶段标识对应的版本控制分支,根据变更后的目标应用子对象,对目标应用子对象进行变更,得到变更后的应用配置库。在一实施例中,变更模块1540可以用于执行前文描述的操作S240,在此不再赘述。
根据本公开的实施例,第一获取模块1510包括调用单元、第一获取单元、第一创建单元、第二创建单元。
调用单元用于响应于接收到应用配置请求,调用应用对象配置模板。
第一获取单元用于针对M个应用标识中的每个应用标识,针对P个阶段标识中的每个阶段标识,根据应用标识和阶段标识,获取应用属性信息和负载配置信息、运维配置信息、资源配置信息中的至少之一。
第一创建单元用于利用应用对象配置模板,根据应用属性信息,创建与应用标识和阶段标识对应的初级应用配置对象。
第二创建单元用于利用应用对象配置模板,根据负载配置信息、运维配置信息和资源配置信息中的至少之一,创建与应用标识和阶段标识对应的次级应用配置对象。
根据本公开的实施例,应用配置库的创建装置1500还包括:第二确定模块、第一校验模块、第二校验模块、第三确定模块。
第二确定模块用于针对Q个目标应用子对象中的每个目标应用子对象,根据目标阶段标识,确定初级对象校验规则和次级对象校验规则。
第一校验模块用于根据初级对象校验规则,对与目标阶段标识对应的初级应用配置对象进行校验,得到初级对象校验结果。
第二校验模块用于响应于初级对象校验结果表征初级应用配置对象通过校验,根据次级对象校验规则,对与目标阶段标识对应的次级应用配置对象进行校验,得到次级对象校验结果。
第三确定模块用于响应于次级对象校验结果表征次级应用配置对象通过校验,确定表征变更后的目标应用子对象通过校验的应用子对象校验结果。
根据本公开的实施例,应用配置库的创建装置1500还包括:第四确定模块、输出模块。
第四确定模块用于响应于初级对象校验结果表征初级应用配置对象未通过校验或次级对象校验结果表征次级应用配置对象未通过校验,确定变更后的目标应用子对象的运行故障信息。
输出模块用于输出目标应用标识、目标阶段标识、变更后的目标应用子对象和运行故障信息。
根据本公开的实施例,变更模块1540包括:第一替换单元、第一匹配单元、第二替换单元。
第一替换单元用于利用与目标阶段标识对应的版本控制分支,根据更新版本信息,应用配置库中的当前版本信息进行替换,得到变更后的版本信息。在一实施例中,第一替换单元可以用于执行前文描述的操作S841,在此不再赘述。
第一匹配单元用于针对T个第二对象名称字段中的每个第二对象名称字段,将第二对象名称字段与S个第一对象名称字段分别进行匹配,得到目标对象名称字段。在一实施例中,第一匹配单元可以用于执行前文描述的操作S842,在此不再赘述。
第二替换单元用于利用与目标阶段标识对应的版本控制分支,根据更新对象值字段,对与目标对象名称字段对应的当前对象值字段进行替换,得到变更后的应用配置信息。在一实施例中,第二替换单元可以用于执行前文描述的操作S843,在此不再赘述。
根据本公开的实施例,创建模块1520包括:第三创建单元、第四创建单元、第五创建单元、第六创建单元。
第三创建单元用于根据与开发阶段标识对应的初级应用配置对象和次级应用配置对象,创建开发分支。在一实施例中,第三创建单元可以用于执行前文描述的操作S921,在此不再赘述。
第四创建单元用于根据与测试阶段标识对应的初级应用配置对象和次级应用配置对象,创建测试分支。在一实施例中,第四创建单元可以用于执行前文描述的操作S922,在此不再赘述。
第五创建单元用于根据与生产阶段标识对应的初级应用配置对象和次级应用配置对象,创建生产分支。在一实施例中,第五创建单元可以用于执行前文描述的操作S923,在此不再赘述。
第六创建单元用于根据与灾备阶段标识对应的初级应用配置对象和次级应用配置对象,创建灾备分支。在一实施例中,第六创建单元可以用于执行前文描述的操作S924,在此不再赘述。
图16示意性示出了根据本公开的实施例的应用的发布装置的框图。
如图16所示,应用的发布装置1600可以包括第二获取模块1610、处理模块1620、发布模块1630。
第二获取模块1610,用于响应于接收到应用发布请求,利用与应用发布请求中的待发布应用标识和待发布阶段标识对应的版本控制分支,从应用配置库中获取待发布应用对象。在一实施例中,第二获取模块1610可以用于执行前文描述的操作S1010,在此不再赘述。
处理模块1620,用于对待发布应用对象进行处理,得到经处理应用对象。在一实施例中,处理模块1620可以用于执行前文描述的操作S1020,在此不再赘述。
发布模块1630,用于根据经处理应用对象,发布与待发布应用标识对应的目标应用。在一实施例中,发布模块1630可以用于执行前文描述的操作S1030,在此不再赘述。
根据本公开的实施例,第二获取模块1610包括:第二匹配单元、第三匹配单元、第二获取单元。
第二匹配单元用于响应于接收到应用发布请求,将待发布应用标识和M个应用标识分别进行匹配,得到目标应用标识。在一实施例中,第二匹配单元可以用于执行前文描述的操作S1111,在此不再赘述。
第三匹配单元用于将待发布阶段标识和与目标应用标识对应的P个版本控制分支分别进行匹配,得到目标版本控制分支。在一实施例中,第三匹配单元可以用于执行前文描述的操作S1112,在此不再赘述。
第二获取单元用于利用目标版本控制分支,从应用配置库中获取待发布应用对象。在一实施例中,第二获取单元可以用于执行前文描述的操作S1113,在此不再赘述。
根据本公开的实施例,处理模块1620包括第一处理单元、第二处理单元、第三处理单元。
第一处理单元用于根据负载配置信息中的提供方标识,利用与提供方标识对应的应用程序编程接口对待发布应用对象进行处理,得到经处理应用对象。
第二处理单元用于根据运维配置信息中的运维策略标识,利用与运维策略标识对应的运维策略对待发布应用对象进行处理,得到经处理应用对象。
第三处理单元用于根据资源配置信息中的基础资源标识,利用与基础资源标识对应的资源部署脚本对待发布应用对象进行处理,得到经处理应用对象。
根据本公开的实施例,发布模块1630包括:第一请求单元、第一合并单元、第二请求单元、第二合并单元、第四处理单元。
第一请求单元用于响应于检测到开发分支针对开发阶段的应用子对象的开发操作已完成,发起第一合并请求。
第一合并单元用于根据第一合并请求,将开发分支合并至测试分支。
第二请求单元用于响应于检测到测试分支针对测试阶段的应用子对象的测试操作已完成,发起第二合并请求。
第二合并单元用于根据第二合并请求,将测试分支合并至生产分支。
第四处理单元用于根据发布地址信息,对经处理应用对象进行编译处理,得到目标应用。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,应用配置库的创建装置1500的第一获取模块1510、创建模块1520、确定模块1530、变更模块1540或应用的发布装置1600的第二获取模块1610、处理模块1620、发布模块1630中任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。
根据本公开的实施例,应用配置库的创建装置1500的第一获取模块1510、创建模块1520、确定模块1530、变更模块1540或应用的发布装置1600的第二获取模块1610、处理模块1620、发布模块1630中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,应用配置库的创建装置1500的第一获取模块1510、创建模块1520、确定模块1530、变更模块1540或应用的发布装置1600的第二获取模块1610、处理模块1620、发布模块1630中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例应用配置库的创建装置1500和应用的发布装置1600部分与本公开的实施例中应用配置库的创建方法和应用的发布方法部分是相对应的,应用配置库的创建装置1500和应用的发布装置1600部分的描述具体参考应用配置库的创建方法和应用的发布方法部分,在此不再赘述。
图17示意性示出了根据本公开实施例的适于实现应用配置库的创建方法和应用的发布方法的电子设备的框图。
图17示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图17所示,根据本公开实施例的计算机电子设备1700包括处理器1701,其可以根据存储在只读存储器(ROM)1702中的程序或者从存储部分1709加载到随机访问存储器(RAM)1703中的程序而执行各种适当的动作和处理。处理器1701例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1701还可以包括用于缓存用途的板载存储器。处理器1701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1703中,存储有电子设备1700操作所需的各种程序和数据。处理器1701、ROM 1702以及RAM 1703通过总线1704彼此相连。处理器1701通过执行ROM 1702和/或RAM1703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1702和RAM 1703以外的一个或多个存储器中。处理器1701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1700还可以包括输入/输出(I/O)接口1705,输入/输出(I/O)接口1705也连接至总线1704。电子设备1700还可以包括连接至输入/输出(I/O)接口1705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1707;包括硬盘等的存储部分1708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1709。通信部分1709经由诸如因特网的网络执行通信处理。驱动器1710也根据需要连接至输入/输出(I/O)接口1705。可拆卸介质1711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1710上,以便于从其上读出的计算机程序根据需要被安装入存储部分1708。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1709从网络上被下载和安装,和/或从可拆卸介质1711被安装。在该计算机程序被处理器1701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1702和/或RAM 1703和/或ROM 1702和RAM 1703以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的应用配置库的创建方法和应用的发布方法。
在该计算机程序被处理器1701执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1709被下载和安装,和/或从可拆卸介质1711被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
- 一种少儿游戏配置文件自动化应用方法及电子设备
- 虚拟形象的创建方法、装置、电子设备与存储介质
- 一种账户创建方法及其装置、电子设备
- 服务器配置方法、装置以及电子设备
- FTU控制器配置方法、装置及系统、电子设备
- 数据库的库表创建方法及库表创建装置、电子设备
- 应用部署时的文件配置方法、装置及应用发布方法、装置