CN116940924A - 计算环境中的应用程序部署 - Google Patents

计算环境中的应用程序部署 Download PDF

Info

Publication number
CN116940924A
CN116940924A CN202280013444.1A CN202280013444A CN116940924A CN 116940924 A CN116940924 A CN 116940924A CN 202280013444 A CN202280013444 A CN 202280013444A CN 116940924 A CN116940924 A CN 116940924A
Authority
CN
China
Prior art keywords
computing environment
cloud computing
function
functional
deployment
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
CN202280013444.1A
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN116940924A publication Critical patent/CN116940924A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

在一种方法中,处理器响应于检测到新的客户资源(CR)文件:请求计算环境在计算环境中部署多个功能部署组件,其中:所述CR文件指示应用程序的多个功能的信息;所述多个功能部署组件请求所述计算环境在所述计算环境中部署多个功能组件;并且所述多个功能组件执行所述应用程序的所述多个功能;确定所述多个功能组件中的每个功能组件已被部署在所述计算环境中;以及响应于确定所述多个功能组件中的每个功能组件已被部署在所述计算环境中,请求所述计算环境删除所述多个部署的功能部署组件中的每个。

Description

计算环境中的应用程序部署
背景技术
本发明总体上涉及云计算技术领域,并且更具体地涉及云计算环境中的应用程序部署。
云计算环境(如Kubernetes或其他云计算环境)在当今被广泛使用。越来越多的应用程序可能需要部署在云计算环境中。此外,由这些应用程序所使用的信息技术(IT)架构也可以被移动到现代云计算环境。
当前解决方案的缺点是使用单个运营商和单个客户资源。不支持多个线程并且顺序地处理角色,从而导致耗时的部署。
发明内容
根据本发明的一些实施例,提供了一种计算机实现的方法、计算机程序产品和计算机系统。处理器,响应于检测到新的客户资源(CR)文件:请求,所述计算环境在所述计算环境中部署多个功能部署组件,其中:所述CR文件指示应用程序的多个功能的信息;所述多个功能部署组件请求所述计算环境在所述计算环境中部署多个功能组件;并且所述多个功能组件执行所述应用程序的所述多个功能;确定所述多个功能组件中的每个功能组件已被部署在所述计算环境中;以及响应于确定所述多个功能组件中的每个功能组件已被部署在所述计算环境中,请求所述计算环境删除所述多个部署的功能部署组件中的每个。这样的方法具有并行执行和减少的部署时间的益处。
本发明的实施例可选地包括一种其中计算环境是云计算环境的方法。这样的方法具有在云计算环境中实现并行执行和减少部署时间的益处。
附图说明
通过在附图中对本公开的一些实施例的更详细的描述,本公开的以上和其他目的、特征以及优点将变得更加清楚,其中相同的参考总体上指代本公开的实施例中的相同的组件。附图的不同特征不是按比例的,因为图解是为了便于本领域技术人员结合详细描述理解本公开。下面立即讨论附图。
图1描绘了根据本公开的一些实施例的云计算节点。
图2描绘了根据本公开的一些实施例的云计算环境。
图3描绘了根据本公开的一些实施例的抽象模型层。
图4描绘了根据本公开的一些实施例的用于部署应用程序的云计算环境的示意图。
图5描绘了根据本公开的一些实施例的有待部署在云计算环境中的示例应用程序以及包括在该应用程序中的功能之间的对应的依赖关系。
图6描绘了根据本公开的一些实施例的用于示例应用程序的示例客户资源(CR)文件。
图7描绘了根据本公开的一些实施例的用于部署应用程序的云计算环境的示意图。
图8描绘了根据本公开的一些实施例的用于部署应用程序的云计算环境的抽象示意图。
图9描绘了根据本公开的一些实施例的用于云计算环境中的应用程序部署的方法的流程图。
图10描绘了根据本公开的一些实施例的作为图9中所示方法的一部分的方法的流程图。
具体实施方式
现在将参考附图详细描述本发明的实施例。
提供参照附图的以下描述以帮助全面理解如权利要求书及其等效物所定义的本发明的示例性实施例。其包括各种具体细节以帮助理解,但这些细节将被视为仅是示例性的。因此,本领域的普通技术人员将认识到,在不脱离本发明的范围的情况下,可以对在此描述的实施例进行不同改变和修改。此外,为了清楚和简明,可省略对公知功能和结构的描述。
在下文中,参考本发明的各个实施例。然而,应当理解,本发明不限于具体描述的实施例。相反,以下特征和元件的任何组合(无论是否涉及不同实施例)被考虑来实现和实践本发明。此外,尽管实施例可以实现优于其他可能的解决方案和/或优于现有技术的优点,但是无论给定实施例是否实现特定优点都不是限制性的。因此,以下方面、特征、实施例和优点仅仅是说明性的,并且不被认为是所附权利要求的元素或限制,除非在权利要求中明确陈述。同样,对“本发明”的引用不应被解释为在此所公开的任何发明主题的概括,并且不应被认为是所附权利要求的元素或限制,除非在权利要求中明确陈述。
在以下描述和权利要求中使用的术语和词语不限于书目含义,而是仅用于使得能够清楚和一致地理解本发明。因此,对本领域技术人员显而易见的是,提供本发明的示例性实施方式的以下描述仅用于说明的目的,而不是用于限制由所附权利要求及其等同物限定的本发明的目的。
应当理解的是,除非上下文另外明确规定,否则单数形式“一个”、“一种”和“该”包括复数指示物。因此,例如,除非上下文另外明确规定,否则提及“部件表面”包括提及一个或多个这种表面。
应当理解的是,尽管本公开包括关于云计算的详细描述,但本文所叙述的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务交付模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,可配置计算资源的共享池)。网络、网络带宽、服务器、处理、存储器、存储、应用程序、虚拟机和服务),其能够以最小的管理努力或与服务的提供商的交互快速地供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助服务:云消费者可以根据需要自动地单方面地配设计算能力,如服务器时间和网络存储,而无需与服务的提供商进行人类交互。
广泛的网络接入:能力可通过网络获得并且通过促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上计算机、和PDA)使用的标准机制访问。
资源池:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要被动态地分配和重新分配。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:可以快速和弹性地提供能力(在一些情况下,自动地)以快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量服务:云系统通过在适合于服务类型(例如,存储、处理、带宽、和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供商的应用程序。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用程序。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用程序能力的底层云基础设施,可能的例外是有限的用户特定应用程序配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用程序部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用程序和可能的应用程序托管环境配置具有控制。
基础设施即服务(IaaS):向消费者提供的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用程序。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用程序的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享并且支持已经共享关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:使云基础架构可用于普通公众或大型行业团体并且由出售云服务的组织拥有。
混合云:云基础设施是两个或更多个云(私有云、社区云、或公共云)的组合,这些云保持唯一实体但通过使数据和应用程序能够移植的标准化技术或私有技术(例如,用于云之间的负载平衡的云突发技术)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图1,示出了云计算节点的实例的示意图。云计算节点10仅仅是合适的云计算节点的一个示例,并不旨在对本文所述的本公开的实施例的使用范围或功能提出任何限制。无论如何,云计算节点10能够被实现和/或执行上文阐述的任何功能。
在云计算节点10中,存在计算机系统/服务器12或诸如通信设备的便携式电子设备,其可与许多其他通用或专用计算系统环境或配置一起操作。可以适用于计算机系统/服务器12的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统和包括上述任何系统或设备的分布式云计算环境等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(如程序模块)的一般背景下进行描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器12可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28和将包括系统存储器28的不同系统组件耦合到处理器16的总线18。
总线18表示若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器12访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅通过示例的方式,存储系统34可以被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)中读取和向其写入。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。在这样的情况下,每一个可以通过一个或多个数据介质接口连接到总线18。如以下将进一步描绘和描述的,存储器28可以包括具有被配置成用于执行本公开的实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
具有一组(至少一个)程序模块42的程序/实用程序40、以及操作系统、一个或多个应用程序、其他程序模块、和程序数据可以通过举例而非限制的方式存储在存储器28中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序模块42通常执行如本文所述的本公开的实施例的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(如键盘、定点设备、显示器24等)通信;和/或使得计算机系统/服务器12能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可经由输入/输出(I/O)接口22进行。此外,计算机系统/服务器12可以通过网络适配器20与一个或多个网络通信,例如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如互联网)。如图所示,网络适配器20通过总线1 8与计算机系统/服务器12的其他组件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器和数据归档存储系统等。
现在参见图2,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图2中所示的计算设备54A-N的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参见图3,示出了由云计算环境50(图2)提供的一组功能抽象层。应提前理解,图3中所示的组件、层和功能仅旨在是说明性的,并且本公开的实施方式不限于此。如所描述,提供以下层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下所描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行85提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;事务处理95;以及应用程序部署96。
应用程序可以包括多个功能(也称为组件、子系统)。现在,越来越多的服务提供商想要将他们的应用程序部署在云计算环境中,以使得部署在云计算环境上的应用程序能够被用户访问。通常,应用程序的功能可以部署在云计算环境的容器中,并且由于可以将其作为基本服务进行访问,因此所部署的功能也称为服务或微服务。共享相同命名空间/网络/UTS(UNIX时间共享)/PID(进程标识符)的一组容器(包括诸如日志收集器、Git文件提取器等)可以包括在POD中,POD是由诸如Kubemetes的一些云计算环境使用的最小可调度原子单元。然而,一些云计算环境可以使用容器作为最小的可调度原子单元。
图4描绘了用于部署应用程序的现有示例云计算环境400的示意图。这里,容器是指云计算环境400中的容器实例,容器实例是镜像的实例。需要说明的是,虽然云计算环境中有很多组件,但是在本说明书中只考虑与本公开相关的组件,忽略与本公开无关的其他组件。假设部署在云计算环境400中的应用程序可包括N个功能,其中N是大于1的整数。参照图4,云计算环境400可包括管理器401,管理器401是云计算环境400的管理平台并且可至少包括控制器4011和存储库4012。为了部署应用程序,云计算环境400的管理员可以使用云计算环境400支持的任何方法(诸如Kubemetes中的Operator(一种封装、部署和管理Kubernetes本机应用程序的方法))来部署包括应用程序部署容器4021的应用程序部署POD402。换句话说,当应用程序部署POD 402被部署时,应用程序部署容器被同时部署,并且应用程序部署容器4021被包括在应用程序部署POD 402中。此后,当我们提及包括容器的POD被部署时,这意味着容器在部署POD的同时被部署,并且该容器被包括在POD中。
客户资源(CR)文件可以存储在存储库4012中并且可以用于指示应用程序的多个功能的信息,如对应于应用程序的每个功能的每个容器的镜像文件的位置等。CR文件由管理员基于要部署在云计算环境400中的应用程序的服务提供者的请求来编写。
应用程序部署容器4021可以包括名为CR监视器4022的组件,该组件可以定期监视存储库4012中的CR文件。当CR监视器4022检测到CR文件时,CR监视器4022不考虑其是新的CR文件、更新的CR文件还是现有的CR文件,CR监视器4022可以直接将CR文件通知给应用程序部署容器4021。然后应用程序部署容器4021可以访问CR文件并且可以开始部署过程。此外,应用程序部署容器4021仍然不考虑CR文件是新的CR文件、更新的CR文件还是现有的CR文件。在部署过程期间,应用程序部署容器4021可以请求云计算环境400以与应用程序的N个功能对应的顺序部署包括功能容器404-1的功能POD 403-1、…、包括功能容器404-N的功能POD 403-N。为了便于讨论,功能POD 403-1…403-N被统称为或单独称为“功能POD403”,并且功能容器404-1…404-N被统称为或单独称为“功能容器404”。虽然应用程序部署容器4021请求分别部署包括功能容器404的功能POD 403,但是云计算环境400不会直接部署包括相应功能容器404的功能POD 403。相反,云计算环境400可检查包括相应功能容器404的功能POD 403是否存在于云计算环境中。如果不存在,则云计算环境400可部署它们。如果存在,则云计算环境400可确定是否存在任何变化,即包括待部署的相应功能容器404的功能POD 403与云计算环境400中包括相应功能容器404的现有功能POD 403不同。如果存在变化,则云计算环境400可再次部署包括相应功能容器404的功能POD 403以替换那些现有功能POD或可针对那些现有功能POD更改,使得云计算环境400中包括相应功能容器404的功能POD 403被更新。然而,如果没有改变,意味着包括相应功能容器404的现有功能POD 403能够满足所述要求,则云计算环境400不会重复部署它们。
图5描绘了有待部署在云计算环境400中的名为天气预报应用程序500的示例性应用程序以及包括在该应用中的功能之间的对应的依赖关系。参考图5,天气预报应用程序500可以包括以下功能:数据库501、注册502、用户管理503、天气查询504、统计505和监视器506。依赖关系如下:注册502、用户管理503、天气查询504三个功能依赖于数据库501,统计505和监视器506两个功能依赖于用户管理503;监视器506也依赖于天气查询504。
图6描绘了用于图5中所示的天气预报应用程序500的示例CR文件。在图6中,方框601用于表示数据库501的信息,方框602用于表示注册502的信息,方框603用于表示用户管理503的信息,方框604用于表示天气查询504的信息,方框605用于表示统计信息505的信息并且方框606用于表示监测器506的信息。CR文件包括要部署的所有功能容器的镜像文件的位置。在管理员写入图6所示的CR文件之后,管理员可以将CR文件保存在云计算环境400中的管理员401的存储库4012中。
在现有的云计算环境400中,应用程序部署容器4021在部署应用程序的功能(例如,按顺序部署包括相应容器的相应功能POD)时不考虑这些功能之间的依赖关系。例如,对于图5中所示的应用程序500,如果应用程序部署容器4021检测到图6中所示的CR文件,则应用程序部署容器4021可以访问CR文件并且请求云计算环境400按顺序部署包括相应容器的六个POD,即按照数据库501、注册502、用户管理503、天气查询504、统计505和监视器506的相应功能POD的顺序。假设部署包括数据库501、注册502、用户管理503、天气查询504、统计505和监视器506的相应功能容器的相应功能POD消耗的相应时间为T1、T2、T3、T4、T5和T6,由于各个功能POD的部署是顺序的,所以部署这些功能的总时间为T=T1+T2+T3+T4+T5+T6。可以发现,如果应用程序中有很多功能,应用程序部署很费时。
此外,在现有的云计算环境400中,CR监视器4022和应用程序部署容器4021不考虑存储库中的CR文件是新的CR文件、现有的CR文件还是更新的CR文件,应用程序部署容器4021直接响应于检测到CR文件而请求云计算环境400部署包括相应的功能容器的各自的功能POD。此外,如果在包括6个功能的信息的CR文件中仅改变应用程序中的一个功能,则应用程序部署容器4021仍然可以请求云计算环境400重新部署包括相应功能容器的所有6个功能POD,而不是仅部署包括与改变的功能相对应的相应功能容器的一个功能POD。虽然对于现有的CR文件,云计算环境400不会针对现有的功能重复部署包含相应功能容器的功能POD,但是检查包含相应功能容器的功能POD是否已被部署在云计算环境400中仍然是耗时且耗费资源的。
例如,对于图5中所示的应用程序500,响应于CR监视器4022首次在存储库4012中检测到图6中所示的CR文件,应用程序部署容器4021请求云计算环境400部署包括用于数据库501、注册502、用户管理503、天气查询504、统计505和监视器506的相应功能的相应功能容器404的相应功能POD 403。云计算环境400发现这些包括相应功能容器404的功能POD403不存在于云计算环境400中,就直接对其进行部署。第二次,CR监视器4022在5分钟之后再次在存储库4012中检测到图6所示的CR文件(没有改变),应用程序部署容器4021再次请求云计算环境400部署包括用于数据库501、注册502、用户管理503、天气查询504、统计505和监视器506的各个功能的对相功能容器404的功能POD 403。但是云计算环境400发现云计算环境400中已经存在包括相应功能容器404的这些功能POD 403,因此不会部署它们。第三次,CR监视器4022在诸如5分钟之后在存储库4012中检测到图6所示的CR文件(注册502的功能发生改变),应用程序部署容器4021再次请求云计算环境400针对数据库501、注册502、用户管理503、天气查询504、统计505和监视器506的相应功能部署包括对xia相g应功能容器的功能POD 403。此时,云计算环境400发现云计算环境400中存在一些包括相应功能容器404的功能POD 403,只有注册502的功能发生变化,云计算环境400可以只对包括相应注册容器404-2的功能POD403-2进行部署注册,以替换原有的功能,也可以将该变化应用于包括相应注册容器404-2的原始注册功能POD 403-2。从上述过程可以发现,在现有过程中,云计算环境400实际检查CR文件是新CR文件、现有CR文件还是更新后的CR文件,检查耗时且耗费资源。
实际上,在应用程序部署期间,当要部署功能(例如,注册502)时,在部署期间请求注册502将信息(即注册502的功能取决于数据库501的功能)写入数据库,所以在部署注册502之前,必须部署数据库501的功能,否则,注册502的部署不能成功。换句话说,如果功能具有依赖关系,则应用程序部署时要考虑应用程序的功能之间的依赖关系。
在本公开中,在应用程序部署的过程中考虑了应用程序的功能之间的依赖关系。表1是应用程序500的功能之间的依赖关系的示例列表。如表所示,表1可记录功能及其依赖功能。本领域技术人员可以理解,表1所示的应用程序的功能之间的依赖关系的模式只是为了说明的目的,其他列可以添加到表1中。此外,应当理解,上述表格仅仅是表示应用程序功能之间的依赖关系的一种实现方式,可以使用其他数据结构来表示应用程序功能之间的依赖关系,例如XML文件、文本文件等。在一些实施例中,应用程序的功能之间的依赖关系可以用对象类型来表示,例如在Kubemetes中定义的ConfigMap。
功能 依赖的功能
数据库501
注册502 数据库501
用户管理503 数据库501
天气杳询504 数据库501
统计505 用户管理503
监视器506 用户管理503,天气杳询504
表1
此外,每个功能POD的部署状态包括可部署在云计算环境中用于执行该应用程序的每个功能的相应功能容器,还需要由其他功能部署进程进行检查。表2是CR文件中对应于每个功能的每个功能POD的示例功能部署状态。当首先检索CR文件时,可以创建表2。此时,CR文件是新的CR文件。在新的CR文件首先被检索到云环境中之后,CR文件变成现有的CR文件。当储存库中的CR文件被改变时,CR文件变成更新的CR文件。在CR文件的生命周期中,表2中所示的每个功能POD的示例功能部署状态总是与CR文件相关。如所示,表2可以记录每个功能POD(如使用对应的功能名称)和对应的部署状态,如“已部署”、“未部署”或“已更新”,其分别表示包括对应的功能容器的功能POD被已部署、未部署或已更新。本领域技术人员可以理解,表2中示出的每个功能POD的部署状态的方案只是为了说明的目的,其他列可以添加到表2中。进一步,应当理解,上述表2仅仅是表示每个功能POD的部署状态的模式的实现方式,可以使用其他数据结构,诸如XML文件、文本文件等。在一些实施例中,每个功能POD的部署状态的模式可以用对象类型来表示,例如在Kubemetes中定义的ConfigMap。
功能POD 部署状态
数据库501 已部署
注册502 已部署
用户管理503 已部署
天气杳询504 已更新
统计505 未部署
监视器506 未部署
表2
图7描绘了根据本公开的一些实施例的用于部署应用程序的所提议的示例云计算环境700的示意图。仍假设部署在云计算环境700中的应用程序可包括N个功能,其中N是大于一的整数。现在参考图7,在所提出的示例云计算环境700中,管理器701可以至少包括控制器7011和存储库7012。为了部署应用程序,云计算环境400的管理员可部署包括对应的应用程序部署容器7021的应用程序部署POD 702。由应用程序部署容器7021使用的镜像与由应用程序部署容器4021使用的镜像不同,稍后将详细介绍该镜像。应用程序部署容器7021在部署后可以包括两个组件:CR创建和改变监视器7022和功能POD部署管理7023(这两个组件在应用程序部署容器7021对应的镜像文件中定义)。
在一些实施例中,应用程序的功能之间的依赖关系(如表1中的信息)可以存储在存储库7012中或应用程序部署容器7021内部。在一些实施例中,每个功能POD的部署状态(如表2中的信息)可以存储在存储库7012中或应用程序部署容器7021内部。在一些实施例中,每个功能POD的部署状态(诸如表2中的信息)可以直接从表2中获得,或者通过云计算环境700定义的API实时获得。
云计算环境700内部的所有组件经由通信网络(图7中未示出)直接或间接地连接。图7中的通信网络可包括各种类型的通信网络,诸如广域网(WAN)、局域网(LAN)、电信网络、无线网络、公共交换网络和/或卫星网络。通信网络可包括连接,例如有线、无线通信链路或光纤电缆。
云计算环境700中的每个组件可以是例如移动设备、电话、个人数字助理、上网本、膝上型计算机、平板计算机、台式计算机、或能够运行程序和访问网络的任何类型的计算设备。云计算环境700可在云计算服务模型中操作,诸如软件即服务(SaaS)、平台即服务(PaaS)或基础设施即服务(IaaS)。云计算环境700还可位于云计算部署模型中,诸如私有云、社区云、公共云或混合云。
返回参见图7,CR创建和改变监视器7022可以确定存储库7012中的CR文件是新的CR文件、更新的CR文件还是现有的CR文件。在一些实施例中,CR创建和更改监视器7022可以维持上次从存储库7012检索的所有CR文件。当CR创建和更改监视器7022再次检索存储库7012中的CR文件时,可以将检索的CR文件与保存的CR文件进行比较以发现哪些检索的CR文件是新的、更新的或存在的。在一些实施例中,CR创建和更改监视器7022可以维护上次从存储库7012检索的所有CR文件的必要信息,诸如CR文件名、部署时间和文件内容的散列码。当CR创建和更改监视器7022再次检索存储库7012中的CR文件时,检索到的CR文件的信息可以与保存的CR文件的信息进行比较,以找到检索到的CR文件是新的、更新的或存在的。例如,如果检索到的CR文件没有相关信息,则CR文件是新的CR文件。如果检索到的CR文件有相关信息,但该信息与保存的信息不一致,如文件内容的散列值不同,则该CR文件为更新后的文件。如果检索到的CR文件有相关信息,并且该信息与保存的信息一致,则该CR文件是现有的CR文件。在一些实施例中,CR创建和更改监视器7022可以向存储库7012注册以接收关于所有CR文件的信息。本领域技术人员可以理解,可以使用其他方法。
在一些实施例中,当CR创建和更改监视器7022在存储库7012中检测到新的CR文件时,CR创建和更改监视器7022可以通知功能POD部署管理7023,然后功能POD部署管理7023可以请求云计算环境700部署每个功能部署POD,每个功能部署POD包括被配置为管理依赖关系的对应初始化容器和被配置为请求部署功能POD的对应功能部署容器,功能POD包括用于执行应用程序中的对应功能的对应功能容器。例如,功能部署POD705-1包括初始化容器706-1和功能部署容器707-1,……,功能部署POD705-N包括初始化容器706-N和功能部署容器707-N。在此为了便于讨论,功能部署POD 705-1,……,705-N被统称为或单独称为功能部署POD 705;初始化容器706-1,……,706-N被统称为或单独称为初始化容器706,并且功能部署容器707-1,……,707-N被统称为或单独称为功能部署容器707。当发送请求时,功能POD部署管理7023还可发送每个功能部署POD705的环境变量,所述环境变量可被对应的初始化容器706和对应的功能部署容器707共享。环境变量指示用于应用程序的对应功能的CR文件中的对应部分。
在一些实施例中,当CR创建和更改监视器7022在存储库7012中检测到新的CR文件时,可以在云计算环境中维护与新的CR文件相对应的每个功能POD的状态(如表2中的信息)。并且将每个功能POD的状态的初始值设置为“未部署”。
然后,云计算环境700可以直接部署包括对应初始化容器706和对应的功能部署容器707的各功能部署POD 705,而无需检查各功能部署POD 705是否存在。每个功能部署POD705可以维护其自身的环境变量。在每个对应的初始化容器706被部署之后,每个初始化容器706可以确定其自身的功能依赖性。具体地,每个初始化容器706可以检索诸如表1所示的应用程序的功能之间的依赖关系,然后与自身的环境变量进行比较,得到自身的功能依赖关系。例如,如果环境变量指示功能部署POD 705-1是用于数据库501的功能,则不存在依赖功能。然后,功能部署容器707-1可以通知云计算环境700部署包括功能容器704-1的功能POD703-1。在一些实施例中,云计算环境700可以直接部署包括功能容器704-1的功能POD703-1,而不检查其是否存在。之后,功能部署容器707-1或功能容器704-1可以将与数据库501相对应的功能POD703-1的状态更新为“已部署”,如表2所示。
在另外示例中,在部署了包括初始化容器706-2和功能部署容器707-2的功能部署POD 705-2之后,如果环境变量指示功能部署POD 705-2是用于注册502,则其依赖功能是数据库501。然后,初始化容器706-2可以检查功能POD 703-1的状态,诸如检查表2或利用云计算环境700提供的API实时检查。如果状态为“未部署”,则初始化容器706-2可以反复检查直到状态为“已部署”。然后,功能部署容器707-2可以请求云计算环境700部署包括功能容器704-2的功能POD 703-2。在一些实施例中,云计算环境700可以直接部署包括功能容器704-2的功能POD 703-2,而不检查其是否存在。之后,功能部署容器707-2或功能容器704-2可以将与注册502相对应的功能POD 703-2的状态更新为“已部署”,如表2所示。
以此方式,相应的初始化容器(诸如初始化容器706-3、706-4、706-5和706-6)可以检查与(多个)依赖功能相对应的(多个)依赖功能POD的状态,直到所述状态被“部署”,然后相应的功能部署容器可以请求云计算环境700部署包括相应的功能容器(诸如功能容器704-3、704-4、704-5、704-6)的相应的功能POD(诸如功能POD703-3、703-4、703-5、703-6)。在一些实施例中,云计算环境700可以直接部署包括对应的功能容器(诸如功能容器704-3、704-4、704-5、704-6)的相应功能POD(诸如功能POD703-3、703-4、703-5、703-6),而不检查它们是否存在。之后,各个功能部署容器(诸如初始化容器707-3、707-4、707-5、707-6)或各个功能容器(诸如功能容器704-3、704-4、704-5、704-6)可以将各个功能POD(诸如对应于用户管理503、天气查询504、统计505和监视器506)的状态更新为“已部署”,如表2所示。
从以上描述可以发现,与应用程序500中的注册502、用户管理503和天气查询504相对应的功能POD可以并行部署,并且与统计505和监视器506相对应的功能POD可以并行部署。部署包括对应初始化容器和对应功能部署容器的各功能部署POD消耗的时间较小,可以忽略。然后,部署这些功能的最大时间可以是T=T1+max(T2,T3,T4)+max(T5,T6),其比使用云计算环境400的部署时间小得多。
在一些实施例中,在包括相应功能容器的所有功能POD被部署之后,应用程序500的每个功能POD的状态被更新为“被部署”,然后功能POD部署管理7023可以删除包括对应的初始容器706和对应的功能部署容器707两者的所有功能部署POD 705,以便为云计算环境700节省资源。
在一些实施例中,当CR创建和更改监视器7022在存储库7012中检测到更新的CR文件时(即,存在用于现有CR文件的更改),CR创建和更改监视器7022可以向功能POD部署管理7023通知该更改,例如,CR创建和更改监视器7022可以通知存储库7012中的CR文件的更改部分。例如,如果对应于图6中的框602的部分被更改,则响应于包括CR文件中的更改部分的通知,功能POD部署管理7023可以请求云计算环境700仅部署包括初始容器706-2和功能部署容器707-2两者的功能部署POD703-2,功能部署容器707-2可以请求云计算环境700更新包括功能容器704-2的功能POD703-2,即部署包括功能容器704-2的功能POD703-2替换原有的功能,或者向包括功能容器704-2的现有功能POD703-2应用程序更改。在一些实施例中,云计算环境700可删除原始部署的包括功能容器704-2的功能POD 703-2,并直接基于CR文件的更改部分来重新部署它们,而无需检查。在一些实施例中,云计算环境700可以直接将更改应用于原始部署的包括功能容器704-2的功能POD703-2而无需检查。云计算环境700如何应用该更改是现有技术,其在本说明书中将不被详细讨论。
在一些实施例中,在包括功能容器704-2的功能POD 703-2被更新之后,功能部署容器707-2或功能容器704-2可以将表2中的功能POD 703-2的状态从“已部署”更改为“已更新”。然后,功能POD部署管理7023可以删除包括初始化容器706-2和功能部署容器707-2两者的功能部署POD703-2以节省云计算环境700的资源。之后,功能POD部署管理7023可以将功能POD703-2的状态从“已更新”更改为“已部署”以用于进一步更新。
在一些实施例中,初始化容器706及其相应的功能部署容器707可被合并成一个容器,合并功能部署容器具有两个组件,诸如初始化组件和功能部署组件。初始化容器706执行的所有动作可由合并功能部署容器的初始化组件执行,功能部署容器707执行的所有动作可由合并功能部署容器的功能部署组件执行。初始化容器706及其对应的功能部署容器707对应的镜像文件中的内容,可以合并为合并后的功能部署容器对应的镜像文件中的内容。换言之,应用程序部署容器7021可以请求云计算环境700直接部署包括对应的合并的功能部署容器的多个功能部署POD705,而不是部署包括对应的初始容器706和对应的功能部署容器707两者的多个功能部署POD705。云计算环境700随后可直接部署包括对应的合并的功能部署容器的多个功能部署POD705而无需检查。此外,合并的功能部署容器可以请求云计算环境700部署/更新包括对应功能容器704的对应功能POD703,然后云计算环境700可以直接这样做,而无需检查。
在一些实施例中,图7中的所有POD不是必需的。例如,管理员可以仅直接部署应用程序部署容器7021而不部署包括对应的应用程序部署容器7021的应用程序部署POD 702,并且应用程序部署容器7021可以直接部署多个功能部署容器707而不部署包括对应的功能部署容器的多个功能部署POD。
图8描绘了根据本公开的一些实施例的用于部署应用程序的所提出的示例云计算环境800的抽象示意图。参考图8,为了便于讨论,功能部署组件805-1…805-N被统称为或单独称为功能部署组件805,并且功能组件803-1…803-N被统称为或单独称为功能组件803。比较图8和图7,管理器801可以是管理器701;应用程序开发组件802可以是包括应用程序部署容器7021的应用程序开发POD 702或者可以是应用程序部署容器7021;功能部署模块805可以是同时包括对应的初始化容器706和对应的功能部署容器707的功能部署POD 705,也可以是包括合并的功能部署容器的功能部署POD 705,还可以是合并的功能部署容器;功能组件803可以是包括对应的功能容器704的功能POD 703,也可以是功能部署容器704。
图9描绘了根据本公开的一些实施例的云计算环境中的应用程序部署的流程图900。流程图900可由应用程序部署组件802或其他合适的计算机/计算系统来实现,所述计算机/计算系统被称为在云计算环境800中具有一个或多个处理器的第一组件。为了便于理解,将参照图8描述流程图900。
在910,应用程序部署组件802(第一组件)可以在储存库8012中检测是否存在新的CR文件或更新的CR文件。换言之,将不考虑没有更改的现有CR文件。CR文件被配置成指示应用程序的多个功能的信息。
在920,响应于检测到新的CR文件,应用程序部署组件802可以请求云计算环境800在云计算环境800中部署多个功能部署组件805,其中多个功能部署组件805被配置为请求云计算环境800在云计算环境800中部署多个功能组件803,并且多个功能组件803被配置为执行由新的CR文件所指示的应用程序的多个功能。
在930,应用程序部署组件802(第一组件)可以实现对该多个功能组件803中的每个功能组件是否已经部署在云计算环境800中的第一确定。在一些实施例中,多个功能组件中的每个功能组件的状态(诸如表2中的信息)被维护在云计算环境800中,应用程序部署组件802可以检索多个功能组件中的每个功能组件的状态,并且可以基于所检索的状态来确定多个功能组件803中的每个功能组件是否已经被部署在云计算环境800中。在一些实施例中,应用程序部署组件802可以利用由云计算环境800提供的API来向云计算环境800检查多个功能组件中的每个的状态,以确定多个功能组件803中的每个是否已经被部署在云计算环境800中。
在940,响应于指示多个功能组件中的每个功能组件已经被部署在云计算环境800中的第一确定,应用程序部署组件802可以请求云计算环境800删除多个所部署的功能部署组件805以便在云计算环境800中节省资源。
在一些实施例中,在950,响应于检测到CR文件是经更新的CR文件,应用程序部署组件802可以确定经更新的CR文件中的至少一个更新的功能。
在960,应用程序部署组件802可以请求云计算环境800在云计算环境800中部署至少一个功能部署组件。在此,该至少一个功能部署组件被配置成用于请求云计算环境800部署/更新云计算环境800中的至少一个功能组件,并且该至少一个功能组件被配置为用于执行该至少一个更新的功能。在部署/更新之后,表2中的至少一个功能组件的状态可以相应地更改。
然后在970处,应用程序部署组件802可以实现至少一个功能组件803中的每个功能组件是否已经在云计算环境800中被更新的第二确定。在一些实施例中,至少一个功能组件中的每个功能组件的状态被维护在云计算环境800中,应用程序部署组件802可以检索至少一个功能组件中的每个功能组件的状态,并且可以基于所检索的状态来确定在云计算环境800中至少一个功能组件803是否已经被更新,诸如检查表2中的至少一个功能组件803的状态是否为“已更新”。在一些实施例中,应用程序部署组件802可以利用由云计算环境800提供的API来向云计算环境800检查至少一个功能组件中的每个功能组件的状态,以确定在云计算环境800中的至少一个功能组件803是否已经被更新。
在980,响应于指示至少一个功能组件中的每个功能组件已经在云计算环境800中被更新的第二确定,应用程序部署组件802可以请求云计算环境800删除至少一个所部署的功能部署组件805以便节省在云计算环境800中的资源。然后,应用程序部署组件802可以将表2中的至少一个功能组件803的状态从“已更新”更改为“已部署”以用于进一步的功能更新。
在一些实施例中,在云计算环境800中维护了应用程序的多个功能之间的依赖关系。
在一些实施例中,图10描绘了根据本公开的一些实施例的流程图1000,作为图9中所示的方法的一部分。流程图1000可以由功能部署组件805或者被配置为部署相应功能组件803的其他合适的计算机/计算系统来实现。为了便于理解,将参照图8使用功能部署组件805-2作为实例来描述流程图1000,功能部署组件805-2被配置为请求云计算环境部署/更新对应的功能组件(诸如803-2)以执行对应的功能。假设与功能组件803-2对应的功能依赖于与至少一个依赖功能组件803-1对应的至少一个功能。
在1010处,功能部署组件805-2可以从应用程序部署组件802接收对应功能的信息,如镜像文件的对应位置、对应功能是新功能还是更新的功能等。
在1020处,功能部署组件805-2可以从应用程序的多个功能之间的依赖关系获得对应功能的至少一个依赖功能。
在1030,功能部署组件805-2可以实现与至少一个依赖功能相对应的至少一个依赖功能组件(803-1)是否已经被部署在云计算环境800中的第三确定。该确定方法类似于在930和970中使用的方法。
在1040,响应于指示至少一个依赖功能组件(803-1)中的每个依赖功能组件已经被部署在云计算环境800中的第三确定,功能部署组件805-2可以请求云计算环境800在不基于接收到的信息进行检查的情况下直接在云计算环境800中部署/更新功能组件803-2。
在一些实施例中,在1050(图10中未示出)处,响应于相应的功能组件803-2已经部署在云计算环境800中,功能部署组件805-2或相应的功能组件803-2可以更新相应的功能组件803-2的状态,如将状态从表2中的“未部署”更改为“已部署”。
所提出的方法可以使得更容易从架构级别部署云计算环境中的应用程序。此外,开发者更易于使用所提出的方法来开发用于在云计算环境中部署应用程序的框架。
应当注意,根据本公开的实施例的云计算环境中的应用程序部署的处理可以由图1的计算机系统/服务器12实现。
本公开可以是任何可能的集成技术细节水平的系统、方法、和/或计算机程序产品。所述计算机程序产品可包含上面具有用于致使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质(或介质)。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
在此所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载至相应的计算/处理装置或者下载至外部计算机或外部存储装置。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本公开的各方面。
在此参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本公开的多个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给计算机的处理器、或其他可编程数据处理装置以便产生机器,这样使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置、或其他设备上,以便使得在该计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,从而使得在该计算机、其他可编程装置、或其他设备上执行的指令实现流程图和/或框图的或多个框中所指定的功能/动作。
附图中的流程图和框图展示了根据本公开的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的呈现了本公开的不同实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。

Claims (20)

1.一种计算机实现方法,包括:
响应于检测到新的客户资源(CR)文件:
由一个或多个处理器请求计算环境在所述计算环境中部署多个功能部署组件,其中:
所述CR文件指示应用程序的多个功能的信息;
所述多个功能部署组件请求所述计算环境在所述计算环境中部署多个功能组件;以及
所述多个功能组件执行所述应用程序的所述多个功能;
由一个或多个处理器确定所述多个功能组件中的每个功能组件已被部署在所述计算环境中;以及
响应于确定所述多个功能组件中的每个功能组件已被部署在所述计算环境中,由一个或多个处理器请求所述计算环境删除所述多个部署的功能部署组件中的每个。
2.根据权利要求1所述的方法,其中,所述计算环境是云计算环境。
3.根据权利要求2所述的方法,进一步包括:
响应于检测到更新的CR文件:
由一个或多个处理器确定所述更新的CR文件中的至少一个更新的功能;
由一个或多个处理器请求所述云计算环境在所述云计算环境中部署与所述至少一个更新的功能相对应的至少一个功能部署组件,其中:
所述至少一个功能部署组件请求所述云计算环境更新所述云计算环境中的至少一个功能组件;以及
所述至少一个功能组件执行所述至少一个更新的功能;
由一个或多个处理器确定所述至少一个功能组件中的每个功能组件已经在所述云计算环境中被更新;以及
响应于确定所述至少一个功能组件中的每个功能组件已经在所述云计算环境中被更新,由一个或多个处理器请求所述云计算环境删除所述至少一个部署的功能部署组件中的每个。
4.根据权利要求3所述的方法,其中,在所述云计算环境中维护所述应用程序的所述多个功能之间的依赖关系。
5.根据权利要求4所述的方法,其中,所述多个功能部署组件中的每个功能部署组件通过以下方式请求所述云计算环境部署用于执行相应功能的相应功能组件:
由一个或多个处理器接收所述相应功能的信息;
由所述一个或多个处理器从所述应用程序的所述多个功能之间的所述依赖关系中获取所述相应功能的至少一个依赖功能;
由一个或多个处理器确定对应于所述至少一个依赖功能的至少一个依赖功能组件中的每个依赖功能组件已被部署在所述云计算环境中;以及
响应于确定所述至少一个依赖功能组件中的每个依赖功能组件已被部署在所述云计算环境中,由一个或多个处理器基于接收到的信息来请求所述云计算环境在所述云计算环境中部署所述相应功能组件。
6.根据权利要求5所述的方法,其中,每个功能组件的状态被维护在所述云计算环境中,并且所述多个功能部署组件中的每个功能部署组件部署相应的功能组件,以用于进一步通过以下操作来执行相应的功能:
响应于所述相应的功能组件被部署在所述云计算环境中,由一个或多个处理器更新所述相应的功能组件的状态。
7.根据权利要求6所述的方法,其中,通过检查维护在所述云计算环境中的至少一个相应功能组件的状态来确定每个确定。
8.根据权利要求6所述的方法,其中,通过使用由所述云计算环境提供的应用程序编程接口(API)检查对应于所述云计算环境的至少一个功能组件的状态来确定每个确定。
9.一种计算机程序产品,包括:
一个或多个计算机可读存储介质,以及共同存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令包括:
用于响应于检测到新的客户资源(CR)文件而进行以下操作的程序指令:
请求计算环境在所述计算环境中部署多个功能部署组件,其中:
所述CR文件指示应用程序的多个功能的信息;
所述多个功能部署组件请求所述计算环境在所述计算环境中部署多个功能组件;以及
所述多个功能组件执行所述应用程序的所述多个功能;
确定所述多个功能组件中的每个功能组件已被部署在所述计算环境中;以及
响应于确定所述多个功能组件中的每个功能组件已被部署在所述计算环境中,请求所述计算环境删除所述多个部署的功能部署组件中的每个。
10.根据权利要求9所述的计算机程序产品,其中,所述计算环境是云计算环境。
11.根据权利要求10所述的计算机程序产品,进一步包括:
共同存储在所述一个或多个计算机可读存储介质上的程序指令,用于响应于检测到更新的CR文件:
确定所述更新的CR文件中的至少一个更新的功能;
请求所述云计算环境在所述云计算环境中部署与所述至少一个更新的功能对应的至少一个功能部署组件,其中:
所述至少一个功能部署组件请求所述云计算环境更新所述云计算环境中的至少一个功能组件;以及
所述至少一个功能组件执行所述至少一个更新的功能;
确定所述至少一个功能组件中的每个功能组件已经在所述云计算环境中被更新;以及
响应于确定所述至少一个功能组件中的每个功能组件已经在所述云计算环境中被更新,请求所述云计算环境删除所述至少一个部署的功能部署组件中的每个。
12.根据权利要求11所述的计算机程序产品,其中,在所述云计算环境中维护所述应用程序的所述多个功能之间的依赖关系。
13.根据权利要求12所述的计算机程序产品,其中,所述多个功能部署组件中的每个功能部署组件通过以下方式请求所述云计算环境部署用于执行相应功能的相应功能组件:
接收相应功能的信息;
从所述应用程序的所述多个功能之间的依赖关系中获取所述相应功能的至少一个依赖功能;
确定对应于所述至少一个依赖功能的至少一个依赖功能组件中的每个依赖功能组件已被部署在所述云计算环境中;以及
响应于确定所述至少一个依赖功能组件中的每个依赖功能组件已被部署在所述云计算环境中,基于接收到的信息来请求所述云计算环境在所述云计算环境中部署所述相应功能组件。
14.根据权利要求13所述的计算机程序产品,其中,每个功能组件的状态被维护在所述云计算环境中,并且所述多个功能部署组件中的每个功能部署组件部署相应的功能组件,以用于进一步通过以下操作来执行相应的功能:
响应于所述相应的功能组件被部署在所述云计算环境中,更新所述相应的功能组件的状态。
15.根据权利要求14所述的计算机程序产品,其中,通过检查维护在所述云计算环境中的至少一个相应功能组件的状态来确定每个确定。
16.根据权利要求14所述的计算机程序产品,其中,通过使用由所述云计算环境提供的应用程序编程接口(API)检查对应于所述云计算环境的至少一个功能组件的状态来确定每个确定。
17.一种计算机系统,包括:
一个或多个计算机处理器、一个或多个计算机可读存储介质、以及共同存储在所述一个或多个计算机可读存储介质上以供所述一个或多个计算机处理器中的至少一个执行的程序指令,所述程序指令包括:
用于响应于检测到新客户资源(CR)文件而进行以下操作的程序指令:
请求计算环境在所述计算环境中部署多个功能部署组件,其中:
所述CR文件指示应用程序的多个功能的信息;
所述多个功能部署组件请求所述计算环境在所述计算环境中部署多个功能组件;以及
所述多个功能组件执行所述应用程序的所述多个功能;
确定所述多个功能组件中的每个功能组件已被部署在所述计算环境中;以及
响应于确定所述多个功能组件中的每个功能组件已被部署在所述计算环境中,请求所述计算环境删除所述多个部署的功能部署组件中的每个。
18.根据权利要求17所述的计算机系统,其中,所述计算环境是云计算环境。
19.根据权利要求18所述的计算机系统,进一步包括:
共同存储在所述一个或多个计算机可读存储介质上的程序指令,用于响应于检测到更新的CR文件:
确定所述更新的CR文件中的至少一个更新的功能;
请求所述云计算环境在所述云计算环境中部署与所述至少一个更新的功能对应的至少一个功能部署组件,其中:
所述至少一个功能部署组件请求所述云计算环境更新所述云计算环境中的至少一个功能组件;以及
所述至少一个功能组件执行所述至少一个更新的功能;
确定所述至少一个功能组件中的每个功能组件已经在所述云计算环境中被更新;以及
响应于确定所述至少一个功能组件中的每个功能组件已经在所述云计算环境中被更新,请求所述云计算环境删除所述至少一个部署的功能部署组件中的每个。
20.根据权利要求19所述的计算机系统,其中,在所述云计算环境中维护所述应用程序的所述多个功能之间的依赖关系。
CN202280013444.1A 2021-02-23 2022-01-18 计算环境中的应用程序部署 Pending CN116940924A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/182,338 2021-02-23
US17/182,338 US11556332B2 (en) 2021-02-23 2021-02-23 Application updating in a computing environment using a function deployment component
PCT/CN2022/072531 WO2022179342A1 (en) 2021-02-23 2022-01-18 Application deployment in computing environment

Publications (1)

Publication Number Publication Date
CN116940924A true CN116940924A (zh) 2023-10-24

Family

ID=82900607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280013444.1A Pending CN116940924A (zh) 2021-02-23 2022-01-18 计算环境中的应用程序部署

Country Status (5)

Country Link
US (1) US11556332B2 (zh)
JP (1) JP2024507055A (zh)
CN (1) CN116940924A (zh)
GB (1) GB2618955A (zh)
WO (1) WO2022179342A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240095002A1 (en) * 2022-09-21 2024-03-21 Ncr Corporation Updated driver installation
CN117270888B (zh) * 2023-11-24 2024-04-16 之江实验室 一种云端应用部署方法、系统、装置及计算机设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015710B2 (en) * 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
US8850419B1 (en) * 2011-05-20 2014-09-30 Amazon Technologies, Inc. Descaling computing resources
US9843533B2 (en) * 2014-03-06 2017-12-12 Trilio Data Inc. Elastic compute cloud based on underutilized server resources using a distributed container system
US10097410B2 (en) * 2014-06-26 2018-10-09 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments
US10152211B2 (en) * 2014-11-11 2018-12-11 Amazon Technologies, Inc. Application delivery agents on virtual desktop instances
US11483405B2 (en) * 2015-06-10 2022-10-25 Platform9, Inc. Private cloud as a service
US10356206B2 (en) * 2015-11-08 2019-07-16 Vmware, Inc. Deploying an application in multiple cloud computing environments
CN107547596B (zh) 2016-06-27 2022-01-25 中兴通讯股份有限公司 一种基于Docker的云平台控制方法及装置
CN107769949B (zh) * 2016-08-19 2021-02-12 华为技术有限公司 一种应用组件部署方法及部署节点
US10614117B2 (en) 2017-03-21 2020-04-07 International Business Machines Corporation Sharing container images between mulitple hosts through container orchestration
US10749762B2 (en) * 2017-03-31 2020-08-18 Connectwise, Llc Systems and methods for managing resource utilization in cloud infrastructure
US20190303212A1 (en) 2018-03-30 2019-10-03 Cisco Technology, Inc. Method for managing application configuration state with cloud based application management techniques
US11075999B2 (en) * 2018-08-28 2021-07-27 Citrix Systems, Inc. Accessing resources in a remote access or cloud-based network environment
CN109885389B (zh) 2019-02-19 2021-07-16 浪潮云信息技术股份公司 一种基于容器的并行深度学习调度训练方法及系统
US11329930B2 (en) * 2019-05-29 2022-05-10 Red Hat, Inc. Generating scenarios for automated execution of resources in a cloud computing environment
CN110737454A (zh) * 2019-10-17 2020-01-31 腾讯科技(深圳)有限公司 软件项目更新方法、装置、计算机设备及存储介质
CN110764786A (zh) 2019-12-27 2020-02-07 凯泰铭科技(北京)有限公司 一种云计算环境下优化部署资源与软件交付平台
US11231919B2 (en) * 2020-06-19 2022-01-25 Salesforce.Com, Inc. Live updates of stateful components
CN112084008B (zh) 2020-09-10 2023-02-17 浪潮云信息技术股份公司 一种基于容器技术快速部署云管系统的方法

Also Published As

Publication number Publication date
US20220269495A1 (en) 2022-08-25
GB202313629D0 (en) 2023-10-25
US11556332B2 (en) 2023-01-17
WO2022179342A1 (en) 2022-09-01
GB2618955A (en) 2023-11-22
JP2024507055A (ja) 2024-02-16

Similar Documents

Publication Publication Date Title
US10083092B2 (en) Block level backup of virtual machines for file name level based file search and restoration
US11288375B2 (en) Automatic detection of an incomplete static analysis security assessment
US10585760B2 (en) File name level based file search and restoration from block level backups of virtual machines
US9912760B2 (en) Dynamically generating solution stacks
US20210072969A1 (en) Automatic upgrade of robotic process automation using a computer
CN116940924A (zh) 计算环境中的应用程序部署
US11288232B2 (en) Database deployment objects and deterministic locking models
US11093263B2 (en) Resource management based on user interfaces
US10542111B2 (en) Data communication in a clustered data processing environment
US9229659B2 (en) Identifying and accessing reference data in an in-memory data grid
US11841791B2 (en) Code change request aggregation for a continuous integration pipeline
US11422791B2 (en) Upgrading a sequence of microservices in a cloud computing environment
US11416468B2 (en) Active-active system index management
US11238014B2 (en) Distributed version control for tracking changes in web applications
US10169382B2 (en) Keyword identification for an enterprise resource planning manager
US11829741B2 (en) Instantiated deployment of microservices
US20230222107A1 (en) Database record bit
US20220342686A1 (en) Virtual machine file management using file-level snapshots
US20230289079A1 (en) Rapid data replication and data storage
US20220179557A1 (en) Multi-dimensional data recovery
US20200379975A1 (en) Global transaction serialization
CN115964121A (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