CN115220863A - 容器应用的运维方法、装置、计算机设备和存储介质 - Google Patents
容器应用的运维方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115220863A CN115220863A CN202210379921.8A CN202210379921A CN115220863A CN 115220863 A CN115220863 A CN 115220863A CN 202210379921 A CN202210379921 A CN 202210379921A CN 115220863 A CN115220863 A CN 115220863A
- Authority
- CN
- China
- Prior art keywords
- application
- container
- code
- mirror image
- container application
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种接容器应用的运维方法、装置、计算机设备和存储介质,该方法包括:构建预设类型应用的公共镜像,其中,公共镜像包括预设类型应用的运行环境数据;启动公共镜像生成多个镜像容器;接收应用部署指令,根据应用部署指令在预设的代码仓库中获取对应的应用代码文件,将应用代码文件在相应的镜像容器中运行,生成容器应用;其中,应用部署指令包含应用的代码标识和镜像容器标识。上述方法大大减少运维人员的工作量,减少运营成本。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种容器应用的运维方法、装置、计算机设备和存储介质。
背景技术
在微服务架构盛行的今天,docker、k8s等容器编排工具成为企业进行信息化平台建设首选。但如何使用docker容器技术,实现高效运维管理、实现devops,对于一些中小型企业来说,仍然存在一些问题。
1)在存储方面,通常企业会为每一个应用或服务进行docker镜像打包,每个应用会有多个版本,在频繁改动的情况下,每个应用的镜像达到几十个版本时很正常的现象。这样就会造成磁盘空间占用量大的问题,对于一些中小型企业、或者外包团队来说,通常都是在比较有限的资源下进行研发。磁盘空间占用大,造成一定的资源浪费就是一个显著的问题。
2)部署过程改进,docker镜像相当于将运行环境和应用系统进行了捆绑,形成了一个固定版本的docker镜像。由于是捆绑式的,所有每次新增应用、或者变更应用的时候就需要进行重新启动一个新的容器,这样无法在运行阶段实现运行环境的重复利用。
3)对于没有采用CI/CD等持续集成工具的企业来说,应用更新涉及到的维护工作就比较繁琐了,可能需要手动打包应用,手动部署应用到容器的挂载目录,带来重复的工作量。
发明内容
本申请提供了一种容器应用的运维方法、装置、计算机设备和存储介质。
第一方面提供了一种容器应用的运维方法,包括:
构建预设类型应用的公共镜像,其中,所述公共镜像包括预设类型应用的运行环境数据;
启动所述公共镜像生成多个镜像容器;
接收应用部署指令,根据所述应用部署指令在预设的代码仓库中获取对应的应用代码文件,将所述应用代码文件在相应的所述镜像容器中运行,生成容器应用;其中,所述应用部署指令包含所述应用的代码标识和镜像容器标识。
在一些实施例中,所述接收应用部署指令,根据所述应用部署指令在预设的代码仓库中获取对应的应用代码文件,将所述应用代码文件在相应的所述镜像容器中运行,生成容器应用,包括:
接收应用部署指令;其中,所述应用部署指令中包括所述容器应用对应的代码文件在所述代码仓库中的存储路径;
获取所述容器应用的配置数据;所述配置数据包括所述容器应用的构建需求;
根据所述配置数据,生成用于构建所述容器应用的多个任务;
从所述预设的代码仓库中的所述存储路径获取所述容器应用对应的代码文件,根据获取到的所述代码文件执行所述多个任务,以构建所述容器应用。
在一些实施例中,所述根据所述配置数据,生成用于构建所述容器应用的多个任务,包括:
根据所述配置数据,确定构建所述容器应用所需的任务的描述文件;每个所述任务的描述文件中包括:所述任务的输入数据、输出数据、以及执行所述任务所依赖的任务;
根据每个所述任务的描述文件,生成用于构建所述容器应用的多个任务。
在一些实施例中,所述多个任务包括依次执行的检查任务、编译任务、功能测试任务和生成容器应用任务;
所述根据所述配置数据,生成用于构建所述容器应用的多个任务,包括:
通过所述检查任务对所述代码文件进行静态检查;
通过所述编译任务编译静态检查后的所述应用代码文件,得到所述应用代码文件对应的可执行程序;
通过所述功能测试任务对所述可执行程序进行功能检测;
如果所述可执行程序的功能检测通过,根据所述可执行程序执行所述生成容器应用任务,得到所述容器应用。
在一些实施例中,在所述生成容器应用之后,还包括:
响应代码更新指令,从所述代码仓库中拉取更新的代码;
根据所述更新的代码进行编译生成更新程序包;
将所述应用代码文件在相应的所述镜像容器中运行,生成新容器应用。
在一些实施例中,在所述生成容器应用之后,还包括:
响应数据变更事件,生成所述数据变更事件对应的操作语句;
对所述操作语句进行解析,生成对应的重置语句;
若接收到对所述容器应用的数据重置请求,获取所述重置语句,通过运行所述重置语句撤回对所述容器应用中数据的变更。
在一些实施例中,在所述生成容器应用之后,还包括:
进行容器应用的运行日记的监控,监控的各容器应用,拉取所述各容器应用的指标数据,对所述指标数据进行处理,得到相应的监控数据,根据所述监控数据分别确定各容器应用的运行状况。
第二方面提供了一种容器应用的运维装置,包括:
镜像构建单元,用于构建预设类型应用的公共镜像,其中,所述公共镜像包括预设类型应用的运行环境数据;
容器启动单元,用于启动所述公共镜像生成多个镜像容器;
应用生成单元,用于接收应用部署指令,根据所述应用部署指令在预设的代码仓库中获取对应的应用代码文件,将所述应用代码文件在相应的所述镜像容器中运行,生成容器应用;其中,所述应用部署指令包含所述应用的代码标识和镜像容器标识。
第三方面提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如上述容器应用的运维方法的步骤。
第四方面提供了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述容器应用的运维方法的步骤。
本申请提供的技术方案中,构建预设类型应用的公共镜像;启动所述公共镜像生成多个镜像容器;接收应用部署指令,根据所述应用部署指令在预设的代码仓库中获取对应的应用代码文件,将所述应用代码文件在相应的所述镜像容器中运行,生成容器应用。因此,本申请采用环境与应用分开部署的机制,实现应用运行环境的重复利用。通过预部署环境、缩短应用从开始部署到正常启动的时间间隔。采用容器内置自动更新装置,实现对应用变化的感知和自动化部署、启动、控制以及状态监控。
附图说明
图1为一个实施例中提供的容器应用的运维方法的流程图;
图2为一个实施例中提供的容器应用的运维方法的公共镜像的功能结构图;
图3为一个实施例中提供的容器应用的运维方法的另一流程图;
图4为一个实施例中提供的容器应用的运维装置的的框图;
图5为一个实施例中计算机设备的框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
应用运行环境:通常指应用系统正常运行锁需要的一套基础环境,可能会包含一些列的资源,例如:物理资源分配、运行时依赖、系统变量、配置文件、端口分配、web容器等。
应用部署包:大多应用程序通常并不是直接运行原始代码的,而是经过编译、打包以后形成一个便于在生产环境运行的资源包,我们称其为应用部署包。
代码仓库:代码仓库比较通俗易懂,也就是存放代码或应用部署包的仓库系统,例如:gitlab、github、svn等代码版本控制系统。
部署管理客户端:指的是用来与容器内置自动化装置进行交互的客户端工具,本申请通过交互模块提供了与本申请内置自动化装置进行通信的接口。用户可根据自己喜好进行客户端工具的选择或定制。例如:可以基于交互模块提供的API开发一个管理界面。
如图1和2所示,在一些实施例中,提供了一种容器应用的运维方法,可以包括:
步骤101、构建预设类型应用的公共镜像,其中,公共镜像包括预设类型应用的运行环境数据;
Docker:是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker镜像(Docker image):是根据Docker规定的格式生成的只读文件包,可以将应用封装在该Docker镜像中,分发到不同的主机上,通过Docker镜像启动软件容器,运行服务。
容器(docker)是一种内核轻量级的操作系统层虚拟化技术,一个容器包含了完整的运行时环境:一个应用、这个应用所需的全部依赖、类库、其他二进制文件以及配置文件,它们统一被打入一个包中。通过将应用平台及其依赖容器化,抽象掉操作系统发行版本和其他基础环境造成的差异,其中,应用是针对使用者的某种应用目的所编写的软件。
可以理解的是,上述公共镜像建立在docker技术基础之上,但不仅仅是一个docker镜像,而是将一套自动化管理设施内置在了docker镜像这样的环境中,用来在容器环境范围内对应用进行管理。
该自动化管理设施主要包括代码下载模块、编译打包模块、自动化管理模块、应用控制模块、远程交互模块、监督管理模块,另外与之关联的设施或资源有应用运行环境、应用部署包、代码仓库、部署管理。
其中,远程交互模块:基于restful机制提供一套API,实现内置自动化装置的配置和管理,使得可以在容器外部,由系统运维人员或其他运维管理系统进行管理控制。
自动化管理模块:本模块将多个操作看做一系列的本地化任务,整个任务链以作业的方进行编排和管理,自动触发后续操作,实现一次触发,自动化完成全流程的运维管理和控制操作。其涉及调用的模块有代码下载、编译打包、应用控制等。
代码下载模块:本模块内置代码仓库客户端、可在容器运行期间通过API配置代码仓库的类型、项目代码的仓库地址、用户账号/密码等信息,项目的仓库配置信息会在本地进行保存,以便后续使用。基于已经配置的仓库信息,本模块会在项目代码变更事件的触发条件下执行代码下载任务,下载指定版本或分支的代码到本地源码目录,供后续使用。
编译打包模块:本模块内置编译打包客户端,例如:java应用常见的打包工具maven。本模块主要负责将源码程序经过编译等处理工作,转换为适合于正式运行环境的安装包或者可执行二进制包等形式。
应用控制模块:主要负责应用的启动、停止、重启、配置管理、状态检测。
监督管理模块:该模块主要用于监听以上6个模块所涉及的进程是否正常工作,其应具备以下能力:可以很方便的监听、启动、停止、重启一个或多个进程,可以将加入管理的进程变成一个守护进程,并监控进程状态,异常退出时能自动重启。基于以上机制,可为本发明装置提供高可用性、高可靠性的保障。
步骤102、启动公共镜像生成多个镜像容器;
其中,在进行应用部署工作前期,需要对应用实例的规模做一个粗略的评估,启动一定数量的docker容器。这个阶段仅仅基于上一阶段制作的镜像,启动了多个容器,作为一类应用的可复用运行环境。此阶段不涉及应用的部署。
步骤103、接收应用部署指令,根据应用部署指令在预设的代码仓库中获取对应的应用代码文件,将应用代码文件在相应的镜像容器中运行,生成容器应用;其中,应用部署指令包含应用的代码标识和镜像容器标识。
在一些实施例中,上述步骤103可以包括:
步骤1031、接收应用部署指令;其中,应用部署指令中包括容器应用对应的代码文件在代码仓库中的存储路径;
可以理解的是,容器应用管理平台进行容器应用运维和管理。容器应用管理平台本身也可以是基于容器技术部署的。当用户需要将某个目标应用以容器的方式进行运维时,可以将目标应用对应代码文件存放至代码仓库,目标应用可以是APP(Application,应用程序)或Web(WorldWideWeb,全球广域网)应用等。代码文件包括多个代码子文件,如js(JavaScript,直译式脚本语言)文件、css(CascadingStyleSheets,层叠样式表)文件、html(超文本标记语言)文件、业务逻辑脚本文件和数据库管理脚本文件等。在另一个实施例中,代码文件还包括支持目标应用运行的其他文件。
用户可以向代码仓库提交代码数据,以及该代码数据的存储路径,该代码数据可以是应用程序的代码,该应用程序通常是指为针对用户的某种特殊应用目的所撰写的软件,该存储路径可以包括代码仓库路径和代码仓库分支;其中代码仓库路径通常是指代码仓库中的路径,代码仓库分支通常是指在代码仓库中创建的不同开发路径,在代码仓库中可以存在多个分支,每个分支之间相互隔离,每次提交代码数据只会提交到当前工作分支,而不会影响其他分支。也可以理解为用户提交代码数据时,也提交了该代码数据应当保存在哪个代码仓库分支下的代码仓库路径中,以使代码仓库将提交的代码数据保存在该路径下。
当代码仓库收到用户提交的代码数据时,自动向预设服务器发送应用部署指令;或者用户需要对代码仓库中存储的某个代码数据进行容器镜像构建时,向预设服务器发送应用部署指令,该应用部署指令中携带有待构建的容器应用对应的代码数据的存储路径。
步骤1032、获取容器应用的配置数据;配置数据包括容器应用的构建需求;
其中,该配置数据通常是用户根据需求设置的,也即是用户登记的、需要进行构建的容器应用的配置数据;该配置数据中通常包括待构建的容器应用的构建需求,该构建需求通常包括待构建的容器应用在代码仓库中的路径、基于哪个代码仓库分支进行构建。
步骤1033、根据配置数据,生成用于构建容器应用的多个任务;
在一些实施例中,该步骤可以包括:
步骤1033a、配置数据,确定构建容器应用所需的任务的描述文件;每个任务的描述文件中包括:任务的输入数据、输出数据、以及执行任务所依赖的任务;
步骤1033b、根据每个任务的描述文件,生成用于构建容器应用的多个任务。
步骤1034、从预设的代码仓库中的存储路径获取容器应用对应的代码文件,根据获取到的代码文件执行多个任务,以构建容器应用。
在一些实施例中,该步骤可以包括:
多个任务包括依次执行的检查任务、编译任务、功能测试任务和生成容器应用任务;
根据获取到的代码文件执行多个任务,以构建容器应用,包括:
通过检查任务对代码文件进行静态检查;
通过编译任务编译静态检查后的应用代码文件,得到应用代码文件对应的可执行程序;
通过功能测试任务对可执行程序进行功能检测;
如果可执行程序的功能检测通过,根据可执行程序执行生成容器应用任务,得到容器应用。
对代码文件进行静态检查,其中一种方式,自动化管理设施集成FindBugs插件对代码进行静态分析,FindBugs是一个静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题。另有一种方式,代码检查插件(SonarQube)集成,代码检查插件(SonarQube)会扫描出来到底是谁写的代码、哪一个文件,哪一行存在安全隐患,是什么安全隐患,应该如何修改以及哪一行代码有这个语法规范问题;也即,代码检查插件(SonarQube会从全方位的角度检测整个项目在代码层面有哪些问题需要修改。
其中,受项目代码变更事件的触发,自动化执行编译、打包、文件拷贝、启动/重启等一系列工作。这部分功能自动化进行,替代了传统运维人员手动维护的工作,提高了工作效率,减少了时间成本,降低了手动维护的出错率。
在需要变更应用时,只需要以指定的标识的公共镜像重新启动容器即可完成应用的变更;若存在异常情况需要变更回退时,直接通过历史版本的标识镜像重新启动容器即可完成服务的快速回退。
在一些实施例中,上述在生成容器应用之后,还可以包括:
响应代码更新指令,从代码仓库中拉取更新的代码;
根据更新的代码进行编译生成更新程序包;
将应用代码文件在相应的镜像容器中运行,生成新容器应用。
解析应用代码文件,根据应用代码文件修改应用对应的镜像容器的底层文件,生成容器应用。
例如,根据代码的更新程序包,对当前运行镜像容器(container)的底层文件进行修改,使得在该镜像容器的下次运行时将直接运行更新的底层数据,因此直接完成对该容器更新而不必再经由管理节点中的多个流程,节约了代码更新时间,使得开发人员能够快速得到更新代码的运行结果,大大节约开发时间。
在一些实施例中,在生成容器应用之后,还包括:
响应数据变更事件,生成数据变更事件对应的操作语句;
对操作语句进行解析,生成对应的重置语句;
若接收到对容器应用的数据重置请求,获取重置语句,通过运行重置语句撤回对容器应用中数据的变更。
其中,容器应用管理平台对容器应用对应数据库发生的数据变更操作进行监测。后续用户在需要对失误添加或删除的数据进行重置操作时,无需打开对应的数据表,只需基于容器应用上的“数据重置”管理项目,即可触发执行对应的重置语句,自动将相应的数据变更操作撤回,使数据库回到发生数据变更之前的状态,简化数据重置操作。
在一些实施例中,在生成容器应用之后,还可以包括:
进行容器应用的运行日记的监控,监控的各容器应用,拉取各容器应用的指标数据,对指标数据进行处理,得到相应的监控数据,根据监控数据分别确定各容器应用的运行状况。
若监控过程中发生错误,则进行出错提醒并通过所述运行日记进行问题追溯。
指标数据:是指用于表征容器应用运行状况和/或运行各容器应用的硬件设备运行状况的数据。拉取数据:是指从容器应用和/或从运行容器应用的硬件设备上“拖下”数据,例如使用超文本传输协议(Hyper Text Transfer Protocol,HTTP),Java管理扩展(JavaManagement Extensions,JMX),java数据库连接(Java Data Base Connectivity,JDBC)等。
根据各容器应用的指标数据分别进行数据抽取、清洗处理,得到各容器应用分别对应的监控数据,并判断各容器应用的监控数据是否符合预期,在判定一个容器应用的监控数据符合预期时,确定该一个容器应用运行状况正常;否则,确定该一个容器应用运行状况异常。
在一些实施例中,如图4所示提供了一种容器应用的运维装置,包括:
镜像构建单元411,用于构建预设类型应用的公共镜像,其中,公共镜像包括预设类型应用的运行环境数据;
容器启动单元412,用于启动公共镜像生成多个镜像容器;
应用生成单元413,用于接收应用部署指令,根据应用部署指令在预设的代码仓库中获取对应的应用代码文件,将应用代码文件在相应的镜像容器中运行,生成容器应用;其中,应用部署指令包含应用的代码标识和镜像容器标识。
本申请采用发现机制触发并自动化完成API信息的采集、变更等同步工作为下游产品提供及时、准确的数据源。采用先进的数据解析技术,支持数据解析环节相关数据动态配置,支持任意json格式的API信息等类型的数据提取,不限于API信息的提取,可应用于其他数据转换和提取场景;一次开发,通过简单配置即可扩展能力,后续无需开发人员参与编码。
在一个实施例中,如图5所示,提出了一种计算机设备,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、知识库和计算机可读指令,知识库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种短媒体标签抽取方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种短媒体标签抽取方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
处理器执行计算机程序时实现以下步骤:构建预设类型应用的公共镜像,其中,公共镜像包括预设类型应用的运行环境数据;启动公共镜像生成多个镜像容器;接收应用部署指令,根据应用部署指令在预设的代码仓库中获取对应的应用代码文件,将应用代码文件在相应的镜像容器中运行,生成容器应用;其中,应用部署指令包含应用的代码标识和镜像容器标识。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:构建预设类型应用的公共镜像,其中,公共镜像包括预设类型应用的运行环境数据;启动公共镜像生成多个镜像容器;接收应用部署指令,根据应用部署指令在预设的代码仓库中获取对应的应用代码文件,将应用代码文件在相应的镜像容器中运行,生成容器应用;其中,应用部署指令包含应用的代码标识和镜像容器标识。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等非易失性存储介质,或随机存储记忆体(RandomAccessMemory,RAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种容器应用的运维方法,其特征在于,包括:
构建预设类型应用的公共镜像,其中,所述公共镜像包括预设类型应用的运行环境数据;
启动所述公共镜像生成多个镜像容器;
接收应用部署指令,根据所述应用部署指令在预设的代码仓库中获取对应的应用代码文件,将所述应用代码文件在相应的所述镜像容器中运行,生成容器应用;其中,所述应用部署指令包含所述应用的代码标识和镜像容器标识。
2.根据权利要求1所述的容器应用的运维方法,其特征在于,所述接收应用部署指令,根据所述应用部署指令在预设的代码仓库中获取对应的应用代码文件,将所述应用代码文件在相应的所述镜像容器中运行,生成容器应用,包括:
接收应用部署指令;其中,所述应用部署指令中包括所述容器应用对应的代码文件在所述代码仓库中的存储路径;
获取所述容器应用的配置数据;所述配置数据包括所述容器应用的构建需求;
根据所述配置数据,生成用于构建所述容器应用的多个任务;
从所述预设的代码仓库中的所述存储路径获取所述容器应用对应的代码文件,根据获取到的所述代码文件执行所述多个任务,以构建所述容器应用。
3.根据权利要求2所述的容器应用的运维方法,其特征在于,所述根据所述配置数据,生成用于构建所述容器应用的多个任务,包括:
根据所述配置数据,确定构建所述容器应用所需的任务的描述文件;每个所述任务的描述文件中包括:所述任务的输入数据、输出数据、以及执行所述任务所依赖的任务;
根据每个所述任务的描述文件,生成用于构建所述容器应用的多个任务。
4.根据权利要求3所述的容器应用的运维方法,其特征在于,所述多个任务包括依次执行的检查任务、编译任务、功能测试任务和生成容器应用任务;
所述根据所述配置数据,生成用于构建所述容器应用的多个任务,包括:
通过所述检查任务对所述代码文件进行静态检查;
通过所述编译任务编译静态检查后的所述应用代码文件,得到所述应用代码文件对应的可执行程序;
通过所述功能测试任务对所述可执行程序进行功能检测;
如果所述可执行程序的功能检测通过,根据所述可执行程序执行所述生成容器应用任务,得到所述容器应用。
5.根据权利要求1所述的容器应用的运维方法,其特征在于,在所述生成容器应用之后,还包括:
响应代码更新指令,从所述代码仓库中拉取更新的代码;
根据所述更新的代码进行编译生成更新程序包;
将所述应用代码文件在相应的所述镜像容器中运行,生成新容器应用。
6.根据权利要求1所述的容器应用的运维方法,其特征在于,在所述生成容器应用之后,还包括:
响应数据变更事件,生成所述数据变更事件对应的操作语句;
对所述操作语句进行解析,生成对应的重置语句;
若接收到对所述容器应用的数据重置请求,获取所述重置语句,通过运行所述重置语句撤回对所述容器应用中数据的变更。
7.根据权利要求1所述的容器应用的运维方法,其特征在于,在所述生成容器应用之后,还包括:
进行容器应用的运行日记的监控,监控的各容器应用,拉取所述各容器应用的指标数据,对所述指标数据进行处理,得到相应的监控数据,根据所述监控数据分别确定各容器应用的运行状况。
8.一种容器应用的运维装置,其特征在于,包括:
镜像构建单元,用于构建预设类型应用的公共镜像,其中,所述公共镜像包括预设类型应用的运行环境数据;
容器启动单元,用于启动所述公共镜像生成多个镜像容器;
应用生成单元,用于接收应用部署指令,根据所述应用部署指令在预设的代码仓库中获取对应的应用代码文件,将所述应用代码文件在相应的所述镜像容器中运行,生成容器应用;其中,所述应用部署指令包含所述应用的代码标识和镜像容器标识。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述容器应用的运维方法的步骤。
10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述容器应用的运维方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210379921.8A CN115220863A (zh) | 2022-04-12 | 2022-04-12 | 容器应用的运维方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210379921.8A CN115220863A (zh) | 2022-04-12 | 2022-04-12 | 容器应用的运维方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115220863A true CN115220863A (zh) | 2022-10-21 |
Family
ID=83606323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210379921.8A Pending CN115220863A (zh) | 2022-04-12 | 2022-04-12 | 容器应用的运维方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115220863A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115756733A (zh) * | 2023-01-10 | 2023-03-07 | 北京数原数字化城市研究中心 | 一种容器镜像调用系统和容器镜像调用方法 |
CN116431277A (zh) * | 2023-03-13 | 2023-07-14 | 浙江海规技术有限公司 | 多地运维容器化方法、装置、计算机设备及存储介质 |
-
2022
- 2022-04-12 CN CN202210379921.8A patent/CN115220863A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115756733A (zh) * | 2023-01-10 | 2023-03-07 | 北京数原数字化城市研究中心 | 一种容器镜像调用系统和容器镜像调用方法 |
CN115756733B (zh) * | 2023-01-10 | 2023-04-14 | 北京数原数字化城市研究中心 | 一种容器镜像调用系统和容器镜像调用方法 |
CN116431277A (zh) * | 2023-03-13 | 2023-07-14 | 浙江海规技术有限公司 | 多地运维容器化方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3769223B1 (en) | Unified test automation system | |
US20190220262A1 (en) | Methods and systems of software testing, distribution, installation and deployment | |
CN110187914B (zh) | 应用开发方法、系统及装置 | |
US11671506B2 (en) | Microservice management system for recommending modifications to optimize operation of microservice-based systems | |
US11366713B2 (en) | System and method for automatically identifying and resolving computing errors | |
US20130174117A1 (en) | Single development test environment | |
CN106250178A (zh) | 通过多语言云编译实现系统动态功能在线拦截扩展的方法 | |
CN106293808A (zh) | 多语言云编译实现系统功能动态拦截扩展的方法及系统 | |
CN115220863A (zh) | 容器应用的运维方法、装置、计算机设备和存储介质 | |
CN108776643B (zh) | 一种基于版本控制流程的目标代码合并控制方法及系统 | |
US9983979B1 (en) | Optimized dynamic matrixing of software environments for application test and analysis | |
CN106293863A (zh) | 多语言云编译实现系统功能动态扩展替换的方法及系统 | |
Sotiropoulos et al. | Practical fault detection in puppet programs | |
AU2012201749B2 (en) | Single development test environment | |
CN106250179A (zh) | 通过多语言云编译实现系统动态功能拦截扩展的方法 | |
US11989539B2 (en) | Continuous integration and deployment system time-based management | |
CN113377431A (zh) | 一种代码处理方法、装置、设备及介质 | |
CN112368678A (zh) | 用于应用程序的虚拟机容器 | |
US11550697B2 (en) | Cross jobs failure dependency in CI/CD systems | |
Ali et al. | Automated parallel GUI testing as a service for mobile applications | |
US20230385057A1 (en) | Techniques for code isolation in static analysis of applications using application framework | |
CN116382694A (zh) | 一种提升容器环境下Maven工程编译速度的方法 | |
CN112765007B (zh) | 一种集成测试方法、装置及存储介质 | |
CA2772225A1 (en) | Version numbering in single development and test environment | |
CN111367796A (zh) | 应用程序调试方法及装置 |
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 |