CN113360160A - 部署应用的方法、装置、电子设备和存储介质 - Google Patents
部署应用的方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113360160A CN113360160A CN202010148161.0A CN202010148161A CN113360160A CN 113360160 A CN113360160 A CN 113360160A CN 202010148161 A CN202010148161 A CN 202010148161A CN 113360160 A CN113360160 A CN 113360160A
- Authority
- CN
- China
- Prior art keywords
- application
- container
- instruction
- server
- client
- 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
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000012423 maintenance Methods 0.000 claims description 48
- 238000010276 construction Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 9
- 238000011161 development Methods 0.000 abstract description 95
- 238000010586 diagram Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了部署应用的方法、装置、电子设备和存储介质,涉及计算机技术领域。该方法的一具体实施方式包括:接收客户端发送的应用部署指令,应用部署指令包括待部署应用的应用标识;根据应用标识,从镜像中心确定目标基础镜像信息;接收客户端发送的操作指令,根据操作指令确定应用标识对应的应用代码,并根据目标基础镜像信息和应用代码构建应用镜像,根据应用镜像构建应用容器,以及发布应用容器。该实施方式能够解决在应用开发后,需要切换到不同的平台才能实现应用部署,效率较低的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种部署应用的方法、装置、电子设备和存储介质。
背景技术
随着Cloud Native(云原生)的持续发展,云服务在互联网市场上占据了非常重要的地位,越来越多的用户已经在云上部署开发的应用。以kubernetes(简称K8s,是用8代替8个字符“ubernete”而成的缩写)为例,应用开发和部署的流程通常为:应用程序在本地开发环境进行开发并上传到管理库中,随后在web端设计镜像构建模板(Dockerfile),将应用代码根据Dockerfile构建为应用镜像后上传镜像中心,并根据设计的资源编排模板进行应用部署。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
应用在开发平台开发后,需要通过web端进行应用部署,如此在应用开发后,需要切换到不同的平台才能实现应用部署,效率较低。
发明内容
有鉴于此,本发明实施例提供一种部署应用的方法、装置、系统和存储介质,能够解决在应用开发后,需要切换到不同的平台才能实现应用部署,效率较低的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种部署应用的方法。
本发明实施例的一种部署应用的方法包括:接收客户端发送的应用部署指令,所述应用部署指令包括待部署应用的应用标识;根据所述应用标识,从镜像中心确定目标基础镜像信息;接收所述客户端发送的操作指令,根据所述操作指令确定所述应用标识对应的应用代码,并根据所述目标基础镜像信息和所述应用代码构建应用镜像,根据所述应用镜像构建应用容器,以及发布所述应用容器。
在一个实施例中,所述操作指令包括编译指令,所述编译指令包括编译信息;所述根据所述操作指令确定所述应用标识对应的应用代码,包括:
从所述编译信息中确定编译类型;若所述编译类型为上传编译,则将所述应用标识及其对应的应用代码上传至对象存储系统;若所述编译类型为控制系统编译,则根据地址信息从代码库获取原始代码;通过调用容器管理系统,以使所述容器管理系统从镜像中心获取目标镜像,以构建编译容器,并在所述编译容器中对所述原始代码执行编译命令得出应用代码,将所述应用代码和所述应用标识上传至所述对象存储系统。
在又一个实施例中,若所述编译类型为上传编译,则所述编译信息包括上传编译类型标识和与所述应用标识对应的应用代码;若所述编译类型为控制系统编译,则所述编译信息包括控制系统编译类型标识和所示地址信息。
在又一个实施例中,所述操作指令包括应用镜像构建指令;
所述根据所述目标基础镜像信息和所述应用代码构建所述应用标识对应的应用镜像,包括:
通过调用容器管理系统,以使所述容器管理系统根据所述目标基础镜像信息从对象存储系统中获取目标基础镜像,根据所述应用标识从所述对象存储系统中获取所述应用代码,并根据所述目标基础镜像信息和所述应用代码构建所述应用标识对应的应用镜像。
在又一个实施例中,所述根据所述应用标识,从镜像中心确定目标基础镜像信息,包括:
从镜像中心中,获取与所述应用标识对应的基础镜像信息列表;
向所述客户端发送所述基础镜像信息列表;
接收所述客户端发送的目标基础镜像信息,所述目标基础镜像信息为用户从所述基础镜像信息列表中确定的。
在又一个实施例中,所述接收客户端发送的应用部署指令之前,还包括:
接收所述客户端发送的应用标识获取指令;
根据所述应用标识获取指令,从业务数据库中获取各个应用的标识;
将所述各个应用的标识发送至所述客户端。
在又一个实施例中,在所述发布所述应用容器之后,还包括:接收所述客户端发送的日志查看指令,所述日志查看指令包括所述应用标识;从容器管理系统中,获取所述应用标识对应的容器的地址,并将所述应用标识对应的容器的地址发送至所述客户端;接收所述客户端发送的目标地址;从容器仓库中获取所述目标地址对应容器的日志文件列表,并将所述日志文件列表发送至所述客户端。
在又一个实施例中,在所述发布所述应用容器之后,还包括:接收所述客户端发送的维护指令,所述维护指令包括所述应用标识;获取所述应用标识对应容器的地址,并将所述应用标识对应容器的地址发送至所述客户端;接收所述客户端发送的目标地址;调用堡垒机服务,以使所述堡垒机服务根据所述目标地址,通过容器管理系统创建跳板机容器,并确定所述跳板机容器的信息;将所述跳板机容器的信息发送给至所述客户端。
为实现上述目的,根据本发明实施例的另一方面,提供了又一种部署应用的方法。
本发明实施例的又一种部署应用的方法包括:接收用户输入的待部署应用的应用标识;根据所述应用标识生成应用部署指令;向服务端发送所述应用部署指令,所述应用部署指令包括所述应用标识;接收所述用户发送的操作指令;向所述服务端发送操作指令,所述操作指令包括编译指令、应用镜像构建指令和应用发布指令。
在一个实施例中,所述向所述服务端发送操作指令,包括:
向所述服务端发送所述编译指令;
按照预设周期轮询所述服务端,判断所述服务端是否完成编译;
若是,则向所述服务端发送所述应用镜像构建指令;
按照所述预设周期轮询所述服务端,判断所述服务端是否完成应用镜像构建;
若是,则向所述服务端发送所述应用发布指令。
在又一个实施例中,在所述向所述服务端发送操作指令之前,还包括:
接收并显示所述服务端发送的、与所述应用标识对应的基础镜像信息列表;
接收用户输入的目标基础镜像信息,所述目标基础镜像信息属于所述基础镜像信息列表;
向所述服务端发送所述目标基础镜像信息。
在又一个实施例中,所述向所述服务端发送操作指令之后,还包括:接收用户输入的日志查看指令,所述日志查看指令包括所述应用标识;向所述服务端发送所述日志查看指令;接收并显示所述服务端发送的、所述应用标识对应容器的地址;接收用户输入的目标地址,所述目标地址表示待查看日志的容器的地址;向所述服务端发送所述目标地址;接收并显示所述服务端发送的、所述目标地址对应容器的日志文件列表;接收用户输入的目标日志文件;根据所述目标日志文件,获取并显示所述目标日志文件的内容。
在又一个实施例中,所述向所述服务端发送操作指令之后,还包括:接收用户输入的维护指令,所述维护指令包括所述应用标识;向所述服务端发送所述维护指令;接收并显示所述服务端发送的、所述应用标识对应容器的地址;接收用户输入的目标地址,所述目标地址表示待维护容器的地址;向所述服务端发送所述目标地址;接收所述服务端发送的跳板机容器的信息;通过所述跳板机容器的信息,访问所述目标地址对应的容器,以对所述目标地址对应的容器进行维护。
为实现上述目的,根据本发明实施例的另一方面,提供了一种部署应用的装置。
本发明实施例的一种部署应用的装置,设置与服务端,包括:接收单元,用于接收客户端发送的应用部署指令,所述应用部署指令包括待部署应用的应用标识;确定单元,用于根据所述应用标识,从镜像中心确定目标基础镜像信息;处理单元,用于接收所述客户端发送的操作指令,根据所述操作指令确定所述应用标识对应的应用代码,并根据所述目标基础镜像信息和所述应用代码构建应用镜像,根据所述应用镜像构建应用容器,以及发布所述应用容器。
在一个实施例中,所述操作指令包括编译指令,所述编译指令包括编译信息;所述处理单元,具体用于:
从所述编译信息中确定编译类型;
若所述编译类型为上传编译,则将所述应用标识及其对应的应用代码上传至对象存储系统;
若所述编译类型为控制系统编译,则根据地址信息从代码库获取原始代码;通过调用容器管理系统,以使所述容器管理系统从镜像中心获取目标镜像,以构建编译容器,并在所述编译容器中对所述原始代码执行编译命令得出应用代码,将所述应用代码和所述应用标识上传至所述对象存储系统。
在又一个实施例中,若所述编译类型为上传编译,则所述编译信息包括上传编译类型标识和与所述应用标识对应的应用代码;
若所述编译类型为控制系统编译,则所述编译信息包括控制系统编译类型标识和所示地址信息。
在又一个实施例中,所述操作指令包括应用镜像构建指令;所述处理单元,具体用于:
通过调用容器管理系统,以使所述容器管理系统根据所述目标基础镜像信息从对象存储系统中获取目标基础镜像,根据所述应用标识从所述对象存储系统中获取所述应用代码,并根据所述目标基础镜像信息和所述应用代码构建所述应用标识对应的应用镜像。
在又一个实施例中,所述确定单元具体用于:
从镜像中心中,获取与所述应用标识对应的基础镜像信息列表;
向所述客户端发送所述基础镜像信息列表;
接收所述客户端发送的目标基础镜像信息,所述目标基础镜像信息为用户从所述基础镜像信息列表中确定的。
在又一个实施例中,所述接收单元,还用于接收所述客户端发送的应用标识获取指令;
所述装置还包括:
获取单元,用于根据所述应用标识获取指令,从业务数据库中获取各个应用的标识;
发送单元,用于将所述各个应用的标识发送至所述客户端。
在又一个实施例中,所述接收单元,还用于接收所述客户端发送的日志查看指令,所述日志查看指令包括所述应用标识;
所述装置还包括:
发送单元,用于从容器管理系统中,获取所述应用标识对应的容器的地址,并将所述应用标识对应的容器的地址发送至所述客户端;
所述接收单元,还用于接收所述客户端发送的目标地址;
所述发送单元,还用于从容器仓库中获取所述目标地址对应容器的日志文件列表,并将所述日志文件列表发送至所述客户端。
在又一个实施例中,所述接收单元,还用于接收所述客户端发送的维护指令,所述维护指令包括所述应用标识;
所述装置还包括:
发送单元,用于获取所述应用标识对应容器的地址,并将所述应用标识对应容器的地址发送至所述客户端;
所述接收单元,还用于接收所述客户端发送的目标地址;
所述确定单元,还用于调用堡垒机服务,以使所述堡垒机服务根据所述目标地址,通过容器管理系统创建跳板机容器,并确定所述跳板机容器的信息;
所述发送单元,还用于将所述跳板机容器的信息发送给至所述客户端。
为实现上述目的,根据本发明实施例的另一方面,提供了又一种部署应用的装置。
本发明实施例的又一种部署应用的装置,设置于客户端,包括:接收单元,用于接收用户输入的待部署应用的应用标识;生成单元,用于根据所述应用标识生成应用部署指令;发送单元,用于向服务端发送所述应用部署指令,所述应用部署指令包括所述应用标识;所述接收单元,还用于接收所述用户发送的操作指令;所述发送单元,还用于向所述服务端发送操作指令,所述操作指令包括编译指令、应用镜像构建指令和应用发布指令。
在一个实施例中,所述发送单元,具体用于:
向所述服务端发送所述编译指令;
按照预设周期轮询所述服务端,判断所述服务端是否完成编译;
若是,则向所述服务端发送所述应用镜像构建指令;
按照所述预设周期轮询所述服务端,判断所述服务端是否完成应用镜像构建;
若是,则向所述服务端发送所述应用发布指令。
在又一个实施例中,所述接收单元,还用于接收并显示所述服务端发送的、与所述应用标识对应的基础镜像信息列表;
所述接收单元,还用于接收用户输入的目标基础镜像信息,所述目标基础镜像信息属于所述基础镜像信息列表;
所述发送单元,还用于向所述服务端发送所述目标基础镜像信息。
在又一个实施例中,所述接收单元,还用于接收用户输入的日志查看指令,所述日志查看指令包括所述应用标识;
所述发送单元,还用于向所述服务端发送所述日志查看指令;
所述接收单元,还用于接收并显示所述服务端发送的、所述应用标识对应容器的地址;
所述接收单元,还用于接收用户输入的目标地址,所述目标地址表示待查看日志的容器的地址;
所述发送单元,还用于向所述服务端发送所述目标地址;
所述接收单元,还用于接收并显示所述服务端发送的、所述目标地址对应容器的日志文件列表;
所述接收单元,还用于接收用户输入的目标日志文件;
还包括:
显示单元,用于根据所述目标日志文件,获取并显示所述目标日志文件的内容。
在又一个实施例中,所述接收单元,还用于接收用户输入的维护指令,所述维护指令包括所述应用标识;
所述发送单元,还用于向所述服务端发送所述维护指令;
所述接收单元,还用于接收并显示所述服务端发送的、所述应用标识对应容器的地址;
所述接收单元,还用于接收用户输入的目标地址,所述目标地址表示待维护容器的地址;
所述发送单元,还用于向所述服务端发送所述目标地址;
所述接收单元,还用于接收所述服务端发送的跳板机容器的信息;
还包括:
访问单元,用于通过所述跳板机容器的信息,访问所述目标地址对应的容器,以对所述目标地址对应的容器进行维护。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的部署应用的方法。
为实现上述目的,根据本发明实施例的又一个方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例提供的部署应用的方法。
上述发明中的一个实施例具有如下优点或有益效果:本发明实施例中,本发明实施例中客户端可以通过服务端来实现应用部署,如此在客户端中完成应用开发后,可以通过服务端直接实现应用的部署,而不需要再切换到其他平台进行应用的部署,提高应用部署的效率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的部署应用的方法的一种系统架构的示意图;
图2是根据本发明实施例的部署应用的方法的一种主要流程的示意图;
图3是根据本发明实施例的部署应用的方法的又一种主要流程的示意图;
图4是根据本发明实施例的部署应用的方法又一种系统架构的示意图;
图5是根据本发明实施例的HTTP Proxy中参数配置的一种示意图;
图6是根据本发明实施例的部署应用的方法的又一种主要流程的示意图;
图7是根据本发明实施例的待部署应用的应用标识输入的一种示意图;
图8是根据本发明实施例的一键编译的操作输入操作指令的一种示意图;
图9是根据本发明实施例的上传编译操作指令中参数输入的一种示意图;
图10是根据本发明实施例的Git编译时操作指令中参数输入的一种示意图;
图11是根据本发明实施例的显示应用部署进度的一种示意图;
图12是根据本发明实施例的查看日志的方法的一种主要流程的示意图;
图13是根据本发明实施例的订阅日志的方式的一种示意图;
图14是根据本发明实施例的显示目标日志文件内容的一种示意图;
图15是根据本发明实施例的应用维护的方法的一种主要流程的示意图;
图16是根据本发明实施例的访问目标地址对应的容器的一种示意图;
图17是根据本发明实施例的连接目标地址对应的容器的一种示意图;
图18是根据本发明实施例的部署应用的装置的主要单元的一种示意图;
图19是根据本发明实施例的部署应用的装置的主要单元的又一种示意图;
图20是本发明实施例可以应用于其中的又一种示例性系统架构图;
图21是适于用来实现本发明实施例的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明中的实施例以及实施例中的特征可以互相组合。
本发明实施例提供部署应用的方法,可以用于应用部署的场景中。图1所示为本发明实施例中部署应用的方法所适用的一种系统架构图。
如图1所示,客户端可以与服务端通信,服务端可以与镜像中心(HarborRegistry)、对象存储、业务数据库、容器管理系统和容器仓库(Docker)进行通信。客户端中可以实现应用代码的开发,具体的,客户端中可以设置用于应用代码开发的开发系统。客户端中还可以设置与用户之间交互的界面,以实现接收用户输入的数据,并显示用户需要查看的数据等与用户进行数据交互的功能。开发系统可以具体为IDE(IntegratedDevelopment Environment,集成开发环境)。
服务端可以具体为服务器,作为客户端的代理服务器,为客户端实现应用部署,具体可以为HTTP(超文本传输协议)代理服务器(HTTP Proxy)。服务端可以设置统一接口,以便于与不同的系统或服务数据传输。服务端中可以配置与其通信的各系统的地址信息,以便于可以通过配置的地址信息对进行数据传输。服务端中还可以配置服务编排和应用部署所需的模板,例如dockerfile的模板等,用于对应用的部署。
本发明实施例中,服务端通过与镜像中心、对象存储、业务数据库、容器管理系统和容器仓库进行数据交互,实现应用的部署。
业务数据库中用于存储业务数据,业务可以包括多种类型,例如物流、库存等等,每个业务可以包括多个系统,每个系统可以包括多个应用。业务数据具体可以为各应用的标识、所属系统、所属业务等参数,还可以包括应用对应原始代码在开发时所使用的编写语言。镜像中心可以用于镜像权限和镜像之间相互关系的管理,可以存储各用户的访问权限等数据。对象管理用于镜像、程序编译包、dockerfile等的存储,其可以作为镜像等文件的存储介质。容器管理系统具体可以为Kubernetes,用于管理云平台中容器化应用,通过Kubernetes可以访问容器仓库,并对容器中数据进行管理、查看、维护等等。容器仓库中可以用于存储各应用容器。
本发明实施例提供了一种部署应用的方法,该方法可由图1所示系统架构中服务端执行,如图2所示,该方法包括以下步骤。
S201:接收客户端发送的应用部署指令。
其中,应用部署指令包括待部署应用的应用标识。
用户需要部署应用时,可以通过客户端向服务端发送应用部署指令,应用标识表示待部署应用的标识。
本发明实施例的一种实施方式中,在本步骤之前还可以包括:接收客户端发送的应用标识获取指令;根据应用标识获取指令,从业务数据库中获取各个应用的标识;将各个应用的标识发送至客户端。
本发明实施例中,业务标识可以存储在业务数据库中,所以客户端可以通过服务端获取各个应用的标识,以便用户选择待部署应用的应用标识。所以服务端接收客户端发送的应用标识获取指令后,可以从业务数据库中获取各个应用的标识,并发送给客户端,以便用户通过客户端从各个应用标识中选择出应用标识,在确定出应用标识后,客户端执行步骤S201,将应用标识发送给服务端。
S202:根据应用标识,从镜像中心确定目标基础镜像信息。
镜像中心中存储各基础镜像的信息,本发明实施例中,通过容器来进行应用部署,所以需要构建出应用对应的应用镜像,而应用镜像需要通过基础镜像构建,所以本步骤中可以从镜像中心确定出用于构建应用镜像的目标基础镜像的信息,即目标基础镜像信息。
具体的,本步骤可以执行为:从镜像中心中,获取与应用标识对应的基础镜像信息列表;向客户端发送基础镜像信息列表;接收客户端发送的目标基础镜像信息,目标基础镜像信息为用户从基础镜像信息列表中确定的。
镜像中心中存储了各个应用对应基础镜像的基础镜像信息,每个应用可以对应不同编写语言开发的、不同操作系统使用的、不同版本的基础镜像,所以每个应用可以对应多个基础镜像的基础镜像信息。本发明实施例中,服务端可以在接收应用标识后,根据应用标识从镜像中心中获取应用标识对应的基础镜像信息列表,然后将应用标识对应的基础镜像信息列表发送给客户端,以便于用户从基础镜像信息列表中选择出目标基础镜像信息,然后通过接收客户端发送的目标基础镜像信息,确定出应用镜像构建所需目标基础镜像的目标基础镜像信息。
需要说明的是,在业务数据库包括应用对应应用代码的编写语言时,服务端可以通过业务数据库确定出应用标识对应应用代码的编写语言,由于应用代码的编写语言需要与基础镜像的编写语言一致才能构建应用镜像,所以服务端在从镜像中心中获取与应用标识对应的基础镜像信息列表时,可以获取与应用标识对应、且编写语言与应用标识对应应用代码的编写语言相同的基础镜像信息列表。
S203:接收客户端发送的操作指令,根据操作指令确定应用标识对应的应用代码,并根据目标基础镜像信息和应用代码构建应用镜像,根据应用镜像构建应用容器,以及发布应用容器。
其中,服务端在接收客户端发送的操作指令后,可以执行与操作执行对应的操作。通过容器实现应用部署过程为,根据应用代码和基础镜像构建出应用镜像,然后根据应用镜像构建应用容器,以及发布应用容器,从而实现应用的部署。
本发明实施例中,操作指令可以包括编译指令、应用镜像构建指令和应用发布指令。
编译是指对应用对应的原始代码进行编译得出应用代码,并上传存储的过程。所以编译指令为指示服务端执行编译并上传的流程。本发明实施例中,编译包括两种类型,分别为上传编译和控制系统(Git)编译。上传编译是原始代码已经完成编译得出应用代码,所以服务端只需要将应用代码上传存储。Git编译是指原始代码存储在代码库中,服务端需要从代码库中获取到原始代码,并对其进行编译得出应用代码,以及上传存储。
所以本发明实施例中,编译指令包括编译信息,服务端根据编译信息可以确定出编译类型,进而根据编译类型,分别执行不同的操作。具体为:若编译类型为上传编译,则将应用标识及其对应的应用代码上传至对象存储;若编译类型为控制系统编译,则根据地址信息从代码库获取原始代码;通过调用容器管理系统,以使容器管理系统从镜像中心获取目标镜像,以构建编译容器,在编译容器中对原始代码执行编译命令得出应用代码,并将应用代码和应用标识上传至对象存储。
若编译类型为上传编译,则说明应用标识对应的应用代码已存在,服务端可以将应用标识及其对应的应用代码上传至对象存储。若编译类型为Git编译,则说明服务端需要对原始代码进行编译,所以服务端根据地址信息从代码库获取原始代码,然后通过调用容器管理系统,使容器管理系统从镜像中心获取目标镜像,以构建编译容器,在编译容器中对原始代码执行编译命令得出应用代码,并将应用代码和应用标识上传至对象存储系统。地址信息表示原始代码在代码库中存储的地址信息,代码库可以具体为Git代码库。
服务端通过容器管理系统编译应用代码,而编译需要在容器中执行,所以服务端调用容器管理系统后,容器管理系统从镜像中心获取目标镜像,通过目标镜像可以构建出用于编译的编译容器,然后在编译容器中对原始代码执行编译命令从而得出应用代码,再将应用代码和应用标识上传至对象存储系统。目标镜像为预先设置。
需要说明的是,若编译类型为上传编译,则编译信息包括上传编译类型标识和与应用标识对应的应用代码,以便于服务端根据上传编译类型标识确定编译类型,并获取到与应用标识对应的应用代码。若编译类型为代码库编译,则编译信息包括控制系统编译类型标识和与应用标识对应的原始代码在代码库中存储的地址信息,以便于服务端根据控制系统编译类型标识确定编译类型,并根据地址信息获取到与应用标识对应的原始代码。在服务端将应用代码上传至对象存储系统后,可以将编译容器删除。
应用镜像构建是指通过基础镜像和应用代码构建出应用镜像的过程。本发明实施例中,服务端接收应用镜像构建指令后,可以通过调用容器管理系统,以使容器管理系统根据目标基础镜像信息从对象存储系统中获取目标基础镜像,根据应用标识从对象存储系统中获取应用代码,并根据目标基础镜像信息和应用代码构建应用标识对应的应用镜像。
应用镜像的构建需要在容器中执行,所以服务端可以调用容器管理系统后,容器管理系统从镜像中心获取目标镜像,以创建出用于构建应用镜像的容器,然后在用于构建应用镜像的容器中执行docker build命令,通过目标基础镜像信息和应用代码生成应用标识对应的应用镜像,然后将应用镜像上传至镜像中心中存储,并删除用于构建应用镜像的容器。目标镜像为预先设置,其可以与编译时获取的目标镜像不同。
应用发布是指根据应用镜像构建出应用容器,然后将应用容器发布的过程。本发明实施例中,服务端在接收应用发布指令后,可以通过调用容器管理系统,以使容器管理系统从镜像中心获取应用标识对应的应用镜像,然后根据应用镜像构建出应用标识对应的应用容器,并进行发布。
需要说明的是,本发明实施例中应用容器可以构建多个,服务端可以接收客户端发送的构建数量,然后构建出构件数量个应用容器,以便于满足用户需求。
本发明实施例的又一种实施方式中,在步骤S203之后还包括:接收客户端发送的日志查看指令,日志查看指令包括应用标识;从容器管理系统中,获取应用标识对应的容器的地址,并将应用标识对应的容器的地址发送至客户端;接收客户端发送的目标地址;从容器仓库中获取目标地址对应容器的日志文件列表,并将日志文件列表发送至客户端。
在应用部署后,客户端还可以通过服务端对部署的容器进行日志查看,需要先确定出要查看的是哪个容器的哪个日志。所以服务端接收日志查看指令后,可以通过调用容器管理系统,从容器管理系统中获取应用标识对应的容器的地址,并发送给客户端,以便用户通过客户端选择要查看日志的容器的目标地址。由于应用标识对应的容器可能包括多个,所以应用标识对应的容器的地址也可能包括多个。由于一个容器中也可能包括多个日志文件,所以在确定目标地址后,服务端可以通过SSH(Secure Shell,安全外壳协议)远程连接到目标地址对应的容器,通过Is命令获取该容器中日志文件列表,并发送给客户端,以便用户通过客户端选择要查看的日志文件。
本发明实施例的又一种实施方式中,在步骤S203之后还包括:接收客户端发送的维护指令,维护指令包括应用标识;获取应用标识对应容器的地址,并将应用标识对应容器的地址发送至客户端;接收客户端发送的目标地址;调用堡垒机服务,以使堡垒机服务根据目标地址,通过容器管理系统创建跳板机容器,并确定跳板机容器的信息;将跳板机容器的信息发送给至客户端。
在应用部署后,客户端还可以通过服务端对部署的容器进行维护,需要先确定出要维护的是哪个容器。所以服务端接收维护指令后,可以通过调用容器管理系统,从容器管理系统中获取应用标识对应的容器的地址,并发送给客户端,以便用户通过客户端选择要维护的容器的目标地址。由于应用标识对应的容器可能包括多个,所以应用标识对应的容器的地址也可能包括多个。在确定出目标地址后,即确定出要维护的容器的地址,而维护容器需要访问到容器中,客户端可以通过堡垒机服务来访问要维护的容器,所以服务端可以根据目标地址申请堡垒机服务,然后通调用堡垒机服务,以使堡垒机服务根据目标地址,通过容器管理系统创建跳板机容器,并确定出创建的跳板机容器的信息。跳板机容器的信息可以包括账号和密码,服务端将跳板机容器的信息发送给客户端,使客户端可以通过跳板机容器的信息访问到目标地址对应的容器。
需要说明的是,服务端在调用堡垒机服务之前,还可以对用户进行校验,以判断其是否具有维护权限。校验方式通常为通过客户端获取用户的账户信息,判断账户信息是否具有应用标识对应容器的访问权限,若用户有访问权限,则执行调用堡垒机服务的流程;若用户没有访问权限,则可以停止执行,通过客户端提示用户。
本发明实施例中客户端可以通过服务端来实现应用部署,如此在客户端中完成应用开发后,可以通过服务端直接实现应用的部署,而不需要再切换到其他平台进行应用的部署,提高应用部署的效率。同时本发明实施例中,客户端还可以通过服务端实现对部署应用的维护和日志查看功能,从而实现在对部署应用的维护和日志查看时,不需要切换到其他平台执行,提高应用维护和日志查看的效率。
本发明实施例提供了一种部署应用的方法,该方法可由图1所示系统架构中客户端执行,如图3所示,该方法包括以下步骤。
S301:接收用户输入的待部署应用的应用标识。
客户端中提供了可以与用户交互的界面,所以用户在需要应用部署时,可以在客户端输入待部署应用的应用标识,以便于客户端根据待部署应用的应用标识可以确定出目标基础镜像。
需要说明的是,为了简化用户输入应用标识的方式,客户端可以为用户显示各个应用的应用标识列表,以便用户通过选择输入待部署应用的应用标识。具体方式可以为:接收用户输入的应用标识获取指令,然后将应用标识获取指令发送至服务端,以便于服务端获取各个应用的标识,客户端接收并显示服务端发送的各个应用的标识,如此可以使用户从显示的标识中选择出待部署应用的应用标识,即执行本步骤接收用户输入的待部署应用的应用标识。
S302:根据应用标识生成应用部署指令。
客户端在接收待部署应用的应用标识后,可以生成应用部署指令,以指示服务端执行应用部署的流程。
需要说明的是,应用部署指令具体可以为固定格式的数据、报文等等,本发明实施例中不做限定。
S303:向服务端发送应用部署指令。
其中,应用部署指令可以包括应用标识。
S304:接收用户发送的操作指令。
其中,操作指令包括编译指令、应用镜像构建指令和应用发布指令。应用部署的具体操作过程通常为编译、应用镜像构建和应用发布,所以用户在输入应用标识后,可以再输入操作指令,以使客户端通过服务端执行编译、应用镜像构建和应用发布的流程。
S305:向服务端发送操作指令。
客户端在接收用户的操作指令后,可以将操作指令发送给服务端,以使服务端执行编译、应用镜像构建和应用发布的流程。
需要说明的是,用户输入操作指令的方式可以为一次输入,也可以为依次分别输入操作指令包括的指令,客户端向服务端发送操作指令的方式可以为一次发送,也可以为依次分别发送操作指令包括的指令。
具体的,客户端可以分别向服务端发送编译指令、应用镜像构建指令和应用发布指令,发送方式可以为:向服务端发送编译指令;按照预设周期轮询服务端,判断服务端是否完成编译流程;若是,则向服务端发送应用镜像构建指令;按照预设周期轮询服务端,判断服务端是否完成应用镜像构建流程;若是,则向服务端发送应用发布指令。
客户端先向服务端发送编译指令,服务端接收编译指令后执行性编译的流程,客户端在此期间可以按照预设周期轮询服务端,即周期性向服务端发送询问请求,以判断服务端是否完成编译。客户端在确定服务端完成编译后,再向服务端发送应用镜像构建指令,然后可以按照预设周期轮询服务端,即周期性向服务端发送询问请求,以判断服务端是否完成应用镜像构建。客户端在确定服务端完成应用镜像构建后,再向服务端发送应用发布指令,以使服务端执行应用发布的流程。
本发明实施例的一种实施方式中,服务端在接收客户端发送的应用部署指令后,需要确定出用于应用部署的目标基础镜像信息,由于与应用标识对应的基础镜像较多,所以服务端可以将与应用标识对应的基础镜像信息发送给客户端显示,通过用户的选择来确定出目标基础镜像信息。所以在执行步骤S304之前,还包括:接收并显示服务端发送的与应用标识对应的基础镜像信息列表;接收用户输入的目标基础镜像信息,目标基础镜像信息属于基础镜像信息列表;向服务端发送目标基础镜像信息。
服务端将与应用标识对应的基础镜像信息列表发送给客户端,客户端显示基础镜像信息列表,以便用户从中确定出目标基础镜像信息。用户将确定的目标基础镜像信息输入给客户端后,客户端可以将目标基础镜像信息发送给服务端,以便服务端确定出目标基础镜像信息。
本发明实施例的又一种实施方式中,在客户端通过服务端实现应用部署后,还可以对部署的应用进行日志查看,所以在步骤S305之后,还可以包括:接收用户输入的日志查看指令,日志查看指令包括应用标识;向服务端发送日志查看指令;接收并显示服务端发送的、应用标识对应的容器的地址;接收用户输入的目标地址,目标地址表示待查看日志的容器的地址;向服务端发送目标地址;接收并显示服务端发送的、目标地址对应容器的日志文件列表;接收用户输入的目标日志文件;根据目标日志文件,获取并显示目标日志文件的内容。
由于每个应用部署的应用容器可能会包括多个,每个应用容器中可能会包括多个日志文件,所以在日志查看时需要先确定出要查看哪个容器的哪个日志文件。所以客户端在接收用户输入的日志查看指令后,可以将日志查看指令发送给服务端,服务端可以根据日志查看指令中应用标识获取该应用标识对应容器的地址并发送给客户端。客户端在接收应用标识对应容器的地址后进行显示,以便用户从中确定出要查看日志的容器的地址。用户根据客户端显示的地址确定出目标地址,即待查看日志的容器的地址,客户端接收用户输入的目标地址后,将其发送给服务端,以便服务端获取目标地址对应容器的日志文件列表并发送给客户端。客户端接收目标地址对应容器的日志文件后进行显示,以便用户确定需要查看的目标日志文件,并输入客户端。客户端接收用户输入的目标日志文件后,客户端可以获取并显示目标日志文件的内容,客户端可以通过SSH协议远程连接到目标地址对应的容器,并通过tail命令获取到目标日志文件的内容并显示。
需要说明的是,客户端在显示目标日志文件的内容后,可以定时轮询目标日志文件,以及时将目标日志文件中出现更新的内容进行显示。
本发明实施例的又一种实施方式中,在客户端通过服务端实现应用部署后,还可以对部署的应用进行维护,所以在步骤S305之后,还可以包括:接收用户输入的维护指令,维护指令包括应用标识;向服务端发送维护指令;接收并显示服务端发送的、应用标识对应的容器的地址;接收用户输入的目标地址,目标地址表示待维护容器的地址;向服务端发送目标地址;接收服务端发送的跳板机容器的信息;通过跳板机容器的信息,访问目标地址对应的容器,以对目标地址对应的容器进行维护。
由于每个应用部署的应用容器可能会包括多个,每个应用容器中可能会包括多个日志文件,所以在维护时需要先确定出要维护的是哪个容器。
所以客户端在接收用户输入的维护指令后,可以将维护指令发送给服务端,服务端可以根据维护指令中应用标识获取该应用标识对应容器的地址并发送给客户端。客户端在接收应用标识对应容器的地址后进行显示,以便用户从中确定出要维护的容器的地址。用户根据客户端显示的地址确定出目标地址,即待维护容器的地址。维护容器需要访问到容器,访问容器可以通过堡垒机服务创建的跳板机容器实现,所以客户端接收用户输入的目标地址后,将其发送给服务端,以便服务端申请堡垒机服务,确定跳板机容器的信息,并返回给客户端。客户端接收跳板机容器的信息后,可以通过跳板机容器的信息,使用SSH协议连接跳板机容器,再通过跳板机容器访问目标地址对应的容器,从而实现对目标地址对应的容器的维护。
本发明实施例中客户端可以通过服务端来实现应用部署,如此在客户端中完成应用开发后,可以通过服务端直接实现应用的部署,而不需要再切换到其他平台进行应用的部署,提高应用部署的效率。同时本发明实施例中,客户端还可以通过服务端实现对部署应用的维护和日志查看功能,从而实现在对部署应用的维护和日志查看时,不需要切换到其他平台执行,提高应用维护和日志查看的效率。
需要说明的是,本发明实施例中,容器的地址可以具体为IP地址。服务端申请堡垒机服务之前,还可以对用户进行权限校验,此时可以通过客户端来获取用户的账号信息并发送给服务端。
结合图1所示的系统架构,本发明实施例中可以以客户端为设置IDE的开发系统、服务端为HTTP Proxy为例进行说明。具体的如图4所示,为本发明实施例所使用的又一种系统架构图。如图4所示,Application表示业务数据库中的应用数据,Harbor Registry为镜像中心,Kubernetes为容器管理系统,Docker为容器仓库。
如图4所示,开发系统中可以设置IDE插件,IDE插件是由JAVA Swing(图像界面)进行开发,可以与用户进行直接点击与输入交互。开发系统与HTTP Proxy可以通过HTTP协议、使用json格式进行数据交互,实现远端资源信息的获取与本地信息的提交。
HTTP Proxy可以由JAVA Web进行开发,相当于封装了一个代理层,其对外提供HTTP rest接口,即图4所示的统一接口,用于接收开发系统通过IDE插件发送的请求,并与Kubernetes,Harbor Registry等系统通过TCP/HTTP协议进行数据交互,最后再通过json格式将数据传输至开发系统。同时,HTTP Proxy可以通过堡垒机服务调用Kubernetes,以创建跳板机docker,从而使开发系统可以通过跳板机docker访问到要维护的docker。本发明实施例中,HTTP Proxy通常会预先配置Application、Harbor Registry、Kubernetes、Docker和对象存储的相关参数,如地址信息,以便于HTTP Proxy与上述各系统通信,具体配置方式可以如图5所示,图5为本发明实施例中一种参数配置的示意图。
基于图4所示的系统架构,结合图1和图2所示的实施例,对部署应用的方法进行具体说明,如图6所示,可以包括以下步骤。
S601:开发系统接收用户输入的应用标识获取指令后,向HTTP Proxy发送应用标识获取指令。
在用户需要应用部署时,需要输入待部署应用的应用标识,为了便于用户操作,开发系统可以显示各个应用的标识,以使用户根据显示的标识来选择待部署应用的标识,从而简化用户输入的内容。
所以用户在需要应用部署时,可以输入应用标识获取指令,以触发应用部署流程。开发系统接收应用标识获取指令后,需要通过HTTP Proxy来获取各个应用的标识,所以开发系统将应用标识获取指令发送给HTTP Proxy。
需要说明的是,用户输入应用标识获取指令的方式不进行限定,例如可以通过点击(如点击IDE中新建菜单)、输入预设内容等方式作为输入的应用标识获取指令。开发系统向HTTP Proxy发送应用标识获取指令的方式不做限定,本发明实施例中,可以预先设置应用标识获取指令的格式,进而将预先设置的应用标识获取指令发送给HTTP Proxy。
应用的标识可以包括多种,例如可以为应用名称、应用编号、所属业务系统、所属业务类型等等。
S602:HTTP Proxy从业务数据库中获取各个应用的标识,并发送给开发系统。
HTTP Proxy接收开发系统发送的应用标识获取指令后,可以从业务数据库中获取各个应用的标识。本发明实施例中为了便于用户选择可以从业务数据库中获取所有应用的标识,并发送给开发系统。
HTTP Proxy获取各个应用的标识后,可以以列表的方式发送给开发系统。
S603:开发系统显示各个应用的标识。
其中,开发系统在接收HTTP Proxy发送的各个应用的标识后,显示各个应用的标识,从而将各个应用的显示给用户,以便于用户选择待部署应用的应用标识。本发明实施例中,开发系统可以以列表的方式显示各个应用的标识。
需要说明的是,在开发系统显示的应用的标识中不包括需要部署应用的标识时,用户可以通过开发系统创建新的应用的标识,并配置新的应用的标识相关的参数,然后通过开发系统发送给HTTP Proxy,进而存储至业务数据库中。
S604:开发系统接收用户输入的待部署应用的应用标识。
本发明实施例中,用户可以通过从开发系统显示的应用的标识中选择出待部署应用的应用标识,即输入的待部署应用的应用标识。用户通过显示的应用的标识选择待部署应用的应用标识,并输入开发系统的方式可以如图7所示。
S605:开发系统根据待部署应用的应用标识生成应用部署指令,并发送至HTTPProxy。
本发明实施例中,应用部署指令可以为预先设置格式的数据,其中包括了待部署应用的应用标识,应用部署指令也可为待部署应用的应用标识。
S606:HTTP Proxy接收应用部署指令后,根据应用部署指令中的应用标识从镜像中心获取应用标识对应的基础镜像信息。
其中,基础镜像信息可以包括基础镜像的版本、存储地址、编写语言等等。例如,基础镜像信息可以为:带JDK(Java Development Kit)的CentOS6.6的基础镜像、或带python的CentOS7.2的基础镜像。JDK和python表示基础镜像的编写语言,CentOS6.6和CentOS7.2表示基础镜像所适用的操作系统。
HTTP Proxy接收应用部署指令后,可以从中确定待部署应用的应用标识,则HTTPProxy可以根据应用标识从镜像中心获取应用标识对应的基础镜像信息。
由于基础镜像在开发时可能使用不同的编程语言,并且对同一个应用可能存储不同版本的基础镜像,所以对于一个应用标识可能会存在多个基础镜像,所以HTTP Proxy根据应用标识获取应用标识对应的所有基础镜像信息。
通常情况下,业务数据库中对每个应用存储了开发此应用所使用的编写语言,在此应用部署时需要使用相同编写语言开发的基础镜像进行部署,所以本步骤中HTTP Proxy可以根据用户选择的应用标识确定出该应用在开发时所使用的编写语言,然后从镜像中心获取与应用标识对应、且使用应用在开发时所使用编写语言编写的基础镜像信息。
S607:HTTP Proxy将获取的基础镜像信息发送给开发系统。
HTTP Proxy在获取到基础镜像信息后可以以列表的方式发送给开发系统。
S608:开发系统显示基础镜像信息,并接收用户输入的目标基础镜像信息。
其中,目标基础镜像信息属于基础镜像信息。开发系统接收基础镜像信息后可以进行显示,用户通过选择的方式输入目标基础镜像信息至开发系统,目标基础镜像信息,即为应用部署时所需要的基础镜像的基础镜像信息。
S609:开发系统将目标基础镜像信息发送给HTTP Proxy。
S610:开发系统接收用户输入的操作指令。
用户在确定目标基础镜像信息后,用户可以输入操作指令,操作指令包括编译指令、应用镜像构建指令和应用发布指令。用户可以通过一次输入操作指令的方式输入开发系统。本发明实施例中,可以设置用户通过一键编译的操作输入操作指令,具体方式可以如图8所示。
具体的,编译指令用于指示对应用标识对应的原始代码进行编译,其包括上传编译和Git编译两种类型,所以操作指令中需要包括编译类型。
上传编译是指应用标识对应原始代码已经完成编译得出应用代码,所以HTTPProxy只需要将应用代码上传存储,此时用户需要将编译完成的应用代码输入给开发系统,以便于开发系统发送给HTTP Proxy上传存储。具体的,编译类型为上传编译时,操作指令中参数输入的方式可以如图9所示。
Git编译是指原始代码存储在代码库中,HTTP Proxy需要从代码库中获取到原始代码,并对其进行编译得出应用代码以及上传存储。此时用户需要输入应用代码在代码库中存储的地址信息,以便HTTP Proxy获取原始代码。具体的,编译类型为Git编译时,操作指令输入参数的方式可以如图10所示。
需要说明的是,操作指令中还可以包括用户需要部署应用的个数,以便于部署的应用能够满足用户的需求。
S611:开发系统向HTTP Proxy发送编译指令。
其中,开发系统接收用户输入的操作指令后,可以依次向HTTP Proxy发送编译指令、应用镜像构建指令和应用发布指令,本步骤中为发送编译指令。
编译指令中可以包括编译类型的标识,例如上传编译类型标识和Git编译类型标识,以便确定出编译的类型。编译指令还可以包括各编译类型对应的参数,如编译类型为上传编译,则编译参数可以包括应用代码,如编译类型为Git编译,则编译参数可以包括原始代码在代码库中的存储的地址信息。
S612:HTTP Proxy接收编译指令后执行编译流程。
通过编译指令可以确定出编译类型。
如果编译类型为上传编译,则HTTP Proxy可以将应用代码以软件包的方式上传至对象存储中,同时将应用标识上传至对象存储,以使对象存储中存储应用代码和应用标识之间的对应关系。
如果编译类型为Git编译,则HTTP Proxy可以根据原始代码的代码库中存储的地址信息获取原始代码,然后调用Kubernetes,通过Kubernetes从Harbor Registry中拉取Image创建容器,并在容器内执行编译命令对原始数据进行编译,在编译完成后将得到的应用代码以软件包的方式上传至对象存储中,并将编译使用的容器删除。同时将应用标识上传至对象存储,以使对象存储中存储应用代码和应用标识之间的对应关系。
HTTP Proxy中可以预先建立固定模板,固定模板中指定了拉取Image的名称,所以本步骤中通过发送固定模板从Harbor Registry中拉取Image。
S613:开发系统在确定HTTP Proxy完成编译后,发送应用镜像构建指令。
开发系统可以在发送编译指令后,可以按周期轮询HTTP Proxy是否完成编译,在确定HTTP Proxy完成编译后,发送应用镜像构建指令。
S614:HTTP Proxy根据应用镜像构建指令,构建应用镜像。
HTTP Proxy可以调用Kubernetes,通过Kubernetes从Harbor Registry中拉取Image创建容器,并根据目标基础镜像信息从对象存储中获取目标基础镜像,以及根据应用标识从对象存储中获取应用代码,然后在创建的容器内执行容器创建(docker build)命令生成应用镜像,然后执行上传(docker push)命令将生成的应用镜像上传至HarborRegistry中,并将创建的容器删除。
HTTP Proxy中可以预先建立固定模板,固定模板中指定了拉取Image的名称,所以本步骤中通过发送固定模板从Harbor Registry中拉取Image。
S615:开发系统在确定HTTP Proxy完成应用镜像构建后,发送应用发布指令。
开发系统可以在发送应用镜像构建指令后,可以按周期轮询HTTP Proxy是否完成应用镜像构建,在确定HTTP Proxy完成应用镜像构建后,发送应用发布指令。
需要说明的是,应用发布指令中可以包括用户输入的需要部署应用的数量。
S616:HTTP Proxy根据应用发布指令,发布应用容器。
HTTP Proxy在接收应用发布指令后,可以调用Kubernetes,通过Kubernetes根据应用标识从Harbor Registry中拉取构建的应用镜像,并基于应用镜像创建应用容器,然后发布创建的应用容器,从而实现应用部署。
需要说明的是,应用发布指令中需要构建应用容器的构建数量时,HTTP Proxy可以根据需要构建数量来确定构建应用容器的数量,进而发布构建数量个应用容器。
需要说明的是,在执行步骤S611至步骤S616的过程中,开发系统实时查询应用部署的进度,并进行显示,以提示用户应用部署的进度。具体的,显示应用部署进度的方式可以如图11所示。
本发明实施例中开发系统可以通过HTTP Proxy来实现应用部署,如此在开发系统中完成应用开发后,可以通过HTTP Proxy直接实现应用的部署,而不需要再切换到其他平台进行应用的部署,提高应用部署的效率。
基于图4所示的系统架构,结合图1和图2所示的实施例,对查看应用日志的方法进行具体说明,如图12所示,可以包括以下步骤。
S1201:开发系统接收用户输入的日志查看指令,日志查看指令包括待查看日志的应用标识。
在需要查看日志时,开发系统可以接收用户输入的日志查看指令,查看指令中可以包括待查看应用的应用标识。
本发明实施例中,对用户输入日志查看指令的方式不做限定,例如,用户可以通过点击新建等方式输入。
本发明实施例中,在用户需要查看日志时,开发系统可以通过HTTP Proxy获取各个应用的标识,然后对各个应用的标识进行显示,以便用户通过选择的方式输入待查看日志的应用标识。
S1202:开发系统向HTTP Proxy发送日志查看指令。
其中,日志查看指令中包括待查看日志的应用标识。
S1203:HTTP Proxy获取应用标识对应所有容器的IP地址,并发送至开发系统。
其中,HTTP Proxy接收日志查看指令后,可以得出待查看日志的应用标识,进而通过调用Kubernetes,可以获取到应用标识对应所有容器的IP地址。然后将应用标识对应所有容器的IP地址发送至开发系统,以便用户从IP地址中选择出目标地址,即待查看日志的容器的地址。
S1204:开发系统接收并显示应用标识对应所有的容器的IP地址。
S1205:开发系统用户输入的目标地址,并发送给HTTP Proxy。
其中,目标地址表示待查看日志的容器的地址,为应用标识对应所有的容器的IP地址中的一个。
S1206:HTTP Proxy从Docker中获取目标地址对应容器的日志文件列表,并发送至开发系统。
HTTP Proxy根据目标地址,通过SSH协议可以远程访问Docker中需要查看日志的容器,通过Is命令获取需要查看日志的容器的日志文件列表,并发送给开发系统。
日志文件列表具体可以为日志文件的地址、名称等等的列表。
S1207:开发系统接收并显示目标地址对应容器的日志文件列表。
S1208:开发系统接收用户输入的目标日志文件。
用户通过显示的日志文件列表,可以从中选择出要查看的目标日志文件,并输入开发系统。
用户可以通过设置订阅的方式来确定出目标日志文件,具体的订阅方式可以如图13所示。
S1209:开发系统获取并显示目标日志文件的内容,并轮询更新目标日志文件的内容。
开发系统可以通过SSH协议远程访问需要查看日志的容器,并通过tail命令获取到目标日志文件的内容。
具体的,开发系统显示目标日志文件内容的方式可以如图14所示。
本发明实施例中,开法系统还可以通过HTTP Proxy实现对部署应用的日志查看功能,从而实现在对部署应用的日志查看时,不需要切换到其他平台执行,提高应用日志查看的效率。
基于图4所示的系统架构,结合图1和图2所示的实施例,对查看应用日志的方法进行具体说明,如图15所示,可以包括以下步骤。
S1501:开发系统接收用户输入的维护指令。
其中,维护指令包括待维护应用的应用标识。
在需要应用维护时,开发系统可以接收用户输入的维护指令,维护指令可以包括待维护应用的应用标识。
本发明实施例中,对用户输入维护指令的方式不做限定,例如,用户可以通过点击新建等方式输入。
本发明实施例中,在用户需要维护应用时,开发系统可以通过HTTP Proxy获取各个应用的标识,然后对各个应用的标识进行显示,以便用户通过选择的方式输入待维护应用的应用标识。
S1502:开发系统向HTTP Proxy发送维护指令。
其中,维护指令中包括待维护应用的应用标识。
S1503:HTTP Proxy获取应用标识对应所有容器的IP地址,并发送至开发系统。
其中,HTTP Proxy接收维护指令后,可以得出待维护应用的应用标识,进而通过调用Kubernetes,可以获取到应用标识对应所有容器的IP地址。然后将应用标识对应所有容器的IP地址发送至开发系统,以便用户从IP地址中选择出目标地址,即待查看日志的容器的地址。
S1504:开发系统接收并显示应用标识对应所有的容器的IP地址。
S1505:开发系统接收用户输入的目标地址,并发送给HTTP Proxy。
开发系统将目标地址发送给HTTP Proxy。由于需要申请堡垒机服务,所以HTTPProxy需要根据目标地址申请堡垒机服务。
S1506:HTTP Proxy调用堡垒机服务,以使堡垒机服务根据目标地址,通过Kubernetes创建跳板机容器,并确定创建的跳板机容器的信息。
维护容器需要访问到容器中,开发系统可以通过堡垒机服务来访问要维护的容器,所以HTTP Proxy可以根据目标地址申请堡垒机服务,然后通调用堡垒机服务,以使堡垒机服务根据目标地址,通过容器管理系统创建跳板机容器,并确定出创建的跳板机容器的信息。跳板机容器的信息可以包括账号和密码。
HTTP Proxy在调用堡垒机服务之前,还可以对用户进行校验,以判断其是否具有维护权限。校验方式通常为通过开发系统获取用户的账户信息,判断账户信息是否具有应用标识对应容器的访问权限,若用户有访问权限,则执行调用堡垒机服务的流程;若用户没有访问权限,则可以停止执行,通过开发系统提示用户。
S1507:将跳板机容器的信息发送给至开发系统。
HTTP Proxy将跳板机容器的信息发送给开发系统,使开发系统可以通过跳板机容器的信息访问到目标地址对应的容器。
S1508:开发系统通过跳板机容器的信息连接跳板机容器,并通过跳板机容器访问目标地址对应的容器。
本步骤中,开发系统接收跳板机容器的信息后,可以通过跳板机容器的信息,使用SSH协议连接跳板机容器,并通过跳板机容器访问目标地址对应的容器。通过跳板机容器的信息访问目标地址对应的容器的方式可以如图16所示。
在开发系统访问目标地址对应的容器成功后,可以显示目标地址对应的容器的内容,从而实现对目标地址对应容器的维护。具体的,连接目标地址对应的容器的方式可以如图17所示。
本发明实施例中,开法系统还可以通过HTTP Proxy实现对部署应用的维护功能,从而实现在对部署应用的维护时,不需要切换到其他平台执行,提高应用维护的效率。
为了解决现有技术存在的问题,本发明实施例提供了一种部署应用的装置1800,设置于服务端,如图18所示,该装置1800包括:
接收单元1801,用于接收客户端发送的应用部署指令,所述应用部署指令包括待部署应用的应用标识;
确定单元1802,用于根据所述应用标识,从镜像中心确定目标基础镜像信息;
处理单元1803,用于接收所述客户端发送的操作指令,根据所述操作指令确定所述应用标识对应的应用代码,并根据所述目标基础镜像信息和所述应用代码构建应用镜像,根据所述应用镜像构建应用容器,以及发布所述应用容器。
应理解的是,实施本发明实施例的方式与实施图2所示实施例的方式相同,在此不再赘述。
本发明实施例的一种实现方式中,所述操作指令包括编译指令,所述编译指令包括编译信息;所述处理单元1803,具体用于:
从所述编译信息中确定编译类型;
若所述编译类型为上传编译,则将所述应用标识及其对应的应用代码上传至对象存储系统;
若所述编译类型为控制系统编译,则根据地址信息从代码库获取原始代码;通过调用容器管理系统,以使所述容器管理系统从镜像中心获取目标镜像,以构建编译容器,并在所述编译容器中对所述原始代码执行编译命令得出应用代码,将所述应用代码和所述应用标识上传至所述对象存储系统。
本发明实施例的又一种实现方式中,若所述编译类型为上传编译,则所述编译信息包括上传编译类型标识和与所述应用标识对应的应用代码;若所述编译类型为控制系统编译,则所述编译信息包括控制系统编译类型标识和所示地址信息。
本发明实施例的又一种实现方式中,所述操作指令包括应用镜像构建指令;所述处理单元1803,具体用于:
通过调用容器管理系统,以使所述容器管理系统根据所述目标基础镜像信息从对象存储系统中获取目标基础镜像,根据所述应用标识从所述对象存储系统中获取所述应用代码,并根据所述目标基础镜像信息和所述应用代码构建所述应用标识对应的应用镜像。
本发明实施例的又一种实现方式中,所述确定单元1802具体用于:
从镜像中心中,获取与所述应用标识对应的基础镜像信息列表;
向所述客户端发送所述基础镜像信息列表;
接收所述客户端发送的目标基础镜像信息,所述目标基础镜像信息为用户从所述基础镜像信息列表中确定的。
本发明实施例的又一种实现方式中,所述接收单元1801,还用于接收所述客户端发送的应用标识获取指令;
所述装置1800还包括:
获取单元,用于根据所述应用标识获取指令,从业务数据库中获取各个应用的标识;
发送单元,用于将所述各个应用的标识发送至所述客户端。
本发明实施例的又一种实现方式中,所述接收单元1801,还用于接收所述客户端发送的日志查看指令,所述日志查看指令包括所述应用标识;
所述装置1800还包括:
发送单元,用于从容器管理系统中,获取所述应用标识对应的容器的地址,并将所述应用标识对应的容器的地址发送至所述客户端;
所述接收单元1801,还用于接收所述客户端发送的目标地址;
所述发送单元,还用于从容器仓库中获取所述目标地址对应容器的日志文件列表,并将所述日志文件列表发送至所述客户端。
本发明实施例的又一种实现方式中,所述接收单元1801,还用于接收所述客户端发送的维护指令,所述维护指令包括所述应用标识;
所述装置1800还包括:
发送单元,用于获取所述应用标识对应容器的地址,并将所述应用标识对应容器的地址发送至所述客户端;
所述接收单元1801,还用于接收所述客户端发送的目标地址;
所述确定单元1802,还用于调用堡垒机服务,以使所述堡垒机服务根据所述目标地址,通过容器管理系统创建跳板机容器,并确定所述跳板机容器的信息;
所述发送单元,还用于将所述跳板机容器的信息发送给至所述客户端。
应理解的是,实施本发明实施例的方式与实施图2、图6、图12和图15所示实施例的方式相同,在此不再赘述。
本发明实施例中,本发明实施例中客户端可以通过服务端来实现应用部署,如此在客户端中完成应用开发后,可以通过服务端直接实现应用的部署,而不需要再切换到其他平台进行应用的部署,提高应用部署的效率。
为了解决现有技术存在的问题,本发明实施例提供了一种部署应用的装置1900,设置于客户端,如图19所示,该装置1900包括:
接收单元1901,用于接收用户输入的待部署应用的应用标识;
生成单元1902,用于根据所述应用标识生成应用部署指令;
发送单元1903,用于向服务端发送所述应用部署指令,所述应用部署指令包括所述应用标识;
所述接收单元1901,还用于接收所述用户发送的操作指令;
所述发送单元1903,还用于向所述服务端发送操作指令,所述操作指令包括编译指令、应用镜像构建指令和应用发布指令。
应理解的是,实施本发明实施例的方式与实施图3所示实施例的方式相同,在此不再赘述。
本发明实施例的一种实现方式中,所述发送单元1903,具体用于:
向所述服务端发送所述编译指令;
按照预设周期轮询所述服务端,判断所述服务端是否完成编译;
若是,则向所述服务端发送所述应用镜像构建指令;
按照所述预设周期轮询所述服务端,判断所述服务端是否完成应用镜像构建;
若是,则向所述服务端发送所述应用发布指令。
本发明实施例的又一种实现方式中,所述接收单元1901,还用于接收并显示所述服务端发送的、与所述应用标识对应的基础镜像信息列表;
所述接收单元1901,还用于接收用户输入的目标基础镜像信息,所述目标基础镜像信息属于所述基础镜像信息列表;
所述发送单元1903,还用于向所述服务端发送所述目标基础镜像信息。
本发明实施例的又一种实现方式中,所述接收单元1901,还用于接收用户输入的日志查看指令,所述日志查看指令包括所述应用标识;
所述发送单元1903,还用于向所述服务端发送所述日志查看指令;
所述接收单元1901,还用于接收并显示所述服务端发送的、所述应用标识对应容器的地址;
所述接收单元1901,还用于接收用户输入的目标地址,所述目标地址表示待查看日志的容器的地址;
所述发送单元1903,还用于向所述服务端发送所述目标地址;
所述接收单元1901,还用于接收并显示所述服务端发送的、所述目标地址对应容器的日志文件列表;
所述接收单元1901,还用于接收用户输入的目标日志文件;
所述装置1900还包括:
显示单元,用于根据所述目标日志文件,获取并显示所述目标日志文件的内容。
本发明实施例的又一种实现方式中,所述接收单元1901,还用于接收用户输入的维护指令,所述维护指令包括所述应用标识;
所述发送单元1903,还用于向所述服务端发送所述维护指令;
所述接收单元1901,还用于接收并显示所述服务端发送的、所述应用标识对应容器的地址;
所述接收单元1901,还用于接收用户输入的目标地址,所述目标地址表示待维护容器的地址;
所述发送单元1903,还用于向所述服务端发送所述目标地址;
所述接收单元1901,还用于接收所述服务端发送的跳板机容器的信息;
所述装置1900还包括:
访问单元,用于通过所述跳板机容器的信息,访问所述目标地址对应的容器,以对所述目标地址对应的容器进行维护。
应理解的是,实施本发明实施例的方式与实施图3、图6、图12和图15所示实施例的方式相同,在此不再赘述。
本发明实施例中,本发明实施例中客户端可以通过服务端来实现应用部署,如此在客户端中完成应用开发后,可以通过服务端直接实现应用的部署,而不需要再切换到其他平台进行应用的部署,提高应用部署的效率。
根据本发明的实施例,本发明还提供了一种电子设备和一种可读存储介质。
本发明的电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行本发明实施例所提供的部署应用的方法。
图20示出了可以应用本发明实施例的部署应用的方法或部署应用的装置的示例性系统架构2000。
如图20所示,系统架构2000可以包括终端设备2001、2002、2003,网络2004和服务器2005。网络2004用以在终端设备2001、2002、2003和服务器2005之间提供通信链路的介质。网络2004可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备2001、2002、2003通过网络2004与服务器2005交互,以接收或发送消息等。终端设备2001、2002、2003上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备2001、2002、2003可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器2005可以是提供各种服务的服务器,例如对用户利用终端设备2001、2002、2003所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的部署应用的方法一般由服务器2005执行,相应地,部署应用的装置一般设置于服务器2005中。本发明实施例所提供的部署应用的方法一般由终端设备2001、2002、2003执行,相应地,部署应用的装置一般设置于终端设备2001、2002、2003中。
应该理解,图20中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图21,其示出了适于用来实现本发明实施例的计算机系统2100的结构示意图。图21示出的计算机系统仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图21所示,计算机系统2100包括中央处理单元(CPU)2101,其可以根据存储在只读存储器(ROM)2102中的程序或者从存储部分2108加载到随机访问存储器(RAM)2103中的程序而执行各种适当的动作和处理。在RAM 2103中,还存储有系统2100操作所需的各种程序和数据。CPU 2101、ROM 2102以及RAM 2103通过总线2104彼此相连。输入/输出(I/O)接口2105也连接至总线2104。
以下部件连接至I/O接口2105:包括键盘、鼠标等的输入部分2106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分2107;包括硬盘等的存储部分2108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分2109。通信部分2109经由诸如因特网的网络执行通信处理。驱动器2110也根据需要连接至I/O接口2105。可拆卸介质2111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器2110上,以便于从其上读出的计算机程序根据需要被安装入存储部分2108。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分2109从网络上被下载和安装,和/或从可拆卸介质2111被安装。在该计算机程序被中央处理单元(CPU)2101执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段、或代码的一部分,上述单元、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、确定单元和处理单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收单元的功能的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行本发明所提供的部署应用的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (17)
1.一种部署应用的方法,其特征在于,应用于服务端,包括:
接收客户端发送的应用部署指令,所述应用部署指令包括待部署应用的应用标识;
根据所述应用标识,从镜像中心确定目标基础镜像信息;
接收所述客户端发送的操作指令,根据所述操作指令确定所述应用标识对应的应用代码,并根据所述目标基础镜像信息和所述应用代码构建应用镜像,根据所述应用镜像构建应用容器,以及发布所述应用容器。
2.根据权利要求1所述的方法,其特征在于,所述操作指令包括编译指令,所述编译指令包括编译信息;
所述根据所述操作指令确定所述应用标识对应的应用代码,包括:
从所述编译信息中确定编译类型;
若所述编译类型为上传编译,则将所述应用标识及其对应的应用代码上传至对象存储系统;
若所述编译类型为控制系统编译,则根据地址信息从代码库获取原始代码;通过调用容器管理系统,以使所述容器管理系统从镜像中心获取目标镜像,以构建编译容器,并在所述编译容器中对所述原始代码执行编译命令得出应用代码,将所述应用代码和所述应用标识上传至所述对象存储系统。
3.根据权利要求2所述的方法,其特征在于,若所述编译类型为上传编译,则所述编译信息包括上传编译类型标识和与所述应用标识对应的应用代码;
若所述编译类型为控制系统编译,则所述编译信息包括控制系统编译类型标识和所示地址信息。
4.根据权利要求1所述的方法,其特征在于,所述操作指令包括应用镜像构建指令;
所述根据所述目标基础镜像信息和所述应用代码构建所述应用标识对应的应用镜像,包括:
通过调用容器管理系统,以使所述容器管理系统根据所述目标基础镜像信息从对象存储系统中获取目标基础镜像,根据所述应用标识从所述对象存储系统中获取所述应用代码,并根据所述目标基础镜像信息和所述应用代码构建所述应用标识对应的应用镜像。
5.根据权利要求1所述的方法,其特征在于,所述根据所述应用标识,从镜像中心确定目标基础镜像信息,包括:
从镜像中心中,获取与所述应用标识对应的基础镜像信息列表;
向所述客户端发送所述基础镜像信息列表;
接收所述客户端发送的目标基础镜像信息,所述目标基础镜像信息为用户从所述基础镜像信息列表中确定的。
6.根据权利要求1所述的方法,其特征在于,所述接收客户端发送的应用部署指令之前,还包括:
接收所述客户端发送的应用标识获取指令;
根据所述应用标识获取指令,从业务数据库中获取各个应用的标识;
将所述各个应用的标识发送至所述客户端。
7.根据权利要求1所述的方法,其特征在于,在所述发布所述应用容器之后,还包括:
接收所述客户端发送的日志查看指令,所述日志查看指令包括所述应用标识;
从容器管理系统中,获取所述应用标识对应的容器的地址,并将所述应用标识对应的容器的地址发送至所述客户端;
接收所述客户端发送的目标地址;
从容器仓库中获取所述目标地址对应容器的日志文件列表,并将所述日志文件列表发送至所述客户端。
8.根据权利要求1所述的方法,其特征在于,在所述发布所述应用容器之后,还包括:
接收所述客户端发送的维护指令,所述维护指令包括所述应用标识;
获取所述应用标识对应容器的地址,并将所述应用标识对应容器的地址发送至所述客户端;
接收所述客户端发送的目标地址;
调用堡垒机服务,以使所述堡垒机服务根据所述目标地址,通过容器管理系统创建跳板机容器,并确定所述跳板机容器的信息;
将所述跳板机容器的信息发送给至所述客户端。
9.一种部署应用的方法,其特征在于,应用于客户端,包括:
接收用户输入的待部署应用的应用标识;
根据所述应用标识生成应用部署指令;
向服务端发送所述应用部署指令,所述应用部署指令包括所述应用标识;
接收所述用户发送的操作指令;
向所述服务端发送操作指令,所述操作指令包括编译指令、应用镜像构建指令和应用发布指令。
10.根据权利要求9所述的方法,其特征在于,所述向所述服务端发送操作指令,包括:
向所述服务端发送所述编译指令;
按照预设周期轮询所述服务端,判断所述服务端是否完成编译;
若是,则向所述服务端发送所述应用镜像构建指令;
按照所述预设周期轮询所述服务端,判断所述服务端是否完成应用镜像构建;
若是,则向所述服务端发送所述应用发布指令。
11.根据权利要求9所述的方法,其特征在于,在所述向所述服务端发送操作指令之前,还包括:
接收并显示所述服务端发送的、与所述应用标识对应的基础镜像信息列表;
接收用户输入的目标基础镜像信息,所述目标基础镜像信息属于所述基础镜像信息列表;
向所述服务端发送所述目标基础镜像信息。
12.根据权利要求9所述的方法,其特征在于,所述向所述服务端发送操作指令之后,还包括:
接收用户输入的日志查看指令,所述日志查看指令包括所述应用标识;
向所述服务端发送所述日志查看指令;
接收并显示所述服务端发送的、所述应用标识对应容器的地址;
接收用户输入的目标地址,所述目标地址表示待查看日志的容器的地址;
向所述服务端发送所述目标地址;
接收并显示所述服务端发送的、所述目标地址对应容器的日志文件列表;
接收用户输入的目标日志文件;
根据所述目标日志文件,获取并显示所述目标日志文件的内容。
13.根据权利要求9所述的方法,其特征在于,所述向所述服务端发送操作指令之后,还包括:
接收用户输入的维护指令,所述维护指令包括所述应用标识;
向所述服务端发送所述维护指令;
接收并显示所述服务端发送的、所述应用标识对应容器的地址;
接收用户输入的目标地址,所述目标地址表示待维护容器的地址;
向所述服务端发送所述目标地址;
接收所述服务端发送的跳板机容器的信息;
通过所述跳板机容器的信息,访问所述目标地址对应的容器,以对所述目标地址对应的容器进行维护。
14.一种部署应用的装置,其特征在于,设置于服务端,包括:
接收单元,用于接收客户端发送的应用部署指令,所述应用部署指令包括待部署应用的应用标识;
确定单元,用于根据所述应用标识,从镜像中心确定目标基础镜像信息;
处理单元,用于接收所述客户端发送的操作指令,根据所述操作指令确定所述应用标识对应的应用代码,并根据所述目标基础镜像信息和所述应用代码构建应用镜像,根据所述应用镜像构建应用容器,以及发布所述应用容器。
15.一种部署应用的装置,其特征在于,设置于客户端,包括:
接收单元,用于接收用户输入的待部署应用的应用标识;
生成单元,用于根据所述应用标识生成应用部署指令;
发送单元,用于向服务端发送所述应用部署指令,所述应用部署指令包括所述应用标识;
所述接收单元,还用于接收所述用户发送的操作指令;
所述发送单元,还用于向所述服务端发送操作指令,所述操作指令包括编译指令、应用镜像构建指令和应用发布指令。
16.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-13中任一所述的方法。
17.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-13中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010148161.0A CN113360160A (zh) | 2020-03-05 | 2020-03-05 | 部署应用的方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010148161.0A CN113360160A (zh) | 2020-03-05 | 2020-03-05 | 部署应用的方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113360160A true CN113360160A (zh) | 2021-09-07 |
Family
ID=77523727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010148161.0A Pending CN113360160A (zh) | 2020-03-05 | 2020-03-05 | 部署应用的方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360160A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023169272A1 (zh) * | 2022-03-07 | 2023-09-14 | 阿里巴巴(中国)有限公司 | 基于云应用的处理方法、电子设备和存储介质 |
CN117369953A (zh) * | 2023-12-08 | 2024-01-09 | 中电云计算技术有限公司 | 镜像同步方法、装置、设备及存储介质 |
CN117389690A (zh) * | 2023-12-08 | 2024-01-12 | 中电云计算技术有限公司 | 镜像包的构建方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017020770A1 (zh) * | 2015-07-31 | 2017-02-09 | 中兴通讯股份有限公司 | 基于lxc的持续集成方法及装置 |
CN106933635A (zh) * | 2017-03-15 | 2017-07-07 | 北京搜狐新媒体信息技术有限公司 | Docker镜像生成方法及Docker容器 |
US20180210715A1 (en) * | 2017-01-25 | 2018-07-26 | Wal-Mart Stores, Inc. | Systems, method, and non-transitory computer-readable storage media for generating code for displaying a webpage |
CN108958927A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 容器应用的部署方法、装置、计算机设备和存储介质 |
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
WO2019184164A1 (zh) * | 2018-03-30 | 2019-10-03 | 平安科技(深圳)有限公司 | 自动部署Kubernetes从节点的方法、装置、终端设备及可读存储介质 |
CN110399134A (zh) * | 2019-06-28 | 2019-11-01 | 绿漫科技有限公司 | 一种基于容器的快速部署方法及系统 |
-
2020
- 2020-03-05 CN CN202010148161.0A patent/CN113360160A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017020770A1 (zh) * | 2015-07-31 | 2017-02-09 | 中兴通讯股份有限公司 | 基于lxc的持续集成方法及装置 |
US20180210715A1 (en) * | 2017-01-25 | 2018-07-26 | Wal-Mart Stores, Inc. | Systems, method, and non-transitory computer-readable storage media for generating code for displaying a webpage |
CN106933635A (zh) * | 2017-03-15 | 2017-07-07 | 北京搜狐新媒体信息技术有限公司 | Docker镜像生成方法及Docker容器 |
WO2019184164A1 (zh) * | 2018-03-30 | 2019-10-03 | 平安科技(深圳)有限公司 | 自动部署Kubernetes从节点的方法、装置、终端设备及可读存储介质 |
CN108958927A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 容器应用的部署方法、装置、计算机设备和存储介质 |
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
CN110399134A (zh) * | 2019-06-28 | 2019-11-01 | 绿漫科技有限公司 | 一种基于容器的快速部署方法及系统 |
Non-Patent Citations (1)
Title |
---|
王匆捷;: "一种Docker CE环境下镜像仓库本地部署的方法", 信息化研究, no. 01, 20 February 2020 (2020-02-20) * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023169272A1 (zh) * | 2022-03-07 | 2023-09-14 | 阿里巴巴(中国)有限公司 | 基于云应用的处理方法、电子设备和存储介质 |
CN117369953A (zh) * | 2023-12-08 | 2024-01-09 | 中电云计算技术有限公司 | 镜像同步方法、装置、设备及存储介质 |
CN117389690A (zh) * | 2023-12-08 | 2024-01-12 | 中电云计算技术有限公司 | 镜像包的构建方法、装置、设备及存储介质 |
CN117389690B (zh) * | 2023-12-08 | 2024-03-15 | 中电云计算技术有限公司 | 镜像包的构建方法、装置、设备及存储介质 |
CN117369953B (zh) * | 2023-12-08 | 2024-03-15 | 中电云计算技术有限公司 | 镜像同步方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9563613B1 (en) | System and method for dynamic portable document file generation | |
US10516722B2 (en) | Mobile application system | |
US7950010B2 (en) | Software deployment system | |
CN114115852A (zh) | 可视化服务编排方法、装置、设备及介质 | |
US20130332524A1 (en) | Data service on a mobile device | |
CN113360160A (zh) | 部署应用的方法、装置、电子设备和存储介质 | |
US20140282398A1 (en) | Platform for developing and distributing mobile applications | |
US20140282357A1 (en) | Smart endpoint architecture | |
CN104657174A (zh) | 一种用于动态实现应用功能的方法和装置 | |
CN102185900A (zh) | 一种应用服务平台系统和一种开发应用服务的方法 | |
US10303463B2 (en) | Terminal management framework and terminal management method | |
CN111580820A (zh) | 一种小程序生成方法和装置 | |
KR101086620B1 (ko) | 스마트 오피스 시스템 및 운용을 위한 서버 및 운용 방법 | |
CN113076163A (zh) | 一种卡片渲染方法和装置 | |
CN113778404A (zh) | 一种页面生成方法和装置 | |
US20170308368A1 (en) | Preview and publishing of mobile applications | |
CN111752587A (zh) | 小程序的批量处理方法、装置、电子设备以及可读存储介质 | |
CN113014616B (zh) | 用于内容交付嵌入的分析内容网络 | |
CN113535220B (zh) | 一种代码包管理方法和装置 | |
US10949176B2 (en) | Automatic view generation based on annotations | |
US10291743B2 (en) | Configuring service endpoints in native client applications | |
CN107391132B (zh) | 目标App执行预设动作的方法及装置、设备 | |
CN102137058B (zh) | 一种基于tab页的页面访问方法和装置 | |
CN113254825A (zh) | 页面生成的方法、装置、电子设备和存储介质 | |
CN115080109A (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 |