System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 应用程序部署方法、装置、电子设备及计算机程序产品制造方法及图纸_技高网

应用程序部署方法、装置、电子设备及计算机程序产品制造方法及图纸

技术编号:40416664 阅读:11 留言:0更新日期:2024-02-20 22:34
本公开属于计算机技术领域,具体涉及应用程序部署方法、装置、电子设备及计算机程序产品。所述方法包括:接收应用程序部署指令;基于所述指令生成应用程序配置信息,所述配置信息至少包含基础镜像类型、处理器类型、应用标识和应用版本号,所述基础镜像为所述应用程序的运行环境镜像,所述应用为基于所述应用程序的需求变更预先生成的可执行文件,所述基础镜像预置于所述虚拟机;基于所述基础镜像类型和所述处理器类型确定所述基础镜像,启动所述基础镜像的容器,基于所述应用标识和所述应用版本号获取所述应用,在所述容器内运行所述应用以部署所述应用程序。本公开大幅提升了微服务的升级效率。

【技术实现步骤摘要】

本公开属于计算机,具体涉及应用程序的部署方法、装置、电子设备及计算机程序产品。


技术介绍

1、以容器化部署的形式提供微服务已经成为业界主流。容器化部署需要先将二进制程序通过docker制作成容器镜像(image),再将容器静像传输到目标位置启动以部署包含所述微服务的容器。一个容器镜像通常包含应用程序的运行环境,如所需的包含操作系统、二进制执行环境所需的lib库以及可执行的微服务文件。其中,运行环境数据量较大,通常超过300m,但只取决于处理器类型、编程语言等,微服务的需求变更通常不会对运行环境造成影响。微服务文件较小,通常在几m到几十m之间。微服务的需求变更一般会导致微服务文件的升级。

2、为了良好的用户体验,微服务需要满足用户越来越频繁的需求变更,从而导致微服务文件的升级越来越频繁,而现在的容器化部署方案需要对每一个升级的微服务文件都重新制作容器镜像并且每一个容器镜像数据量都较大。镜像制作、传输效率较低,导致微服务升级效率较低。


技术实现思路

1、本公开实施例提出了一种应用程序的部署方案,以解决现有的容器化部署方案需要对每一个升级的微服务文件都重新制作容器镜像,镜像制作、传输效率较低导致微服务升级效率较低的问题。

2、本公开实施例的第一方面提供了一种应用程序的部署方法,应用于虚拟机,包括:

3、接收应用程序部署指令;

4、基于所述指令生成应用程序配置信息,所述配置信息至少包含基础镜像类型、处理器类型、编程语言、应用标识和应用版本号,所述基础镜像为所述应用程序的运行环境镜像,所述应用为基于所述应用程序的需求变更预先生成的可执行文件,所述基础镜像预置于所述虚拟机;

5、基于所述基础镜像类型、所述处理器类型和所述编程语言确定所述基础镜像,启动所述基础镜像的容器,基于所述应用标识和所述应用版本号获取所述应用,在所述容器内运行所述应用以部署所述应用程序。

6、在一些实施例中,所述虚拟机包括看门狗模块和开发管理平台,所述接收应用程序部署指令包括:

7、所述看门狗模块按预设规则检查所述开发管理平台并获取通过所述开发管理平台输入的应用程序部署指令。

8、在一些实施例中,所述虚拟机包括yaml库,所述基于所述指令生成应用程序配置信息包括:

9、所述看门狗模块基于所述指令创建或者变更所述yaml库的配置信息。

10、在一些实施例中,基于所述应用程序的需求变更预先生成可执行文件包括:

11、预先基于所述应用程序的需求变更使用ci流水线构建所述应用程序的可执行文件并将所述可执行文件在中心仓库存储。

12、在一些实施例中,所述启动所述基础镜像的容器包括:

13、所述看门狗模块基于指令启动所述基础镜像的容器;或

14、所述看门狗模块基于指令启动包含所述基础镜像的容器的一个实例。

15、在一些实施例中,所述容器包含预设的入口脚本,所述入口脚本用于从所述yaml库的配置信息获取所述应用标识和所述应用版本号,所述虚拟机还包含预置有所述应用的本地存储,所述基于所述应用标识和所述应用版本号获取所述应用包括:

16、当启动所述容器时,执行所述入口脚本,从所述yaml库的配置信息获取所述应用标识和所述应用版本号;

17、从所述本地存储获取与所述应用标识和所述应用版本号对应的所述应用;

18、如果从所述本地存储无法获取所述应用,则从中心仓库获取所述应用。

19、在一些实施例中,所述方法还包括:

20、所述本地存储按预设规则从所述中心仓库获取所述应用。

21、本公开实施例的第二方面提供了一种应用程序的部署装置,应用于虚拟机,包括:

22、指令接收模块,用于接收应用程序部署指令;

23、配置生成模块,用于基于所述指令生成应用程序配置信息,所述配置信息至少包含基础镜像类型、处理器类型、编程语言、应用标识和应用版本号,所述基础镜像为所述应用程序的运行环境镜像,所述应用为基于所述应用程序的需求变更预先生成的可执行文件,所述基础镜像预置于所述虚拟机;

24、应用部署模块,用于基于所述基础镜像类型、所述处理器类型和所述编程语言确定所述基础镜像,启动所述基础镜像的容器,基于所述应用标识和所述应用版本号获取所述应用,在所述容器内运行所述应用以部署所述应用程序。

25、本公开实施例的第三方面提供了一种电子设备,包括存储器和处理器,

26、所述存储器,用于存储计算机程序;

27、所述处理器,用于当执行所述计算机程序时,实现本公开第一方面所述的方法。

28、本公开实施例的第四方面提供了一种计算机程序产品,包括计算机程序、指令,当所述计算机程序、指令被处理器执行时,实现本公开第一方面所述的方法。

29、综上所述,本公开各实施例提供的应用程序的部署方法、装置、电子设备和计算机程序产品,通过把在用户需求变更导致的微服务升级过程中基本不变的运行环境制作成基础镜像,基于用户的需求变更生成可执行文件,再把静态镜像与可执行文件通过脚本与外部配置做动态关联以部署提供所述服务的应用程序,因为只需提前制作好运行过程所有需要用到的基础镜像,而不需要为每个应用程序定制镜像,从而大幅提高了镜像制作效率;同时在私网场景下只需传输可执行文件,而不需要传输整个镜像,从而大幅提高了传输效率,最终导致微服务的升级效率大为提升,可以更好的满足用户频繁的需求变更。

本文档来自技高网...

【技术保护点】

1.一种应用程序的部署方法,应用于虚拟机,其特征在于,包括:

2.根据权利要求1所述方法,其特征在于,所述虚拟机包括看门狗模块和开发管理平台,所述接收应用程序部署指令包括:

3.根据权利要求2所述方法,其特征在于,所述虚拟机包括Yaml库,所述基于所述指令生成应用程序配置信息包括:

4.根据权利要求3所述方法,其特征在于,基于所述应用程序的需求变更预先生成可执行文件包括:

5.根据权利要求4所述方法,其特征在于,所述启动所述基础镜像的容器包括:

6.根据权利要求5所述方法,其特征在于,所述容器包含预设的入口脚本,所述入口脚本用于从所述Yaml库的配置信息获取所述应用标识和所述应用版本号,所述虚拟机还包含预置有所述应用的本地存储,所述基于所述应用标识和所述应用版本号获取所述应用包括:

7.根据权利要求6所述方法,其特征在于,所述方法还包括:

8.一种应用程序的部署装置,应用于虚拟机,其特征在于,包括:

9.一种电子设备,其特征在于:包括存储器和处理器,

10.一种计算机程序产品,包括计算机程序、指令,当所述计算机程序、指令被处理器执行时,实现根据权利要求1-7任一项所述的方法。

...

【技术特征摘要】

1.一种应用程序的部署方法,应用于虚拟机,其特征在于,包括:

2.根据权利要求1所述方法,其特征在于,所述虚拟机包括看门狗模块和开发管理平台,所述接收应用程序部署指令包括:

3.根据权利要求2所述方法,其特征在于,所述虚拟机包括yaml库,所述基于所述指令生成应用程序配置信息包括:

4.根据权利要求3所述方法,其特征在于,基于所述应用程序的需求变更预先生成可执行文件包括:

5.根据权利要求4所述方法,其特征在于,所述启动所述基础镜像的容器包括:

6.根据权利要求5所述方法,其特征在于,...

【专利技术属性】
技术研发人员:骆华君俞小浩
申请(专利权)人:浙江讯盟科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1