
1.本发明涉及云服务部署技术领域,尤其涉及一种云原生应用的上线方法。
背景技术:2.在云原生应用上线的场景下,一个完整的、能对外提供服务的云原生应用包括云原生应用服务自身以及云原生应用服务所需要使用的各种中间件实例。中间件实例需要在云原生应用上线之前孵化完毕并能正常对外提供服务,特别的,有些中间件实例在孵化完毕后需要进行一些额外的配置才能正常为云原生应用提供服务。
3.在实际应用中,云原生应用所需要使用的中间件实例的一些信息在中间件实例正常对外提供服务之前是无法获得的。针对该问题,当前主要有两种解决方案,一种是将中间件实例封装到云原生应用之中,这种方案会提升云原生应用自身的耦合性,从而提升部署难度,降低可观测性,延长部署时间;第二种是分步骤地执行中间件实例的孵化、中间件实例的后续配置以及为云原生应用配置中间件实例信息执行上线,对于云原生应用上线来说,这种方案使得云原生应用不仅仅需要执行自身服务的部署,还需要执行定制化的中间件实例的部署以及配置,而且对于某些云原生应用来说,它可以使用已经被孵化出来的实例,通过人工去执行中间件实例的孵化和配置,或者为云原生应用配置其他可被共享的中间件实例,流程步骤复杂,降低了上线的效率以及提升了业务的复杂性。
4.因此,如何在云原生应用上线前,自动为其孵化依赖的中间件实例,以及提升中间件实例的利用率,成为亟待解决的技术问题。
技术实现要素:5.有鉴于此,为了克服现有技术的不足,本发明提供一种云原生应用的上线方法。
6.一方面,本发明提供一种云原生应用的上线方法,包括:
7.步骤s1:通过中间件管控服务向产品中心注册中间件实例服务信息;
8.步骤s2:将云原生应用对应的安装文件上传至产品中心,填写中间件实例部署信息;
9.步骤s3:通过产品中心根据中间件实例部署信息并行调用中间件管控服务执行中间件实例的孵化和配置;
10.步骤s4:通过产品中心根据孵化和配置成功的中间件实例将安装文件安装至对应的命名空间,生成云原生应用。
11.进一步地,本发明云原生应用的上线方法的步骤s1,包括:通过中间件管控服务在启动时调用产品中心对外提供的接口,向产品中心注册中间件实例类型、中间件实例配置方式以及中间件实例孵化参数,并通过产品中心进行持久化存储和展示。
12.进一步地,本发明云原生应用的上线方法的步骤s2,包括:将云原生应用对应的安装文件上传至产品中心,在产品中心的页面上选择所述云原生应用对应的中间件实例类型,根据中间件实例类型填写中间件实例部署信息,所述中间件实例部署信息包括名称、亲
和性、共享属性、中间件实例孵化参数以及中间件实例配置参数。
13.进一步地,本发明云原生应用的上线方法的步骤s3,包括:
14.步骤s31:通过产品中心生成一条用于记录和展示当前云原生应用上线状态的上线任务并持久化存储;
15.步骤s32:通过产品中心为云原生应用创建对应的命名空间;
16.步骤s33:通过产品中心根据云原生应用的中间件实例部署信息,并行调用中间件实例类型对应的中间件管控服务执行中间件实例的孵化;
17.步骤s34:通过产品中心根据中间件实例配置参数和中间件实例配置方式,并行调用中间件实例类型对应的中间件管控服务执行中间件实例的配置。
18.进一步地,本发明云原生应用的上线方法的步骤s33中,并行调用中间件实例类型对应的中间件管控服务执行中间件实例的孵化,包括:
19.根据中间件实例部署信息中的共享属性为中间件实例选择对应的孵化命名空间,当共享属性为共享实例时,将中间件管控服务所在的命名空间作为孵化中间件实例的命名空间;当共享属性为非共享实例,将云原生应用所在命名空间作为孵化中间件实例的命名空间;
20.检查孵化中间件实例的命名空间中是否已经存在所述中间件实例,如果不存在所述中间件实例,根据中间件实例部署信息中的名称、亲和性以及中间件实例孵化参数渲染中间件实例资源文件,执行中间件实例孵化;如果存在所述中间件实例,判断已经存在的中间件实例的中间件实例孵化参数是否与中间件实例部署信息中的中间件实例孵化参数一致,当不一致时,根据中间件实例部署信息中的中间件实例孵化参数对所述中间件实例执行升级。
21.进一步地,本发明云原生应用的上线方法的步骤s33中,并行调用中间件实例类型对应的中间件管控服务执行中间件实例的孵化,还包括:
22.通过产品中心调用中间件管控服务检查中间件实例的孵化状态,当中间件实例的孵化超过预设时长,将上线任务的状态修改为中间件实例孵化失败,持久化存储后通过页面进行展示;
23.当中间件实例孵化成功后,产品中心调用中间件管控服务获得中间件实例的连接方式并持久化存储,当所有中间件实例孵化成功,将上线任务的状态修改为中间件实例孵化成功,持久化存储后通过页面进行展示。
24.进一步地,本发明云原生应用的上线方法的步骤s34中的中间件实例配置方式以json对象数组定义,数组中的每个json对象包括配置步骤编号、调用接口地址以及调用接口参数。
25.进一步地,本发明云原生应用的上线方法的步骤s34包括:当中间件实例孵化成功后,通过产品中心根据配置步骤编号和调用接口参数依次与中间件实例配置参数中对应的参数进行匹配,为调用接口参数赋值,携带赋值后的调用接口参数调用对应的调用接口地址执行中间件实例的配置。
26.进一步地,本发明云原生应用的上线方法的步骤s4,包括:通过产品中心根据中间件实例部署信息中的名称匹配持久化存储中的中间件实例的连接方式,将匹配的中间件实例的连接方式作为安装文件的安装参数,将安装文件安装至云原生应用对应的命名空间,
生成对应的云原生应用。
27.进一步地,本发明云原生应用的上线方法的步骤s4,还包括:通过产品中心循环检查云原生应用的运行状态,当达到预设时长后命名空间中的云原生应用未完全就绪,中断上线流程,将上线任务的状态修改为上线失败,持久化存储后通过页面进行展示;当命名空间中全部云原生应用的状态都为运行中,将上线任务的状态修改为上线成功,持久化存储后通过页面进行展示。
28.本发明云原生应用的上线方法,具有以下有益效果:
29.1.通过产品中心调用中间件管控服务自动的孵化中间件实例以及对孵化的中间件实例进行配置的方式,优化了云原生应用上线的流程,使得云原生应用部署只需要关注自身的安装文件以及流程,无需执行中间件实例的孵化以及配置。
30.2.产品中心通过中间件管控服务为云原生应用之间配置共享中间件实例,优化中间件实例资源的利用率。
31.3.可以提升云原生应用上线的效率。
附图说明
32.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
33.图1为本发明示例性第一实施例一种云原生应用的上线方法的流程图。
34.图2为本发明示例性第二实施例一种云原生应用的上线方法的流程图。
35.图3为本发明示例性第三实施例一种云原生应用的上线方法的流程图。
36.图4为本发明示例性第四实施例一种云原生应用的上线方法的流程图。
具体实施方式
37.下面结合附图对本发明实施例进行详细描述。
38.需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
39.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
40.图1为根据本发明示例性第一实施例的一种云原生应用的上线方法的流程图,如图1所示,本实施例的方法,包括:
41.步骤s1:通过中间件管控服务向产品中心注册中间件实例服务信息;
42.步骤s2:将云原生应用对应的安装文件上传至产品中心,填写中间件实例部署信
息;
43.步骤s3:通过产品中心根据中间件实例部署信息并行调用中间件管控服务执行中间件实例的孵化和配置;
44.步骤s4:通过产品中心根据孵化和配置成功的中间件实例将安装文件安装至对应的命名空间,生成云原生应用。
45.本实施例方法的步骤s1,包括:通过中间件管控服务在启动时调用产品中心对外提供的接口,向产品中心注册中间件实例类型、中间件实例配置方式以及中间件实例孵化参数,并通过产品中心进行持久化存储和展示。
46.本实施例方法的步骤s2,包括:将云原生应用对应的安装文件上传至产品中心,在产品中心的页面上选择所述云原生应用对应的中间件实例类型,根据中间件实例类型填写中间件实例部署信息,所述中间件实例部署信息包括名称、亲和性、共享属性、中间件实例孵化参数以及中间件实例配置参数。
47.图2为根据本发明示例性第二实施例的一种云原生应用的上线方法的流程图,本实施例是图1所示方法的优选实施例,如图2所示,本实施例方法的步骤s3,包括:
48.步骤s31:通过产品中心生成一条用于记录和展示当前云原生应用上线状态的上线任务并持久化存储;
49.步骤s32:通过产品中心为云原生应用创建对应的命名空间;
50.步骤s33:通过产品中心根据云原生应用的中间件实例部署信息,并行调用中间件实例类型对应的中间件管控服务执行中间件实例的孵化;
51.步骤s34:通过产品中心根据中间件实例配置参数和中间件实例配置方式,并行调用中间件实例类型对应的中间件管控服务执行中间件实例的配置。
52.图3为根据本发明示例性第三实施例的一种云原生应用的上线方法的时序流程图,本实施例是图1与图2所示方法的优选实施例。
53.如图3所示,本实施例方法的步骤s33中,并行调用中间件实例类型对应的中间件管控服务执行中间件实例的孵化,包括:
54.根据中间件实例部署信息中的共享属性为中间件实例选择对应的孵化命名空间,当共享属性为共享实例时,将中间件管控服务所在的命名空间作为孵化中间件实例的命名空间;当共享属性为非共享实例,将云原生应用所在命名空间作为孵化中间件实例的命名空间;
55.检查孵化中间件实例的命名空间中是否已经存在所述中间件实例,如果不存在所述中间件实例,根据中间件实例部署信息中的名称、亲和性以及中间件实例孵化参数渲染中间件实例资源文件,执行中间件实例孵化;如果存在所述中间件实例,判断已经存在的中间件实例的中间件实例孵化参数是否与中间件实例部署信息中的中间件实例孵化参数一致,当不一致时,根据中间件实例部署信息中的中间件实例孵化参数对所述中间件实例执行升级。
56.如图3所示,本实施例方法的步骤s33中,并行调用中间件实例类型对应的中间件管控服务执行中间件实例的孵化,还包括:
57.通过产品中心调用中间件管控服务检查中间件实例的孵化状态,当中间件实例的孵化超过预设时长,将上线任务的状态修改为中间件实例孵化失败,持久化存储后通过页
面进行展示;
58.当中间件实例孵化成功后,产品中心调用中间件管控服务获得中间件实例的连接方式并持久化存储,当所有中间件实例孵化成功,将上线任务的状态修改为中间件实例孵化成功,持久化存储后通过页面进行展示。
59.本实施例方法的步骤s34中的中间件实例配置方式以json对象数组定义,数组中的每个json对象包括配置步骤编号、调用接口地址以及调用接口参数。
60.在实际应用中,本实施例方法的步骤s34包括:当中间件实例孵化成功后,通过产品中心根据配置步骤编号和调用接口参数依次与中间件实例配置参数中对应的参数进行匹配,为调用接口参数赋值,携带赋值后的调用接口参数调用对应的调用接口地址执行中间件实例的配置。
61.图4为根据本发明示例性第四实施例的一种云原生应用的上线方法的时序流程图,本实施例是图1所示方法的优选实施例。
62.如图4所示,本实施例方法的步骤s4,包括:
63.通过产品中心根据中间件实例部署信息中的名称匹配持久化存储中的中间件实例的连接方式,将匹配的中间件实例的连接方式作为安装文件的安装参数,将安装文件安装至云原生应用对应的命名空间,生成对应的云原生应用。
64.通过产品中心循环检查云原生应用的运行状态,当达到预设时长后命名空间中的云原生应用未完全就绪,中断上线流程,将上线任务的状态修改为上线失败,持久化存储后通过页面进行展示;当命名空间中全部云原生应用的状态都为运行中,将上线任务的状态修改为上线成功,持久化存储后通过页面进行展示。
65.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。