基于容器技术的应用更新方法及系统与流程

文档序号:34217770发布日期:2023-05-19 19:33阅读:92来源:国知局
基于容器技术的应用更新方法及系统与流程

本发明涉及计算机,尤其涉及一种基于容器技术的应用更新方法及系统。


背景技术:

1、应用要发布到容器平台上(docker或kubernetes),常规的做法是将应用打包成容器镜像,然后再通过命令行工具进行发布,而应用升级也是重新打包新的容器镜像,然后通过命令行工具实现升级。在一些比较自动化的方案中,从源码打包生成容器镜像的整个过程都是自动完成的。也有极个别的容器化方案,针对java开发的应用,采用了java的类加载技术,避免了镜像打包这个步骤。

2、容器化技术确实是软件领域里的一个重大创新,也很好的解决了传统软件开发和运维中的诸多痛点问题,特别是对于跑在公有云上的互联网应用来说,更是难得的一件神器。但是任何事务都有两面性,容器化技术也不例外,从传统软件研发交付方式升级到容器化方式后,带了一些新的问题和负担,其中最为关键的一点就是制作镜像及镜像管理的问题。

3、应用容器化的第一步就是把现有应用的二进制代码打包制作成docker镜像,制作镜像的过程中需要编写dockerfile文件,而编写dockerfile文件的工作是一个介于开发和运维之间的一项新技能,不管对于开发人员还是运维人员,这个新工作都是一个挑战,因为需要系统学习镜像相关的知识和技能,以及熟练掌握linux下的软件安装及配置脚本。这项新技能对于分工明确的传统软件开发团队来说是一个巨大的挑战。

4、此外,打包好的镜像不能存放在团队所熟知的远程的svn/git服务器上,而是要引入新的容器技术的基础设施——docker registy,随后每次程序更新,都需要重新打包制作新的镜像,然后在放入到docker registy中,供容器集群中的各个服务器下载,这个做法在一定程度上也违背了敏捷开发的宗旨,同时增加了团队的工作量,如果能在开发和交付过程中省去制作镜像的过程,则这个问题也迎刃而解。

5、总结下来,对于传统的应用开发团队来说,制作应用镜像及管理镜像的这些操作是一个很大的挑战,传统的开发流程和一些成熟的运维经验比较难以融入进来,同时也增加了团队学习的困难和项目实施的代价,具体包括如下几点:

6、需要团队理解镜像并学会正确的镜像打包技能;

7、需要部署并运维一套生产级的镜像私有仓库;

8、实施一套从源码到镜像打包的自动化系统的门槛偏高;

9、手工打包镜像并上传镜像私库的做法增加了项目实施的成本。


技术实现思路

1、本发明提供的基于容器技术的应用更新方法及系统,用于解决现有技术中存在的上述至少一个问题,通过引入基础模板镜像的来实现免镜像打包的应用发布和应用升级,使得传统应用的容器化改造升级路线更为平滑,降低了传统用户应用容器化改造升级的门槛,也减少了传统企业级用户应用开发团队引入容器化技术的阻力。

2、本发明提供的一种基于容器技术的应用更新方法,包括:

3、根据开发语言和对应的应用框架,确定基础模板镜像;

4、根据部署在所述基础模板镜像中的守护进程,启动用户应用进程;

5、基于容器控制中心,对用户应用进行更新;

6、其中,所述容器控制中心与所述守护进程连接;

7、所述基础模板镜像用于创建用户应用对应的容器。

8、根据本发明提供的一种基于容器技术的应用更新方法,所述根据开发语言和对应的应用框架,确定基础模板镜像,包括:

9、根据所述开发语言和所述对应的应用框架,确定对应的应用模板镜像类型;

10、从预设镜像库中提取出与所述应用模块镜像类型对应的所述基础镜像模块;

11、其中,所述预设镜像库是由基于不同开发语言和不同的应用框架构建的镜像模板组成的。

12、根据本发明提供的一种基于容器技术的应用更新方法,所述根据部署在所述基础模板镜像中的守护进程,启动用户应用进程,包括:

13、根据所述守护进程,启动用户程序加载模块,以从远程服务器上获取与所述用户应用对应的第一用户应用程序文件,并将所述第一用户应用程序文件写入所述基础模板镜像的本地文件系统;

14、根据用户程序启动模块调用所述第一用户应用程序文件,以启动所述用户应用进程。

15、根据本发明提供的一种基于容器技术的应用更新方法,在根据所述守护进程,调用用户程序启动模块,以启动所述用户应用进程之后,还包括:

16、根据所述守护进程内置的应用探针,周期性的对所述用户应用进程进行监测;

17、若连续监测失败的次数达到预设值,则确定所述用户应用进程启动失败,并重启所述用户应用进程;

18、其中,根据所述守护进程内置的应用探针,周期性的对所述用户应用进程进行监测,具体包括:

19、根据tcp探针向所述用户应用进程发起的tcp连接测试,对所述用户应用进程进行监测;

20、根据http探针向所述用户应用发起的http请求测试,对所述用户应用进程进行监测;以及

21、根据预设脚本探针调用的应用探测脚本,对所述用户应用进程进行监测。

22、根据本发明提供的一种基于容器技术的应用更新方法,所述基于容器控制中心,对用户应用进行更新,包括:

23、根据所述容器控制中心发送给所述守护进程的控制指令,从存储在所述远程服务器上的预设目录下的应用声明文件中,获取最新版本的用户应用对应的目标应用声明文件和第二用户应用程序文件;

24、根据所述第二用户应用程序文件,对所述用户应用进行更新;

25、其中,所述应用声明文件是根据用户应用程序文件的路径、版本号、启动入口、启动参数、环境变量和应用探针的定义编写的。

26、根据本发明提供的一种基于容器技术的应用更新方法,所述根据所述第二用户应用程序文件,对所述用户应用进行更新,包括:

27、根据所述第二用户应用程序文件和自动升级策略,对所述用户应用进行更新;

28、或根据所述第二用户应用程序文件和手动升级策略,对所述用户应用进行更新。

29、本发明还提供一种基于容器技术的应用更新系统,包括:数据获取模块、进程启动模块和应用更新模块;

30、所述数据获取模块,用于根据开发语言和对应的应用框架,确定基础模板镜像;

31、所述进程启动模块,用于根据部署在所述基础模板镜像中的守护进程,启动用户应用进程;

32、所述应用更新模块,用于基于容器控制中心,对用户应用进行更新;

33、其中,所述容器控制中心与所述守护进程连接;

34、所述基础模板镜像用于创建用户应用对应的容器。

35、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于容器技术的应用更新方法的步骤。

36、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于容器技术的应用更新方法的步骤。

37、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于容器技术的应用更新方法的步骤。

38、本发明提供的基于容器技术的应用更新方法及系统,通过引入基础模板镜像的来实现免镜像打包的应用发布和应用升级,使得传统应用的容器化改造升级路线更为平滑,降低了传统用户应用容器化改造升级的门槛,也减少了传统企业级用户应用开发团队引入容器化技术的阻力。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1