Nothing Special   »   [go: up one dir, main page]

CN110647332A - 基于容器云的软件部署方法和装置 - Google Patents

基于容器云的软件部署方法和装置 Download PDF

Info

Publication number
CN110647332A
CN110647332A CN201910944226.XA CN201910944226A CN110647332A CN 110647332 A CN110647332 A CN 110647332A CN 201910944226 A CN201910944226 A CN 201910944226A CN 110647332 A CN110647332 A CN 110647332A
Authority
CN
China
Prior art keywords
software
image
deployment
container
testing
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
Application number
CN201910944226.XA
Other languages
English (en)
Inventor
贺龙华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910944226.XA priority Critical patent/CN110647332A/zh
Publication of CN110647332A publication Critical patent/CN110647332A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了基于容器云的软件部署方法和装置,可应用于云计算领域。所述方法的一实施例包括:响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像;基于预先确定的软件部署规模,创建虚拟容器;在所创建的虚拟容器上部署软件镜像。本申请的方案实现了根据软件部署规模的需求创建虚拟容器,并在所创建的虚拟容器上部署基于用户提交的软件代码构建的软件镜像,从而可以实现跨节点容器部署和软件部署。

Description

基于容器云的软件部署方法和装置
技术领域
本申请实施例涉及计算机领域,具体涉及云计算领域,尤其涉及基于容器云的软件部署方法和装置。
背景技术
容器(Container),是一种虚拟化技术。由于其仅对操作系统进行虚拟,而无需虚拟底层计算机,因而,与虚拟机相比,容器是一种轻量级并且更灵活的虚拟化处理方式。
在云计算、云服务领域应用的容器这一虚拟化技术,可称为容器云。在对提供云服务的容器进行软件部署时,现有技术通常通过预先搭建的集群中的控制节点向工作节点下发任务,并由工作节点进行软件的编译和安装。
发明内容
本申请实施例提出了基于容器云的软件部署方法和装置。
第一方面,本申请实施例提供了一种基于容器云的软件部署方法,包括:响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像;基于预先确定的软件部署规模,创建虚拟容器;在所创建的虚拟容器上部署软件镜像。
在一些实施例中,响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像,包括:响应于接收到软件集成请求,基于软件代码中的镜像构建脚本,构建与软件代码对应的软件镜像。
在一些实施例中,响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像,包括:响应于接收到软件集成请求,对用户提交的软件代码进行单元测试;基于软件代码中的镜像构建脚本,构建软件镜像。
在一些实施例中,方法还包括:将单元测试软件镜像发送至远程镜像存储单元。
在一些实施例中,在在所创建的虚拟容器上部署软件镜像之后,方法还包括:对所部署的软件镜像进行软件测试;监控软件测试的测试过程,以获得软件测试的监控数据。
在一些实施例中,软件测试包括以下至少一者:功能测试和压力测试。
第二方面,本申请实施例还提供了一种基于容器云的软件部署装置,包括:构建单元,被配置成响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像;虚拟容器创建单元,被配置成基于预先确定的软件部署规模,创建虚拟容器;部署单元,被配置成在所创建的虚拟容器上部署软件镜像。
在一些实施例中,构建单元进一步被配置成:响应于接收到软件集成请求,基于软件代码中的镜像构建脚本,构建与软件代码对应的软件镜像。
在一些实施例中,构建单元进一步被配置成:响应于接收到软件集成请求,对用户提交的软件代码进行单元测试;基于软件代码中的镜像构建脚本,构建软件镜像。
在一些实施例中,装置还包括发送单元,被配置成将单元测试软件镜像发送至远程镜像存储单元。
在一些实施例中,在在所创建的虚拟容器上部署软件镜像之后,装置还包括:软件测试单元,被配置成对所部署的软件镜像进行软件测试;监控单元,被配置成监控软件测试的测试过程,以获得软件测试的监控数据。
在一些实施例中,软件测试包括以下至少一者:功能测试和压力测试。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面描述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,程序被处理器执行时实现如第一方面描述的方法。
本申请实施例提供的基于容器云的软件部署方案,首先,响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像,接着,基于预先确定的软件部署规模,创建虚拟容器,接着,在所创建的虚拟容器上部署软件镜像,实现了根据软件部署规模的需求创建虚拟容器,并在所创建的虚拟容器上部署基于用户提交的软件代码构建的软件镜像,从而可以实现跨节点容器部署和软件部署。
进一步地,在一些实施例中,由于可以通过上述软件部署方案进行跨节点、大规模的容器部署和软件部署,可以对所部署的软件进行压力测试,并获得压力测试的监测数据。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请一个实施例的基于容器云的软件部署方法可以应用于其中的示例性系统架构图;
图2是根据本申请的基于容器云的软件部署方法的一个实施例的示意性流程图;
图3是根据本申请的基于容器云的软件部署方法的一个应用场景的示意图;
图4是根据本申请的基于容器云的软件部署方法的另一个实施例的示意性流程图;
图5是根据本申请的基于容器云的软件部署方法的另一个应用场景的示意图;
图6是根据本申请的基于容器云的软件部署装置的一个实施例的示意性结构图;
图7是适于用来实现本申请实施例的基于容器云的软件部署方法的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的基于容器云的软件部署方法或基于容器云的软件部署装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和云服务器集群105。网络104用以在终端设备101、102、103和云服务器集群105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户110可以使用终端设备101、102、103通过网络104与云服务器集群105交互,以向云服务器集群105接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用,例如搜索类应用、问答类应用等。
终端设备101、102、103可以是具有屏幕的各种电子设备,包括但不限于智能手机、平板电脑、智能手表和膝上型便携计算机等等。
云服务器集群105可以是提供各种服务的服务器集群。云服务器集群中可以包括多个物理服务器,并且,这些物理服务器上可以搭载有虚拟容器。云服务器集群105可以对用户通过终端设备101、102、103发送的数据请求进行响应,并向终端设备101、102、103反馈数据请求的执行结果。
在云服务器集群105中,可以具有至少一个控制节点105a和多个执行节点105b。控制节点105a可以向执行节点105b发送指令,以控制执行节点105b执行相应的指令。例如,控制节点105a可以向执行节点105b发送软件部署指令,以使执行节点105b进行软件部署。
需要说明的是,本申请实施例所提供的基于容器云的软件部署方法一般由云服务器集群105中的控制节点105a执行。相应地,基于容器云的软件部署装置一般设置于云服务器集群105中的控制节点105a中。
应该理解,图1中的终端设备、网络和云服务器集群的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和云服务器集群。并且,云服务器集群中所包含的物理服务器和各物理服务器上所搭载的虚拟容器的数量也可以是任意的。
继续参考图2,其示出了根据本申请的基于容器云的软件部署方法的一个实施例的流程200。
该基于容器云的软件部署方法,包括以下步骤:
步骤201,响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像。
在云计算领域,通常存在大量的、频繁的软件更新需求。相应地,为了提升软件开发的效率,通常由多名开发人员合作开发。也即,各开发人员均可以提交其自身编写的代码,并对代码进行编译和发布。该场景通常称为软件的持续集成(ContinuousIntegration,CI)。
在CI场景下,开发人员完成代码编写后,可以向执行主体(例如,图1所示的控制节点105a)发送软件集成请求。执行主体在接收到软件集成请求之后,可以根据该请求的发送方进行鉴权,以确认请求的发送方是否具有软件集成的权限。若执行主体确定请求的发送方具有软件集成的权限,发送方可以上传其软件代码,例如,发送方可以将软件代码上传至预先建立的代码数据库。
可以理解的是,上述预先建立的代码数据库可以设置于执行主体本地,或者,也可以设置于与执行主体通信连接的其它电子设备上。
在接收到用户提交的软件代码之后,执行主体可以对所提交的软件代码进行编译,从而生成对应于该软件代码的软件镜像。
在一些可选的实现方式中,用户提交的软件代码中包括了构建脚本(例如,buildimage脚本)。这样一来,在接收到软件集成请求之后,执行主体可以基于设置在软件代码中的构建脚本来对用户提交的软件代码进行编译,从而得到相应的软件镜像。
步骤202,基于预先确定的软件部署规模,创建虚拟容器。
在这里,软件部署规模,可以理解为分布式系统中,需要进行软件部署的虚拟容器的数量。
可以理解的是,在一些可选的实现方式中,软件部署规模可以是软件开发人员在发送软件集成请求时指定的。或者,在另一些可选的实现方式中,软件部署规模也可以是与用户提交的软件代码所应用的云服务的类型相关联的。
此外,在本步骤中,若在分布式系统中,当前虚拟容器的数量少于预先确定的软件部署规模所指示的虚拟容器的数量,执行主体可以进行虚拟容器的创建,从而满足软件部署规模的需求。
在这里,可以采用已有的(例如Swarm或kubernetes)或者待未来开发的技术来进行虚拟容器的创建。
步骤203,在所创建的虚拟容器上部署软件镜像。
在步骤202中,执行主体已根据软件部署规模创建了虚拟容器,本步骤中,可以将经步骤201创建得到的软件镜像进一步向这些虚拟容器部署。
将软件镜像向虚拟容器的部署过程类似于在物理机上进行软件安装的过程。在完成软件镜像在虚拟容器上的部署之后,该软件镜像便可以向用户提供相应的服务。
在以容器(例如,docker)模式部署的云服务系统中,在持续集成的过程中,现有技术通常仅能基于物理机或虚拟机进行部署。因而,现有技术无法解决软件在CI过程中需要构建容器、以及容器较大规模部署的需求。例如,现有技术中,通常通过搭建Jenkins集群来执行CI流程。具体地,过Jenkins的控制节点下发任务给工作节点,由工作节点进行软件的编译、安装。然而,Jenkins本身无法支持docker容器编排部署,更无法跨主机大规模部署容器。
本申请实施例提供的基于容器云的软件部署方案,首先,响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像,接着,基于预先确定的软件部署规模,创建虚拟容器,接着,在所创建的虚拟容器上部署软件镜像,实现了根据软件部署规模的需求创建虚拟容器,并在所创建的虚拟容器上部署基于用户提交的软件代码构建的软件镜像,从而可以实现跨节点容器部署和软件部署。
继续参见图3,图3是根据本实施例的基于容器云的软件部署方法的应用场景的一个示意图300。
在图3所示的应用场景中,开发者首先可以向代码仓库302(gitlab)提交软件代码,如附图标记301所示。接着,利用代码仓库302中的构建脚本,可以对软件代码进行编译,从而构建得到docker镜像,如附图标记303所示。接着,基于预先确定的部署规模(例如,由开发者指定的部署规模,或者由代码所对应的的云服务的服务类型确定的部署规模),创建虚拟容器,如附图标记304所示。在这里,例如,可以使用kubernetes工具来进行虚拟容器的创建。接着,可以在所创建的虚拟容器中进行docker镜像的部署。
参见图4所示,为本申请的基于容器云的软件部署方法的另一个实施例的示意性流程400。
该基于容器云的软件部署方法,包括以下步骤:
步骤401,响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像。
步骤402,基于预先确定的软件部署规模,创建虚拟容器。
步骤403,在所创建的虚拟容器上部署软件镜像。
上述的步骤401~步骤403可分别按照与图2所示的实施例中的步骤201~步骤203类似的方式执行,在此不再赘述。
与图2所示的实施例不同的是,本实施例的基于容器云的软件部署方法还可以进一步包括如下的步骤404和步骤405。
步骤404,对所部署的软件镜像进行软件测试。
本步骤中,对软件镜像进行的软件测试例如可以包括功能测试和压力测试。
在这里,功能测试例如可以指通过测试,来判断软件镜像是否能够达到其声称的各项功能的测试过程。此外,压力测试例如可以指,通过测试,可以确定出能够运行软件镜像的系统资源(例如,包括但不限于系统内存、CPU、磁盘空间和/或网络带宽等)的极端情形。
步骤405,监控软件测试的测试过程,以获得软件测试的监控数据。
由于通过上述步骤401~步骤403,可以在虚拟容器上进行软件镜像的部署,使得编译得到的软件镜像可以部署于分布式环境中。由此,通过如上的步骤404和步骤405,可以在分布式环境下对软件镜像进行功能性测试和压力测试,进而可以基于对功能性测试和压力测试的监控数据的分析来确定该软件镜像对分布式系统的资源损耗。
由此,与图2所示的实施例相比,本实施例可以在创建的虚拟容器中进行软件镜像的部署之后,进一步对部署于分布式环境下的软件镜像进行功能性测试和压力测试,从而可以根据方便地根据对功能性测试和压力测试的监控数据的分析,来确定该软件镜像对分布式系统的资源损耗。
此外,在本申请各实施例的一些可选的实现方式中,在步骤201和步骤401的响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像之后,本申请的基于容器云的软件部署方法还可以进一步包括:
对所构建的软件镜像进行单元测试。
相应地,步骤203和步骤403的在所创建的虚拟容器上部署软件镜像,可以进一步包括:在所创建的虚拟容器上部署经单元测试后的软件镜像。
在这些可选的实现方式中,在完成软件镜像的构建之后,可以对得到的软件进行单元测试,从而确定所构建的软件镜像的代码覆盖率。在这里,代码覆盖率可以理解为代码被测试的比例和程度,通过单元测试,可以确定出构建得到的软件镜像中,能够被测试到的代码比例。
相应地,在步骤203和步骤403中所部署的软件镜像,则为经单元测试之后的软件镜像。
此外,在本申请各实施例的一些可选的实现方式中,可以将构建得到的软件镜像发送至远程镜像存储单元进行存储。
可以理解的是,在这些可选的实现方式的一些应用场景中,若在构建软件镜像之后进一步对所构建的软件镜像进行了单元测试,则可以将经单元测试之后的软件镜像发送至远程镜像存储单元。
下面进一步参见图5所示,其示出了本申请的基于容器云的软件部署方法的另一个应用场景的示意图。
在图5所示的应用场景中,示意性地示出了分布式系统中的软件服务以docker容器模式部署,采用Jenkins集群来进行软件镜像的持续集成,并且,采用kubernetes工具来进行软件镜像在docker容器中的部署和测试。
具体地,首先,如附图标记501所示,开发者向代码仓库502提交代码,从而触发Jenkis的CI流水线。
接着,如附图标记503所示,Jenkins的CI流水线开始运行代码当中的单元测试,保证代码测试的覆盖率。
接着,如附图标记504所示,Jenkins的CI流水线根据代码当中的build image脚本,构建docker镜像。
接着,如附图标记505所示,流水线继续推送镜像至远程镜像中心(docker Hub)506。
接着,如附图标记507所示,流水线开始更新Kubernetes的配置。例如,流水线可以更新Kubernetes中的yaml配置文件,从而确定软件镜像的部署规模。
接着,如附图标记508所示,Kubernetes根据软件镜像的部署规模开始创建虚拟容器,并在所创建的虚拟容器中部署软件镜像。接着,可以对所创建的虚拟容器进行健康存活检查(如附图标记509所示)。
接着,部署完成之后,流水线可以开始进行功能测试(如附图标记510所示)与压力测试(如附图标记511所示)。
接着,如附图标记512所示,可以从Kubernetes监控应用中取回功能测试和压力测试的监控数据。由此,便实现了软件持续集成过程中,软件镜像的跨容器、可扩容式部署,并且还可以对部署后的软件镜像进行功能测试和分布式环境下的压力测试,从而可以进一步利用功能测试和压力测试的监控数据来分析软件镜像对操作系统的资源损耗。
作为对上述各图所示方法的实现,本申请提供了一种基于容器云的软件部署装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的基于容器云的软件部署装置600包括构建单元601、虚拟容器创建单元602和部署单元603。
构建单元601可被配置成响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像。
虚拟容器创建单元602可被配置成基于预先确定的软件部署规模,创建虚拟容器。
部署单元603,可被配置成在所创建的虚拟容器上部署软件镜像。
在一些可选的实现方式中,构建单元601可进一步被配置成:响应于接收到软件集成请求,基于软件代码中的镜像构建脚本,构建与软件代码对应的软件镜像。
在一些可选的实现方式中,构建单元601可进一步被配置成:响应于接收到软件集成请求,对用户提交的软件代码进行单元测试;基于软件代码中的镜像构建脚本,构建软件镜像。
在一些可选的实现方式中,本实施例的基于容器云的软件部署装置还可以包括:发送单元(图中未示出)。
在这些可选的实现方式中,发送单元可被配置成将单元测试软件镜像发送至远程镜像存储单元。
在一些可选的实现方式中,在在所创建的虚拟容器上部署软件镜像之后,装置还包括:软件测试单元,被配置成对所部署的软件镜像进行软件测试;监控单元,被配置成监控软件测试的测试过程,以获得软件测试的监控数据。
在一些可选的实现方式中,软件测试包括以下至少一者:功能测试和压力测试。
下面参考图7,其示出了适于用来实现本申请实施例的基于容器云的软件部署方法的电子设备的计算机系统700的结构示意图。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括一个或多个处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分706加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括硬盘等的存储部分706;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分707。通信部分707经由诸如因特网的网络执行通信处理。驱动器708也根据需要连接至I/O接口705。可拆卸介质709,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器708上,以便于从其上读出的计算机程序根据需要被安装入存储部分706。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分707从网络上被下载和安装,和/或从可拆卸介质709被安装。在该计算机程序被处理器701执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括构建单元、虚拟容器创建单元以及部署单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,构建单元还可以被描述为“响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像;基于预先确定的软件部署规模,创建虚拟容器;在所创建的虚拟容器上部署软件镜像。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种基于容器云的软件部署方法,包括:
响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像;
基于预先确定的软件部署规模,创建虚拟容器;
在所创建的虚拟容器上部署所述软件镜像。
2.根据权利要求1所述的方法,其中,所述响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像,包括:
响应于接收到软件集成请求,基于所述软件代码中的镜像构建脚本,构建与所述软件代码对应的软件镜像。
3.根据权利要求1所述的方法,其中,所述响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像,包括:
响应于接收到软件集成请求,对用户提交的软件代码进行单元测试;
基于所述软件代码中的镜像构建脚本,构建所述软件镜像。
4.根据权利要求2或3所述的方法,其中,所述方法还包括:
将所述软件镜像发送至远程镜像存储单元。
5.根据权利要求1所述的方法,其中,在所述在所创建的虚拟容器上部署所述软件镜像之后,所述方法还包括:
对所部署的软件镜像进行软件测试;
监控所述软件测试的测试过程,以获得所述软件测试的监控数据。
6.根据权利要求5所述的方法,其中,所述软件测试包括以下至少一者:
功能测试和压力测试。
7.一种基于容器云的软件部署装置,包括:
构建单元,被配置成响应于接收到软件集成请求,基于用户提交的软件代码,构建软件镜像;
虚拟容器创建单元,被配置成基于预先确定的软件部署规模,创建虚拟容器;
部署单元,被配置成在所创建的虚拟容器上部署所述软件镜像。
8.根据权利要求7所述的装置,其中,所述构建单元进一步被配置成:
响应于接收到软件集成请求,基于所述软件代码中的镜像构建脚本,构建与所述软件代码对应的软件镜像。
9.根据权利要求7所述的装置,其中,所述构建单元进一步被配置成:
响应于接收到软件集成请求,对用户提交的软件代码进行单元测试;
基于所述软件代码中的镜像构建脚本,构建所述软件镜像。
10.根据权利要求8或9所述的装置,其中,所述装置还包括:
发送单元,被配置成将所述软件镜像发送至远程镜像存储单元。
11.根据权利要求7所述的装置,其中,在所述在所创建的虚拟容器上部署所述软件镜像之后,所述装置还包括:
软件测试单元,被配置成对所部署的软件镜像进行软件测试;
监控单元,被配置成监控所述软件测试的测试过程,以获得所述软件测试的监控数据。
12.根据权利要求11所述的装置,其中,所述软件测试包括以下至少一者:
功能测试和压力测试。
13.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201910944226.XA 2019-09-30 2019-09-30 基于容器云的软件部署方法和装置 Pending CN110647332A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910944226.XA CN110647332A (zh) 2019-09-30 2019-09-30 基于容器云的软件部署方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910944226.XA CN110647332A (zh) 2019-09-30 2019-09-30 基于容器云的软件部署方法和装置

Publications (1)

Publication Number Publication Date
CN110647332A true CN110647332A (zh) 2020-01-03

Family

ID=69012347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910944226.XA Pending CN110647332A (zh) 2019-09-30 2019-09-30 基于容器云的软件部署方法和装置

Country Status (1)

Country Link
CN (1) CN110647332A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111399897A (zh) * 2020-02-21 2020-07-10 北京值得买科技股份有限公司 基于kubernetes的应用发布方法以及系统
CN111459576A (zh) * 2020-03-31 2020-07-28 北京九章云极科技有限公司 一种数据分析处理系统和模型运行方法
CN111538660A (zh) * 2020-04-24 2020-08-14 中国工商银行股份有限公司 云上容器内程序代码覆盖率统计方法及装置
CN112114813A (zh) * 2020-09-17 2020-12-22 四川长虹电器股份有限公司 一种基于流水线的yaml脚本自动生成方法
CN112256287A (zh) * 2020-10-21 2021-01-22 武汉悦学帮网络技术有限公司 一种应用部署方法及装置
CN112711411A (zh) * 2020-12-22 2021-04-27 宝付网络科技(上海)有限公司 一种基于Kubernetes及docker的CI/CD流水线系统
CN113835827A (zh) * 2021-08-18 2021-12-24 微梦创科网络科技(中国)有限公司 基于容器Docker的应用部署方法、装置及电子设备
CN114048170A (zh) * 2021-10-20 2022-02-15 北京鲸鲮信息系统技术有限公司 跨容器搜索文件的方法、装置、设备和介质
CN114296871A (zh) * 2021-12-22 2022-04-08 华人运通(上海)云计算科技有限公司 基于容器的持续集成方法、装置、系统及工作节点和介质
CN116635917A (zh) * 2020-10-13 2023-08-22 埃尔构人工智能有限责任公司 用于改进的智能设施数据传送的系统和方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108958927A (zh) * 2018-05-31 2018-12-07 康键信息技术(深圳)有限公司 容器应用的部署方法、装置、计算机设备和存储介质
CN109032806A (zh) * 2018-07-30 2018-12-18 华为技术有限公司 容器的服务调度方法和装置
CN109144880A (zh) * 2018-09-06 2019-01-04 北京京东尚科信息技术有限公司 镜像文件的管理方法及系统、设备、存储介质
CN109814879A (zh) * 2019-01-16 2019-05-28 福建省天奕网络科技有限公司 自动化ci/cd项目部署方法、存储介质
US10389582B1 (en) * 2015-11-23 2019-08-20 Pivotal Software, Inc. Light-weight cloud application platform
CN110221859A (zh) * 2019-06-05 2019-09-10 软通智慧科技有限公司 一种应用的部署上线管理方法、装置、设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10389582B1 (en) * 2015-11-23 2019-08-20 Pivotal Software, Inc. Light-weight cloud application platform
CN108958927A (zh) * 2018-05-31 2018-12-07 康键信息技术(深圳)有限公司 容器应用的部署方法、装置、计算机设备和存储介质
CN109032806A (zh) * 2018-07-30 2018-12-18 华为技术有限公司 容器的服务调度方法和装置
CN109144880A (zh) * 2018-09-06 2019-01-04 北京京东尚科信息技术有限公司 镜像文件的管理方法及系统、设备、存储介质
CN109814879A (zh) * 2019-01-16 2019-05-28 福建省天奕网络科技有限公司 自动化ci/cd项目部署方法、存储介质
CN110221859A (zh) * 2019-06-05 2019-09-10 软通智慧科技有限公司 一种应用的部署上线管理方法、装置、设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
佚名: "实际操作git+jenkins+k8s 自动化部署运维,建议收藏", 《HTTPS://WWW.163.COM/DY/ARTICLE/EOALT5HF0518HB6D.HTML》 *
张新朝等: "基于OpenStack云平台虚拟集群环境的部署", 《闽南师范大学学报(自然科学版)》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111399897A (zh) * 2020-02-21 2020-07-10 北京值得买科技股份有限公司 基于kubernetes的应用发布方法以及系统
CN111459576A (zh) * 2020-03-31 2020-07-28 北京九章云极科技有限公司 一种数据分析处理系统和模型运行方法
CN111538660A (zh) * 2020-04-24 2020-08-14 中国工商银行股份有限公司 云上容器内程序代码覆盖率统计方法及装置
CN111538660B (zh) * 2020-04-24 2023-09-26 中国工商银行股份有限公司 云上容器内程序代码覆盖率统计方法及装置
CN112114813A (zh) * 2020-09-17 2020-12-22 四川长虹电器股份有限公司 一种基于流水线的yaml脚本自动生成方法
CN116635917A (zh) * 2020-10-13 2023-08-22 埃尔构人工智能有限责任公司 用于改进的智能设施数据传送的系统和方法
US12061893B2 (en) 2020-10-13 2024-08-13 Argo AI, LLC Systems and methods for improved smart infrastructure data transfer
CN112256287A (zh) * 2020-10-21 2021-01-22 武汉悦学帮网络技术有限公司 一种应用部署方法及装置
CN112711411A (zh) * 2020-12-22 2021-04-27 宝付网络科技(上海)有限公司 一种基于Kubernetes及docker的CI/CD流水线系统
CN112711411B (zh) * 2020-12-22 2024-02-23 宝付网络科技(上海)有限公司 一种基于Kubernetes及docker的CI/CD流水线系统
CN113835827A (zh) * 2021-08-18 2021-12-24 微梦创科网络科技(中国)有限公司 基于容器Docker的应用部署方法、装置及电子设备
CN114048170A (zh) * 2021-10-20 2022-02-15 北京鲸鲮信息系统技术有限公司 跨容器搜索文件的方法、装置、设备和介质
CN114048170B (zh) * 2021-10-20 2024-04-02 北京字节跳动网络技术有限公司 跨容器搜索文件的方法、装置、设备和介质
CN114296871A (zh) * 2021-12-22 2022-04-08 华人运通(上海)云计算科技有限公司 基于容器的持续集成方法、装置、系统及工作节点和介质

Similar Documents

Publication Publication Date Title
CN110647332A (zh) 基于容器云的软件部署方法和装置
CN109358858B (zh) 自动化部署方法、装置、介质及电子设备
US10841185B2 (en) Platform-integrated IDE
CN108196915B (zh) 基于应用容器引擎的代码处理方法、设备及存储介质
US20190155721A1 (en) Automated integration testing with mock microservices
US10430172B2 (en) Re-configuration in cloud computing environments
EP3332309B1 (en) Method and apparatus for facilitating a software update process over a network
US10977167B2 (en) Application monitoring with a decoupled monitoring tool
CN112685035B (zh) 项目开发方法及装置、计算机可读存储介质、电子设备
US20120005346A1 (en) Hypervisor selection for hosting a virtual machine image
CN111832736A (zh) 用于处理机器学习模型的方法、设备和计算机程序产品
US20180322037A1 (en) Impersonation in test automation
US8914673B2 (en) Distributed testing within a serial testing infrastructure
CN111176818B (zh) 分布式预测的方法、装置、系统、电子设备及存储介质
CN109901985B (zh) 分布式测试装置及方法、存储介质和电子设备
CN113934426A (zh) 软件包处理方法、装置、系统、设备及介质
CN110727575B (zh) 一种信息处理方法、系统、装置、以及存储介质
US9141363B2 (en) Application construction for execution on diverse computing infrastructures
CN109753300B (zh) 一种算法升级方法、计算任务发送方法及相关装置
CN113377665B (zh) 基于容器技术的测试方法、装置、电子设备及存储介质
CN117337429A (zh) 部署机器学习模型
CN113127009A (zh) 大数据管理平台的自动化部署方法和装置
CN114968477A (zh) 容器热迁移方法及容器热迁移装置
CN114072765A (zh) 用于基于容器的虚拟化系统的方法
CN114816672A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200103