CN114840225B - 一种应用部署方法、装置、存储介质及电子装置 - Google Patents
一种应用部署方法、装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN114840225B CN114840225B CN202210445978.3A CN202210445978A CN114840225B CN 114840225 B CN114840225 B CN 114840225B CN 202210445978 A CN202210445978 A CN 202210445978A CN 114840225 B CN114840225 B CN 114840225B
- Authority
- CN
- China
- Prior art keywords
- application
- file
- helm
- application deployment
- mirror image
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种应用部署方法、装置、存储介质及电子装置,其中,该方法包括:通过版本管理工具将应用部署文件存放到版本管理服务器中;通过该版本管理服务器审计该应用部署文件的修改和提交记录;通过CONDEP从版本管理服务器中获取应用部署文件,并从该镜像仓库中获取镜像;调用k8s API,根据该应用部署文件与该镜像对应用进行部署,可以解决相关技术中通过Helm进行操作时,难以进行投产操作监管且无法与存量系统对接的问题,通过CONDEP直接从版本管理服务器中获取应用部署文件,引入版本管理服务器实现应用部署文件的版本管理,可在线编辑和查看配置,适应金融行业内存量系统的部署规范要求,实现无缝对接。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种应用部署方法、装置、存储介质及电子装置。
背景技术
金融行业目前传统的应用投产流程通常为:传输平台传递部署文件至生产,手工执行复杂的配置生产环境参数操作,手工执行复杂的命令或者脚本实现应用的运行,然后业务验证,出现问题之后需要复盘整个生产操作配置、命令和脚本。在引入容器云之后解决了部分问题,但也引入了新的问题,比如云计算学习成本高、服务拆分之后部署工序更多、故障难定位等。即使引入云原生的工具如Helm,也出现了因流程、规范、功能缺失无法满足需求等问题无法落地金融行业。
金融行业应用上容器云,普遍采用k8s(Kubernetes)、docker云原生技术方案。社区提供了多种部署工具,而Helm是社区比较受欢迎的工具之一。
Helm是K8s Chart的管理工具,K8s Chart是一套预先组织好的K8s资源套件。每个包称为一个Chart,一个Chart是一个目录(一般情况下会将目录进行打包压缩,形成name-version.tgz格式的单一文件,方便传输和存储)。可以将Helm看作K8s下的apt-get/yum。对于应用发布者而言,可以通过Helm打包应用,管理应用依赖关系,管理应用版本并发布应用到软件仓库。对于使用者而言,使用Helm后无须了解K8s的yaml文件语法、应用部署文件,直接使用Helm下载即可在K8s上安装需要的应用。
从功能上来看Helm满足了应用上云的部分需求,具备完整的应用发布管理的功能,但Helm在金融行业实际落地过程中,不可避免的提高了运营运维管理人员的学习成本和操作复杂度,在版本管理、存量系统对接、简单部署场景、安全和规范等方面仍然没法满足金融行业需求。
现有技术通过Helm进行操作时,直接取最终版本,中间的信息全部丢失了,并且无法确认最终版本是否在部署的过程中经过投产人员的修改,并且这种修改不会被追踪记录,从而造成投产隐患。
使用原生Helm进行投产部署,其本身是社区的产物,没有金融行业的规范约束需求,从而只能是开发测试人员的便捷工具,而不能成为完整系统中的规范性投产的可靠一环,即很难与存量系统对接。
针对上述问题,尚未提出解决方案。
发明内容
本发明实施例提供了一种应用部署方法及装置,以至少解决相关技术中通过Helm进行操作时,难以进行投产操作监管且无法与存量系统对接的问题。
根据本发明的一个实施例,提供了一种应用部署方法,包括:
通过版本管理工具将应用部署文件存放到版本管理服务器中;
通过所述版本管理服务器记录修改所述应用部署文件的时间;
通过容器云存量对接和持续部署工具(Continuous Deployment Tools of PAAS,简称为CONDEP)从版本管理服务器中获取应用部署文件,并从所述镜像仓库中获取镜像,其中,PASS指的是Platform-as-a-Service;
调用k8s应用程序编程接口(Application Programming Interface,简称为API),根据所述应用部署文件与所述镜像对应用进行部署。
可选地,通过CONDEP从版本管理服务器中获取应用部署文件,并从所述镜像仓库中获取镜像包括:
向所述CONDEP发出执行指令,并接收所述CONDEP从版本管理服务器中获取所述应用部署文件并校验所述应用部署文件是否满足预设条件之后返回的响应消息;
若所述响应消息指示所述应用部署文件不满足第一预设条件,打印错误日志并退出执行;
若所述响应消息指示所述应用部署文件满足所述第一预设条件,根据所述应用部署文件的镜像路径从所述镜像仓库中获取所述镜像。
可选地,根据所述应用部署文件的镜像路径从所述镜像仓库中获取所述镜像包括:
获取所述应用部署文件的镜像路径,根据所述镜像路径向所述镜像仓库发送扫描指定镜像请求;
接收所述镜像仓库返回的扫描结果;
当所述扫描结果为有风险时,打印错误日志并退出执行;
当所述扫描结果为无风险时,从所述镜像仓库中获取所述镜像。
可选地,调用k8s API,根据所述应用部署文件与所述镜像对应用进行部署包括:
将Helm命令文件和Helm投产包设置在所述版本管理服务器中;
当执行原生Helm部署应用投产时,从所述版本管理服务器中读取所述Helm命令文件和所述Helm投产包;
将所述Helm命令文件和所述Helm投产包推送至Helm Repo的本地仓库;
通过所述CONDEP调用Helm命令文件;
通过Helm将所述本地仓库中的所述Helm投产包投到k8s;
通过Tiller调用k8s API对应用进行部署。
可选地,调用k8s API,根据所述应用部署文件与所述镜像对应用进行部署包括:
调用k8s API,根据所述应用部署文件与所述镜像增加应用;
调用k8s API,根据所述应用部署文件与所述镜像修改应用;
调用k8s API,根据所述应用部署文件与所述镜像修改应用;
调用k8s API,根据所述应用部署文件与所述镜像查询应用。
可选地,在通过版本管理工具Git将应用部署文件存放到版本管理服务器中之前,所述方法还包括:
执行CONDEP create condep-tmpl生成部署模板;
基于所述部署模板形成所述应用部署文件;
通过所述应用部署文件对应的YAML文件部署应用需求。
根据本发明的另一个实施例,还提供了一种应用部署装置,包括:
存放模块,用于通过版本管理工具将应用部署文件存放到版本管理服务器中;
记录模块,用于通过所述版本管理服务器记录修改所述应用部署文件的时间;
获取模块,用于通过CONDEP从版本管理服务器中获取应用部署文件,并从所述镜像仓库中获取镜像;
部署模块,用于调用k8s应用程序编程接口API,根据所述应用部署文件与所述镜像对应用进行部署。
可选地,所述获取模块包括:
接收子模块,用于向所述CONDEP发出执行指令,并接收所述CONDEP从版本管理服务器中获取所述应用部署文件并校验所述应用部署文件是否满足预设条件之后返回的响应消息;
退出子模块,用于若所述响应消息指示所述应用部署文件不满足第一预设条件,打印错误日志并退出执行;
获取子模块,用于若所述响应消息指示所述应用部署文件满足所述第一预设条件,根据所述应用部署文件的镜像路径从所述镜像仓库中获取所述镜像。
可选地,所述获取子模块,还用于获取所述应用部署文件的镜像路径,根据所述镜像路径向所述镜像仓库发送扫描指定镜像请求;接收所述镜像仓库返回的扫描结果;当所述扫描结果为有风险时,打印错误日志并退出执行;当所述扫描结果为无风险时,从所述镜像仓库中获取所述镜像。
可选地,所述部署模块,还用于将Helm命令文件和Helm投产包设置在所述版本管理服务器中;当执行原生Helm部署应用投产时,从所述版本管理服务器中读取所述Helm命令文件和所述Helm投产包;将所述Helm命令文件和所述Helm投产包推送至Helm Repo的本地仓库;通过所述CONDEP调用Helm命令文件;通过Helm将所述本地仓库中的所述Helm投产包投到k8s;通过Tiller调用k8s API对应用进行部署。
可选地,所述部署模块,还用于调用k8s API,根据所述应用部署文件与所述镜像增加应用;调用k8s API,根据所述应用部署文件与所述镜像修改应用;调用k8s API,根据所述应用部署文件与所述镜像修改应用;调用k8s API,根据所述应用部署文件与所述镜像查询应用。
可选地,所述装置还包括:
执行模块,用于执行CONDEP create condep-tmpl生成部署模板;
形成模块,用于基于所述部署模板形成所述应用部署文件;
部署模块,用于通过所述应用部署文件对应的YAML文件部署应用需求。
根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通过版本管理工具将应用部署文件存放到版本管理服务器中;通过所述版本管理服务器记录修改所述应用部署文件的时间;通过CONDEP从版本管理服务器中获取应用部署文件,并从所述镜像仓库中获取镜像;调用k8s API,根据所述应用部署文件与所述镜像对应用进行部署,可以解决相关技术中通过Helm进行操作时,难以进行投产操作监管且无法与存量系统对接的问题,通过CONDEP直接从版本管理服务器中获取应用部署文件,不从本地获取应用部署文件,所以即使在上线过程中投产人员需要对应用部署文件进行修改也只能提交到版本管理服务器中,而这种提交是留痕的、可追溯的;引入版本管理服务器实现应用部署文件的版本管理,可在线编辑和查看配置,适应金融行业内存量系统的部署规范要求,实现无缝对接。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的应用部署方法的移动终端的硬件结构框图;
图2是根据本发明实施例的应用部署方法的流程图;
图3是根据本发明实施例的应用上容器云持续部署的示意图;
图4是根据本发明实施例的部署模板的示意图;
图5是根据本发明可选实施例的应用部署装置的框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的应用部署方法的移动终端的硬件结构框图,如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的应用部署方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端或网络架构的应用部署方法,应用于主节点,图2是根据本发明实施例的应用部署方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,通过版本管理工具将应用部署文件存放到版本管理服务器中;
步骤S204,通过所述版本管理服务器记录修改所述应用部署文件的时间;
步骤S206,通过CONDEP从版本管理服务器中获取应用部署文件,并从所述镜像仓库中获取镜像;
ConDep是一种高度可扩展的领域特定语言,用于Windows上的持续部署、持续交付和基础设施即代码。
本发明实施例中,上述步骤S206具体可以包括:向所述CONDEP发出执行指令,并接收所述CONDEP从版本管理服务器中获取所述应用部署文件并校验所述应用部署文件是否满足预设条件之后返回的响应消息;若所述响应消息指示所述应用部署文件不满足第一预设条件,打印错误日志并退出执行;若所述响应消息指示所述应用部署文件满足所述第一预设条件,根据所述应用部署文件的镜像路径从所述镜像仓库中获取所述镜像,具体的,获取所述应用部署文件的镜像路径,根据所述镜像路径向所述镜像仓库发送扫描指定镜像请求;接收所述镜像仓库返回的扫描结果;当所述扫描结果为有风险时,打印错误日志并退出执行;当所述扫描结果为无风险时,从所述镜像仓库中获取所述镜像。
步骤S208,调用k8s应用程序编程接口API,根据所述应用部署文件与所述镜像对应用进行部署。
上述步骤S202至S208,通过CONDEP直接从版本管理服务器中获取应用部署文件,不从本地获取应用部署文件,所以即使在上线过程中投产人员需要对应用部署文件进行修改也只能提交到版本管理服务器中,而这种提交是留痕的、可追溯的;引入版本管理服务器实现应用部署文件的版本管理,可在线编辑和查看配置,适应金融行业内存量系统的部署规范要求,实现无缝对接,可以解决相关技术中通过Helm进行操作时,难以进行投产操作监管且无法与存量系统对接的问题。
在一可选的实施例中,上述步骤S208具体可以包括:将Helm命令文件和Helm投产包设置在所述版本管理服务器中;当执行原生Helm部署应用投产时,从所述版本管理服务器中读取所述Helm命令文件和所述Helm投产包;将所述Helm命令文件和所述Helm投产包推送至Helm Repo的本地仓库;通过所述CONDEP调用Helm命令文件;通过Helm将所述本地仓库中的所述Helm投产包投到k8s;通过Tiller调用k8s API对应用进行部署。
Helm没有实现部署过程中的YAML和镜像安全、规范检查,当chart包在某个时刻被任意改动,没有提交版本HASH验证和规范性约束,将在投产环境造成不可预测的风险,安全且规范。
在另一可选的实施例中,上述步骤S208中,对应的部署具体可以是应用的增删改查等,对应的,具体可以包括:调用k8s API,根据所述应用部署文件与所述镜像增加应用;调用k8s API,根据所述应用部署文件与所述镜像修改应用;调用k8s API,根据所述应用部署文件与所述镜像修改应用;调用k8s API,根据所述应用部署文件与所述镜像查询应用。
可选地,在通过版本管理工具Git将应用部署文件存放到版本管理服务器中之前,所述方法还包括:执行CONDEP create condep-tmpl生成部署模板;基于所述部署模板形成所述应用部署文件;通过所述应用部署文件对应的YAML文件部署应用需求。
在很多时候,投产只是对整个系统中的某些部分进行增删改查,所以对于运营运维这来说将会面对很多简单部署场景,比如新增部署一个单独的yaml,如果使用Helmchart方式则会增加投产的难度。而CONDEP实现了简单场景的部署工作,在指定权限下直接与K8s沟通,构建所需的组件,使得部署场景简单。
图3是根据本发明实施例的应用上容器云持续部署的示意图,如图3所示,包括:
S1,开发者执行condep create condep-tmpl生成部署模板,开发者执行condepcreate xxx模板创建命令时生成部署模板,在模板中填入业务相关的配置,添加部署资源Yaml,最后上传版本管理服务器即可做成应用通用模板。在代码项目静态资源文件夹下组合好模板文件,使用Go1.16语言的嵌入静态文件特性完成模板数据在代码中集成。执行create命令时,将代码中数据写入本地文件系统,即生成通用模板。
数据结构:
图4是根据本发明实施例的部署模板的示意图,如图4所示,templates中存放资源模版,配置values进行渲染,生产有效的K8smanifest;values.yaml文件提取了模板中的关键配置,在部署过程中将逐一替换资源模板中的变量。当用户只有简单部署需求时,无需该步骤。
S2、开发者编辑上述模板中的内容,形成实际应用部署文件。当用户只有简单部署需求时,直接编辑相应的YAML文件即可。
S3、将上述应用部署文件将通过版本管理工具Git提交存放在版本管理服务器中,每一次的修改都将如实记录和管理,亦方便登录版本管理器查看。
S4、存量系统对接工作,此处根据不同的系统有不同的实现方式,可以通过批量自动化方式使用SH脚本触发CONDEP执行。
CONDEP实现多个功能子命令,适应行内存量系统对其进行认证和调用,其中包括镜像扫描condep scan;yaml规范检查condep formatyaml;container运行态进程属组检测condep poduser等等。存量系统可通过使用已有的shell批量执行平台调用condep组件,在调用过程中传入用户token而实现权限管理。实现多个condep子命令功能,存量系统可根据定制化的需求通过传统的脚本方式实现对云平台的管理和控制。
S5、存量系统发出执行指令,CONDEP从版本管理服务器中获取应用部署文件并校验其安全和规范是否达标。如果不达标则打印错误日志并退出执行;如果达标则继续下一步。
访问版本管理服务器,对部署文件进行处理的方式。CONDEP调用Git版本管理仓库的通用接口实现获取部署文件。在投产过程中,不访问本地的任何资源,将直接从版本管理器中获取资源,从而达到所有对部署文件的更改都进行了记录和管理,方便以后的查看和排障。Git为版本管理服务器提供了API接口,方便各系统跟其对接。CONDEP通过http请求访问文件文本内容和raw数据,将内容再传递至k8s或写入系统临时文件夹,当各项操作完成之后将对临时文件进行清理。
校验部署文件文件规范和清理无效数据,condep在投产部署的过程中需要访问git版本管理仓库,并且对其中的yaml文件进行规范检测,防止错误的yaml文件直接在生产进行部署,造成不可预料的风险。k8s的yaml文件有相应的对象与其对应。在获取git中的yaml后将转为相应的对象,如果转换错误则退出该Yaml文件的部署,如果转换成功,将其中的如健康检查、亲和性、反亲和、镜像路径、配置信息进行定制化验证,完成验证之后将定制化的无效数据做清理,再进入下一步。
S6、获取应用部署文件中的镜像路径,向镜像仓库发送扫描指定镜像请求。当扫描结果为有风险时,打印错误日志并退出执行;当结果为安全是,继续执行下一步。
扫描容器镜像的安全和规范,在投产之前对镜像仓库中的容器镜像进行漏洞扫描,排除安全隐患。这件事情,如果通过批量的方式,会扫描不必要的镜像,造成时间和服务器性能浪费。镜像仓库提供了镜像扫描的API接口,可在condep执行流程中自动获取投产镜像的hash以及版本号,对该指定镜像进行镜像扫描,实现扫描的精准性。访问镜像仓库扫描接口实现Clair镜像漏洞扫描,如果镜像漏扫失败则退出本次部署。接口如下:curl-X'POST'\
'http://localhost/api/repositories/repoTest/tags/20210917/scan'\
-H'accept:application/json'\
-d”
S7、根据从版本管理系统获取的应用部署文件和镜像仓库中的安全镜像,调用k8sAPI完成应用的增删改查动作。
调用k8s API权限管理,在投产的过程中,如果不限制k8s API调用权限,将可能会影响到其他正常运行的应用,权限的控制显然是必要的,用户在调用condep时其中一个必要参数就是用户token,用来验证用户是否有相关资源的操作权限。k8s实现了较为完备的RBAC权限控制系统,用户通过在平台页面上获取自己权限的token之后,传递过来,CONDEP将对token中资源进行验证,当资源验证不通过时将会打印错误日志并直接退出执行。
S8、CONDEP实现了兼容原生Helm操作的功能。开发者将Helm命令文件和Helm投产包放置在版本管理服务器中,当执行原生Helm部署应用投产时,读取Helm命令文件。
S9、将第8步命令中的tgz Helm部署包从版本管理服务器中取出并推送至HelmRepo的本地仓库。
调用Helm实现方法,Helm作为云原生主流的部署工具之一有其可取之处,开源社区的众多应用模板可以借鉴和引入。将Helm文件存入版本管理系统中的单独的位置,每次部署的时候都使用版本管理器获取helm文件,写入本地文件系统并且赋执行权限,然后通过绝对路径设置helm local临时仓库。访问放入Helm执行命令的文件至应用的部署文件夹中,当执行helm兼容部署的时候,CONDEP读取Helm指令文件,通过shell方式调用helm可执行文件,将指令文件的内容执行过去。
拉取版本仓库中的tgz包文件推送至Helm仓库,使用兼容Helm的方式,需要将tgz的helm部署包村放入版本管理仓库中,通过版本管理仓库的API接口,获取tgz raw文件,并且写入本地文件系统,通过helm命令解压并导入helm local仓库中,再继续执行Helm命令文件中的指令。
S10、CONDEP通过shell指令调用Helm命令文件执行操作。
S11、Helm使用已推送至本地仓库中的Helm投产包投到k8s。
S12、Helm向Tiller发送应用的增删改查指令(Helm3版本已去除Tiller)
S13、Tiller调用k8s API完成应用的增删改查动作。
本发明实施例完成了对云原生工具Helm的兼容,并且实现了与Helm工具实现解耦,即Helm工具可自由升级改动而不影响本发明的代码实现。创新性打通了版本管理工具Git参与投产管理的流程。通过定制化的开发,完成了金融行业存量系统跟云计算平台的对接,打通了已有的规范和流程。自主完成了投产通用模板的设计和开发,打通了开发、测试、准生产、生产部署文件的模板化、规范化,大大提升了投产的成功率和效率。
根据本发明的另一个实施例,还提供了一种应用部署装置,图5是根据本发明实施例的应用部署装置的框图,如图5所示,包括:
存放模块52,用于通过版本管理工具将应用部署文件存放到版本管理服务器中;
记录模块54,用于通过所述版本管理服务器记录修改所述应用部署文件的时间;
获取模块56,用于通过CONDEP从版本管理服务器中获取应用部署文件,并从所述镜像仓库中获取镜像;
部署模块58,用于调用k8s应用程序编程接口API,根据所述应用部署文件与所述镜像对应用进行部署。
可选地,所述获取模块56包括:
接收子模块,用于向所述CONDEP发出执行指令,并接收所述CONDEP从版本管理服务器中获取所述应用部署文件并校验所述应用部署文件是否满足预设条件之后返回的响应消息;
退出子模块,用于若所述响应消息指示所述应用部署文件不满足第一预设条件,打印错误日志并退出执行;
获取子模块,用于若所述响应消息指示所述应用部署文件满足所述第一预设条件,根据所述应用部署文件的镜像路径从所述镜像仓库中获取所述镜像。
可选地,所述获取子模块,还用于获取所述应用部署文件的镜像路径,根据所述镜像路径向所述镜像仓库发送扫描指定镜像请求;接收所述镜像仓库返回的扫描结果;当所述扫描结果为有风险时,打印错误日志并退出执行;当所述扫描结果为无风险时,从所述镜像仓库中获取所述镜像。
可选地,所述部署模块58,还用于将Helm命令文件和Helm投产包设置在所述版本管理服务器中;当执行原生Helm部署应用投产时,从所述版本管理服务器中读取所述Helm命令文件和所述Helm投产包;将所述Helm命令文件和所述Helm投产包推送至Helm Repo的本地仓库;通过所述CONDEP调用Helm命令文件;通过Helm将所述本地仓库中的所述Helm投产包投到k8s;通过Tiller调用k8s API对应用进行部署。
可选地,所述部署模块58,还用于调用k8s API,根据所述应用部署文件与所述镜像增加应用;调用k8s API,根据所述应用部署文件与所述镜像修改应用;调用k8s API,根据所述应用部署文件与所述镜像修改应用;调用k8s API,根据所述应用部署文件与所述镜像查询应用。
可选地,所述装置还包括:
执行模块,用于执行CONDEP create condep-tmpl生成部署模板;
形成模块,用于基于所述部署模板形成所述应用部署文件;
部署模块,用于通过所述应用部署文件对应的YAML文件部署应用需求。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,通过版本管理工具将应用部署文件存放到版本管理服务器中;
S2,通过所述版本管理服务器记录修改所述应用部署文件的时间;
S3,通过CONDEP从版本管理服务器中获取应用部署文件,并从所述镜像仓库中获取镜像;
S4,调用k8s应用程序编程接口API,根据所述应用部署文件与所述镜像对应用进行部署。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,通过版本管理工具将应用部署文件存放到版本管理服务器中;
S2,通过所述版本管理服务器记录修改所述应用部署文件的时间;
S3,通过CONDEP从版本管理服务器中获取应用部署文件,并从所述镜像仓库中获取镜像;
S4,调用k8s应用程序编程接口API,根据所述应用部署文件与所述镜像对应用进行部署。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种应用部署方法,其特征在于,包括:
通过版本管理工具将应用部署文件存放到版本管理服务器中;
通过所述版本管理服务器记录修改所述应用部署文件的时间;
通过容器云存量对接和持续部署工具CONDEP从版本管理服务器中获取应用部署文件,并从镜像仓库中获取镜像;
调用k8s应用程序编程接口API,根据所述应用部署文件与所述镜像对应用进行部署,包括:将Helm命令文件和Helm投产包设置在所述版本管理服务器中;当执行原生Helm部署应用投产时,从所述版本管理服务器中读取所述Helm命令文件和所述Helm投产包;将所述Helm命令文件和所述Helm投产包推送至Helm Repo的本地仓库;通过所述CONDEP调用Helm命令文件;通过Helm将所述本地仓库中的所述Helm投产包投到k8s;通过Tiller调用k8sAPI对应用进行部署。
2.根据权利要求1所述的方法,其特征在于,所述通过容器云存量对接和持续部署工具CONDEP从版本管理服务器中获取应用部署文件,并从镜像仓库中获取镜像包括:
向所述CONDEP发出执行指令,并接收所述CONDEP从版本管理服务器中获取所述应用部署文件并校验所述应用部署文件是否满足预设条件之后返回的响应消息;
若所述响应消息指示所述应用部署文件不满足第一预设条件,打印错误日志并退出执行;
若所述响应消息指示所述应用部署文件满足所述第一预设条件,根据所述应用部署文件的镜像路径从所述镜像仓库中获取所述镜像。
3.根据权利要求2所述的方法,其特征在于,根据所述应用部署文件的镜像路径从所述镜像仓库中获取所述镜像包括:
获取所述应用部署文件的镜像路径,根据所述镜像路径向所述镜像仓库发送扫描指定镜像请求;
接收所述镜像仓库返回的扫描结果;
当所述扫描结果为有风险时,打印错误日志并退出执行;
当所述扫描结果为无风险时,从所述镜像仓库中获取所述镜像。
4.根据权利要求1所述的方法,其特征在于,调用k8s API,根据所述应用部署文件与所述镜像对应用进行部署包括:
调用k8s API,根据所述应用部署文件与所述镜像增加应用;
调用k8s API,根据所述应用部署文件与所述镜像修改应用;
调用k8s API,根据所述应用部署文件与所述镜像修改应用;
调用k8s API,根据所述应用部署文件与所述镜像查询应用。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在通过版本管理工具Git将应用部署文件存放到版本管理服务器中之前,所述方法还包括:
执行CONDEP create condep-tmpl生成部署模板;
基于所述部署模板形成所述应用部署文件;
通过所述应用部署文件对应的YAML文件部署应用需求。
6.一种应用部署装置,其特征在于,包括:
存放模块,用于通过版本管理工具将应用部署文件存放到版本管理服务器中;
记录模块,用于通过所述版本管理服务器记录修改所述应用部署文件的时间;
获取模块,用于通过容器云存量对接和持续部署工具CONDEP从版本管理服务器中获取应用部署文件,并从镜像仓库中获取镜像;
部署模块,用于调用k8s应用程序编程接口API,根据所述应用部署文件与所述镜像对应用进行部署,包括:将Helm命令文件和Helm投产包设置在所述版本管理服务器中;当执行原生Helm部署应用投产时,从所述版本管理服务器中读取所述Helm命令文件和所述Helm投产包;将所述Helm命令文件和所述Helm投产包推送至Helm Repo的本地仓库;通过所述CONDEP调用Helm命令文件;通过Helm将所述本地仓库中的所述Helm投产包投到k8s;通过Tiller调用k8s API对应用进行部署。
7.根据权利要求6所述的装置,其特征在于,所述获取模块包括:
接收子模块,用于向所述CONDEP发出执行指令,并接收所述CONDEP从版本管理服务器中获取所述应用部署文件并校验所述应用部署文件是否满足预设条件之后返回的响应消息;
退出子模块,用于若所述响应消息指示所述应用部署文件不满足第一预设条件,打印错误日志并退出执行;
获取子模块,用于若所述响应消息指示所述应用部署文件满足所述第一预设条件,根据所述应用部署文件的镜像路径从所述镜像仓库中获取所述镜像。
8.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至5任一项中所述的方法。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210445978.3A CN114840225B (zh) | 2022-04-26 | 2022-04-26 | 一种应用部署方法、装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210445978.3A CN114840225B (zh) | 2022-04-26 | 2022-04-26 | 一种应用部署方法、装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114840225A CN114840225A (zh) | 2022-08-02 |
CN114840225B true CN114840225B (zh) | 2023-09-19 |
Family
ID=82565110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210445978.3A Active CN114840225B (zh) | 2022-04-26 | 2022-04-26 | 一种应用部署方法、装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840225B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302210B (zh) * | 2023-05-17 | 2023-08-04 | 阿里云计算有限公司 | 一种镜像文件的导入方法、装置、电子设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908414A (zh) * | 2017-11-22 | 2018-04-13 | 中国银行股份有限公司 | 一种应用服务器版本部署的方法、装置及系统 |
CN111090437A (zh) * | 2019-11-19 | 2020-05-01 | 平安科技(深圳)有限公司 | 应用部署方法、装置及计算机可读存储介质 |
CN111309441A (zh) * | 2020-02-19 | 2020-06-19 | 北京中数智汇科技股份有限公司 | 一种基于Jenkins实现DevOps的微服务部署方法 |
CN111338644A (zh) * | 2020-02-28 | 2020-06-26 | 深圳壹账通智能科技有限公司 | 任务脚本部署方法及系统 |
CN111399856A (zh) * | 2020-03-11 | 2020-07-10 | 山东汇贸电子口岸有限公司 | 一种服务部署中文件配置编辑方法及系统 |
CN112416524A (zh) * | 2020-11-25 | 2021-02-26 | 电信科学技术第十研究所有限公司 | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 |
CN112558987A (zh) * | 2020-12-16 | 2021-03-26 | 中盈优创资讯科技有限公司 | 一种基于helm的自动化部署方法及装置 |
CN113282332A (zh) * | 2021-05-12 | 2021-08-20 | 建信金融科技有限责任公司 | 运维处理方法及装置 |
CN113407194A (zh) * | 2021-07-26 | 2021-09-17 | 北京京东乾石科技有限公司 | 一种部署软件的方法和装置 |
WO2021217871A1 (zh) * | 2020-04-28 | 2021-11-04 | 平安科技(深圳)有限公司 | 微服务集群部署方法、装置、计算机设备及存储介质 |
CN114077435A (zh) * | 2020-08-19 | 2022-02-22 | 杭州安存网络科技有限公司 | 基于容器化快速部署的电子存证系统和方法 |
CN114115954A (zh) * | 2022-01-25 | 2022-03-01 | 北京金堤科技有限公司 | 自动化集成部署服务的方法和装置、以及电子设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8683430B2 (en) * | 2011-01-07 | 2014-03-25 | International Business Machines Corporation | Synchronizing development code and deployed executable versioning within distributed systems |
US11381476B2 (en) * | 2018-12-11 | 2022-07-05 | Sap Se | Standardized format for containerized applications |
-
2022
- 2022-04-26 CN CN202210445978.3A patent/CN114840225B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908414A (zh) * | 2017-11-22 | 2018-04-13 | 中国银行股份有限公司 | 一种应用服务器版本部署的方法、装置及系统 |
CN111090437A (zh) * | 2019-11-19 | 2020-05-01 | 平安科技(深圳)有限公司 | 应用部署方法、装置及计算机可读存储介质 |
CN111309441A (zh) * | 2020-02-19 | 2020-06-19 | 北京中数智汇科技股份有限公司 | 一种基于Jenkins实现DevOps的微服务部署方法 |
CN111338644A (zh) * | 2020-02-28 | 2020-06-26 | 深圳壹账通智能科技有限公司 | 任务脚本部署方法及系统 |
CN111399856A (zh) * | 2020-03-11 | 2020-07-10 | 山东汇贸电子口岸有限公司 | 一种服务部署中文件配置编辑方法及系统 |
WO2021217871A1 (zh) * | 2020-04-28 | 2021-11-04 | 平安科技(深圳)有限公司 | 微服务集群部署方法、装置、计算机设备及存储介质 |
CN114077435A (zh) * | 2020-08-19 | 2022-02-22 | 杭州安存网络科技有限公司 | 基于容器化快速部署的电子存证系统和方法 |
CN112416524A (zh) * | 2020-11-25 | 2021-02-26 | 电信科学技术第十研究所有限公司 | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 |
CN112558987A (zh) * | 2020-12-16 | 2021-03-26 | 中盈优创资讯科技有限公司 | 一种基于helm的自动化部署方法及装置 |
CN113282332A (zh) * | 2021-05-12 | 2021-08-20 | 建信金融科技有限责任公司 | 运维处理方法及装置 |
CN113407194A (zh) * | 2021-07-26 | 2021-09-17 | 北京京东乾石科技有限公司 | 一种部署软件的方法和装置 |
CN114115954A (zh) * | 2022-01-25 | 2022-03-01 | 北京金堤科技有限公司 | 自动化集成部署服务的方法和装置、以及电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
魏新宇等.金融级IT架构与运维 云原生 分布式与安全.机械工业出版社,2021,第155-160页. * |
Also Published As
Publication number | Publication date |
---|---|
CN114840225A (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200234087A1 (en) | Consolidation and history recording of a physical display board using an online task management system | |
US10303463B2 (en) | Terminal management framework and terminal management method | |
CN111324522A (zh) | 一种自动化测试系统及方法 | |
US11455166B2 (en) | Hosting event-based applications | |
US11726800B2 (en) | Remote component loader | |
CN111090423B (zh) | 一种webhook框架系统和实现主动调用、实现事件触发的方法 | |
CN105871587A (zh) | 日志上传方法及装置 | |
CN108134690B (zh) | 网络业务部署流程控制方法、装置及系统 | |
CN114840225B (zh) | 一种应用部署方法、装置、存储介质及电子装置 | |
CN113687858B (zh) | 配置文件的检查方法、装置、电子设备及存储介质 | |
CN116860266A (zh) | 应用容器化部署方法、装置、电子设备及存储介质 | |
CN102572896A (zh) | 一种无线通讯系统升级方法及升级装置 | |
CN116257438A (zh) | 接口测试用例的更新方法及相关设备 | |
CN115167972A (zh) | 一种云原生平台集成方法及系统 | |
CN113312083A (zh) | 应用生成方法、装置及设备 | |
CN103888502A (zh) | 投影方法、投影文件提供方法及投影终端 | |
CN108920379B (zh) | 捕获lua代码异常的方法和装置 | |
CN112988409A (zh) | 一种接口调用方法、装置、计算机设备及存储介质 | |
CN107203471B (zh) | 联调方法、服务平台及计算机存储介质 | |
CN112130889A (zh) | 资源的管理方法和装置、存储介质、电子装置 | |
CN115357258B (zh) | 应用的部署方法、装置、存储介质及电子装置 | |
CN114896027A (zh) | 流水线跨集群部署应用的方法、终端、介质及程序 | |
CN114265595B (zh) | 一种基于智能合约的云原生应用开发与部署系统和方法 | |
CN116418791A (zh) | 固件升级方法、固件升级系统、服务器及存储介质 | |
CN112148348B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |