CN108205463A - 应用生命周期管理系统 - Google Patents

应用生命周期管理系统 Download PDF

Info

Publication number
CN108205463A
CN108205463A CN201711379415.4A CN201711379415A CN108205463A CN 108205463 A CN108205463 A CN 108205463A CN 201711379415 A CN201711379415 A CN 201711379415A CN 108205463 A CN108205463 A CN 108205463A
Authority
CN
China
Prior art keywords
automation
user
virtual machine
node
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
Application number
CN201711379415.4A
Other languages
English (en)
Inventor
J·普林斯路
G·塔莎
R·李
J·阿娜马来
C·董
A·古尔陈珂
M·卢克曼
I·卫莱茨
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.)
Aveva Software LLC
Original Assignee
Schneider Electric Software LLC
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
Priority to US15/385,171 priority Critical
Priority to US15/385,171 priority patent/US20180173526A1/en
Application filed by Schneider Electric Software LLC filed Critical Schneider Electric Software LLC
Publication of CN108205463A publication Critical patent/CN108205463A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/45575Starting, stopping, suspending or resuming virtual machine instances

Abstract

本申请涉及应用生命周期管理系统。提供用于将用于使用客户系统中的至少一个虚拟机经由平台执行的一个或多个应用的动作自动化的计算机实现的方法和系统。每个虚拟机包括客户操作系统、客户代理和将要在虚拟机上执行的应用。方法或系统将用户定义的自动化动作以及用户定义的自动化动作之间的因果关系存储在存储器中,从用户定义的自动化动作以及用户定义的自动化动作之间的因果关系中为将在客户系统上的虚拟机上执行的应用导出自动化图;经由平台启动客户系统和虚拟机;以及在客户系统和虚拟机启动之后,根据自动化图经由虚拟机的客户代理执行用户定义的自动化动作。

Description

应用生命周期管理系统
技术领域
[0001]本公开内容涉及一种计算机化的方法和系统,该方法和系统用于将由用户指定以 在云环境中的虚拟机和网络的分布式系统上以良好定义的并且精心编排的步骤序列或者 受管理的步骤序列来配置和供应简单或复杂的应用的动作自动化,并且此外用于实现由用 户指定以在客户系统上出故障的情况下自动执行的自动化故障监视和缓解动作。
背景技术
[0002]基于软件的服务可以通过在云上提供的虚拟机的使用被提供给用户。用户通过 web客户端可以经由因特网访问云,并且请求通过(一个或多个)应用在(一个或多个)虚拟 机上的执行而提供的这些基于软件的服务。然而,随着应用变得越来越复杂,需要更多的处 理能力和存储器,当这些应用的组成部分跨客户系统中的不同虚拟机分布和/或在这些应 用向用户的供应中发生故障或者其他问题时,这变得更加成问题。这种复杂分布式系统的 配置和启动相当繁杂;虚拟网络、虚拟机实例和应用本身需要按照精确并且协调的步骤系 列被正确地配置和启动。应用故障或者其他故障可以导致在客户系统的(一个或多个)虚拟 机上执行的应用的终止。在这种情况下,管理员可能需要花费大量的资源(包括时间),以在 事后识别这种故障的原因。此外,故障不仅对于终端用户是令人沮丧的,而且还可能导致生 产力和数据的损失。
[0003]因此,存在对现有计算机系统和技术的如下技术改进的需求,该技术改进将向用 户提供定义和自动化用于在客户系统的(一个或多个)虚拟机上执行的应用的故障监视和 缓解的灵活性。还存在对现有计算机系统和技术的如下技术改进的需求,该技术改进将允 许用户协调和控制将(诸如在分布式客户系统上)在执行不同应用或者不同应用的组成部 分的不同虚拟机上执行的动作的时序。还存在对现有计算机系统和技术的如下技术改进的 需求,该技术改进将向用户提供跨通过云提供给一个或多个用户的(一个或多个)应用的生 命周期来合并附加的功能和控制,而不必直接地修改或者更新(一个或多个)底层的应用的 灵活性。
发明内容
[0004]为了解决这些问题和其他问题,提供了一种计算机化的方法和系统,该方法和系 统使得用户能够定义自动化动作以及自动化动作之间的因果关系,以导出与应用的执行相 关联的(一个或多个)自动化图。当启动客户系统和它的(一个或多个)虚拟机以实现应用 时,虚拟机被配置为在客户系统的虚拟机的生命周期内根据自动化图经由虚拟机上的客户 代理自动地实现由用户定义或者指定的动作(也称作“用户定义的自动化动作”)。以这种方 式,有可能在虚拟机的生命周期内自动化各种动作,诸如自动化应用配置、在开机 (startup)期间自动化内容加载和应用启动、监视或者关注具体的故障并且自动化它们的 缓解以及在关机期间自动化内容持久化(Persistence)。此外,通过提供同步屏障一其中分 开的机器上的自动化图在继续之前等待彼此,并且通过提供自动化的逐个步骤的消息传递 (例如,一个机器上的步骤可以等待来自不同机器上的另一个步骤的信号),有可能诸如在 分布式客户系统中跨不同机器来自动化动作。
[0005]根据示例性实施例,提供一种计算机实现的方法、计算机系统以及具有可执行代 码的有形存储介质以将用于使用客户系统中的至少一个虚拟机经由平台执行的一个或多 个应用的动作自动化。每个虚拟机包括客户操作系统、客户代理以及将要在虚拟机上执行 的应用。计算机实现的方法、计算机系统以及有形存储介质被配置为实现以下操作:将用户 定义的自动化动作以及用户定义的自动化动作之间的因果关系存储在存储器中,从用户定 义的自动化动作以及用户定义的自动化动作之间的因果关系中为将在客户系统上的虚拟 机上执行的应用导出自动化图;经由平台启动客户系统和虚拟机;以及在客户系统和虚拟 机启动之后,根据自动化图经由虚拟机的客户代理执行用户定义的自动化动作。
[0006]平台可以在云计算体系结构上实现。客户系统和虚拟机由平台响应于通过因特网 (例如,经由web浏览器)发送的请求而启动。平台可以为客户系统执行初始化、VM启动、配 置、应用启动、运行、重启、停止和关机的阶段。用户定义的自动化动作由客户代理在配置、 应用启动、运行、重启、停止和关机的阶段中的一个或多个阶段中或者该一个或多个阶段期 间执行。
[0007]自动化图可以是包括多个图节点的有向无环图,该多个图节点具有与将要执行的 用户定义的自动化动作中的相应的用户定义的自动化动作对应的有效载荷。图节点的有效 载荷根据用户定义的因果关系按照顺序的次序执行。此外,多个图节点可以包括具有多个 直接前驱节点的至少一个条件节点。当多个直接前驱图节点中的至少一个直接前驱图节点 的有效载荷的执行已经完成时,即使其他直接前驱图节点中的一个或多个直接前驱图节点 的执行失败或者没有完成,虚拟机的客户代理也执行条件节点的有效载荷。
[0008]用户定义的自动化动作可以具有将在两个不同的虚拟机上执行的与用户定义的 自动化动作相关联的两个自动化图。两个自动化图中的每个自动化图包括多个图节点,该 多个图节点具有与用户定义的自动化动作中的相应的用户定义的自动化动作对应的有效 载荷。虚拟机诸如通过使用虚拟机之间的逐个步骤的消息传递来彼此同步地执行两个自动 化图的图节点的有效载荷。
[0009]计算机实现的方法、计算机系统以及具有可执行代码的有形存储介质还可以实现 以下操作:提供用户接口,供用户输入与用户定义的自动化动作和因果关系对应的信息;以 及基于所输入的用户定义的自动化动作和因果关系来导出自动化图。输入的信息可以对应 于具有用于每个自动化动作的先行发生(happens-before)关系和有效载荷的图邻接列表。
附图说明
[0010]图1示出根据本公开的实施例的示例云计算体系结构。
[0011^图2示出根据本公开的实施例的实例化具有(一个或多个)虚拟机的客户系统的平 台的示例,该(一个或多个)虚拟机具有在客户系统的生命周期期间执行用户定义的自动化 动作的客户代理。
[0012] 图3_图6示出由用户通&Web客户端请求的服务的示例云部署的逐个步骤的功能 图。
[0013] 图7示出客户系统生命周期的示例的高级示意图。
[0014] 图8示出示例用户接口,用户可以通过该用户接口输入和定义自动化动作和因果 关系,从自动化动作和因果关系中导出(或者构造)自动化动作的自动化图(诸如有向无环 图(DAG)),以用于在客户系统的虚拟机被启动以执行应用时在自动化和控制客户系统的虚 拟机上的动作中使用。
[0015] 图9示出具有五个步骤的自动化动作的有向无环图的简单示例。
[0016] 图10A和图10B示出具有长期运行的步骤的自动化动作的有向无环图的示例。
[0017]图11示出具有“不情愿(re 1 uctant) ”节点的自动化动作的有向无环图的示例,以 解决在客户系统中发生致命故障的情况。
[0018]图12示出具有条件执行的自动化动作的有向无环图的示例。
[0019]图13示出具有“渴望节点”的自动化动作的有向无环图的示例,“渴望节点”可以被 用来缓解在应用、虚拟机或者客户系统上发生非致命故障的情况。
[0020]图14示出由用户定义自动化动作以及它们的因果关系从而导出与应用的执行相 关联的自动化图,以及当启动客户系统以及它的(一个或多个)虚拟机以执行应用或者应用 组成部分时由客户代理实现自动化动作以及它们的因果关系的过程。
具体实施方式
[0021]提供具有集中式自动化系统的计算机化的系统和方法,以解决使得(一个或多个) 现有应用以方便并且可靠的方式在云上执行的技术问题。集中式自动化系统(例如,云计算 体系结构上的平台)管理通过客户系统以及它的(一个或多个)虚拟机(诸如具有一个或多 个虚拟机的分布式客户系统)提供的应用。通常,客户系统可以包含诸如来自不同供应商的 多个应用,该多个应用需要由自动化系统动态地配置和集成。在云计算体系结构中,平台按 需为用户供应系统,并且然后允许用户通过web浏览器使用应用(例如,系统应用)。应用和 拓扑(子网络和虚拟机的数量)由用户本身定义。想要在平台上托管他们的应用的应用所有 者配置用户在他们的系统蓝图中使用的基本构建块。这些构建块是具有预先安装的应用软 件的“机器镜像”以及允许自动配置和执行软件的“自动化动作步骤”。计算机化的系统和方 法提供用来定义并且然后执行自动化动作步骤的方案。客户应用通常是相当复杂的,诸如 例如分布式仿真环境。这些应用可以利用许多联网的(集群)机器来实时地处理大的仿真模 型。方法或者系统还向用户提供定义并且自动化用于在分布式客户系统的(一个或多个)虚 拟机上执行的(一个或多个)应用的故障监视和缓解(mitigation)的灵活性。
[0022]根据本公开,向用户提供用户接口,通过该用户接口以声明性的方式配置用于(一 个或多个)应用的自动化动作,以供在客户系统的虚拟机上操作。具体地,用户可以定义或 者陈述一组自动化动作以及它们与彼此的因果关系,例如,“在后发生(happens after) ”关 系。此后,自动化系统可以通过导出(或者构造)自动化图来自动地提取最大级别的并发性。 自动化图可以例如采取相关的自动化动作的有向无环图(DAG)表示的形式。一旦自动化动 作由用户针对应用定义,则每当启动客户系统以及它的(一个或多个)虚拟机时,诸如平台 (例如,商用现货(COTS)平台)之类的自动化系统可以在客户系统上执行由用户指定的动 作。每个自动化动作(也称作“自动化动作步骤”)的状态和结果被日志记录并且被报告给感 兴趣的用户。自动化动作在失败时重试。
[0023]用户定义的自动化动作在平台中集中管理,并且使用安装在由客户系统使用的每 个虚拟机镜像中的客户代理(例如,安全客户代理组件)在暂时性的云机器上远程地执行。 跨不同机器的自动化动作可以以两种方式协调:(1)同步屏障(barrier) —其中分开的机器 上的自动化图在继续之前等待彼此;以及(2)自动化的逐个步骤的消息传递(例如,一个机 器上的步骤可以等待来自不同机器上的另一个步骤的信号)。自动化系统在整个客户系统 生命周期期间还是有效的,诸如以下:应用配置、内容加载和应用启动(在开机期间)被自动 化;自动化系统(在运行时期间)监视或者关注具体的故障并且自动化它们的缓解;以及自 动化系统(在关机期间)自动化内容持久化。上面是可以由用户针对应用定义、并且当执行 应用或者其组成部分时在客户系统和它的(一个或多个)虚拟机的生命周期期间被执行的 用户定义的自动化动作以及它们的关系的一些非限制的示例性类别。根据本公开的各种实 施例,下面参考附图更详细地描述这种计算机化的系统和方法的示例。
[0024] A.体系结构
[0025]图1示出用于通过使用虚拟系统或者虚拟机执行应用来向用户提供基于云的服务 的云计算体系结构10的示例。体系结构10包括(一个或多个)用户web客户端20、(一个或多 个)第三方客户端30以及云100,服务通过云100被供给和提供给用户web客户端20。客户端 20和30可以在(一个或多个)计算机系统上实现,该(一个或多个)计算机系统包括处理器 (例如,CPU)、存储应用和数据的存储器、输入设备、输出设备和网络接口设备(例如,发送器 和接收器电路系统)。作为向用户供应服务的一部分第三方可以与云100交互。
[0026]云100包括平台110,平台110是持久的分布式应用。用户通过(一个或多个)用户 web客户端20可以经由门户180请求并且访问云100上的服务以及它们的应用,门户180在该 示例中是允许在线用户访问平台110的瘦web应用。平台110是将经由云驱动器116使用对云 100基础设施即服务120 (IaaS)提供者的API调用供应客户系统130作为它的主要功能之一 的web服务应用。平台110可以包括用于存储和修订控制的中心内容存储库、用于元数据的 存储装置、用于可重用软件(例如,(一个或多个)系统应用)的存储装置以及用于客户代理 软件的存储装置。当启动时,每个客户系统130可以包括一个或多个虚拟机140,该一个或多 个虚拟机140执行(一个或多个)应用或者其组成部分以将所请求的服务提供给用户。客户 系统130可以由用户使用蓝图(模板)定义,并且由平台110使用在蓝图中指定的拓扑和虚拟 机镜像来实例化。客户系统130是暂时性的(ephemeral),这是指平台110按需供应和管理它 们。
[0027] 平台110可以在云100中的数据中心150上运行,并且管理体系结构10中的所有状 态。数据中心150可以跨(一个或多个)网络152连接,并且至少包括(一个或多个)处理器(例 如,CPU)、存储器和(一个或多个)网络接口设备。平台110功能包括:
[0028] •供应虚拟网络和客户系统130以及虚拟机140,并且在客户系统130中启动可以 在运行时模板中配置的客户应用和客户代理;
[0029] •监视客户应用并且处理它们的故障;
[0030] •管理用户、用户分组和资源授权;
[0031] •根据如由应用角色定义而定义的配方,作为后台任务构建并且更新机器镜像;
[0032] •提供软件应用,用户可以通过该软件应用指定自动化动作和它们的因果关系以 导出(一个或多个)自动化图,(客户系统130的)虚拟机140上的客户代理,在被启动以执行 客户应用时,通过该(一个或多个)自动化图在客户应用、虚拟机140或者客户系统130的生 命周期内自动化并且控制这些动作;以及
[0033] •促进同一客户系统130中和/或不同客户系统130中的虚拟机140之间的消息传 递(例如,逐个步骤的消息传递)。
[0034]当(一个或多个)数据中心ISO经由它的(一个或多个)处理器执行存储在存储器中 的并发的和分布式的平台应用时,(一个或多个)数据中心150的处理器和存储器执行虚拟 机镜像存储的方法、包括用户定义的自动化动作经由客户代理的实现的运行时供应的方法 以及根据本公开的各种实施例在本文描述的其他功能、操作和步骤的方法。
[0035]在该示例中,平台110是按需在云100上供应仿真系统的仿真即服务云平台,并且 包括与客户系统130的虚拟机140上的(一个或多个)应用或者其组成部分交互以向用户提 供仿真服务的仿真环境控制器114和模型储存库112。平台110还包括平台应用程序接口 (API) 118,用户web客户端20可以通过平台应用程序接口 118经由门户180访问平台110。在 该示例中,客户系统130在一个或多个虚拟机上或者跨一个或多个虚拟机实现动态仿真 (DYNSIM)应用,动态仿真应用包括学习管理系统节点(LMS) 142、DYNSIM仿真执行节点 (SimExecutive Node,SE) 144、InTouch HMI节点(UI) 146以及三个计算引擎⑻ 148(也称作 客户仿真集群)。用户可以经由远程桌面会话访问客户系统130的(一个或多个)虚拟机140, 以运行例如用于炼油厂中的蒸汽控制系统的设计过程。用户可以作为网站访问LMS 142,并 且作为HTML5远程桌面会话访|'n]UI 146。
[0036]体系结构10的基础设施即服务(IaaS) 120是用于访问、监视并且管理云100中的数 据中心150的基础设施的网络实用程序,以执行诸如计算(虚拟化的或者裸机(bar e metal))、存储、联网和联网服务(例如,防火墙)之类的功能。
[0037]图2示出实例化客户系统130中的虚拟机140的平台110的示例,客户系统130包括 虚拟机可执行应用(或者软件)202、客户代理204和客户操作系统(OS) 206。根据本公开的示 例性实施例,并发和分布式平台110应用当前正在图1的云数据中心150中的特定云数据中 心中执行,并且因此,数据中心150的存储器当前包括虚拟机可执行应用202。平台110实现 客户系统13〇中的进程间通信和动态对象创建。平台110实例化客户系统130中的虚拟机 140。客户代理204使用算法230根据用户定义的自动化动作或者对应的(一个或多个)自动 化图,在客户系统130的虚拟机140或者应用202的生命周期内的一个或多个阶段,自动地执 行由用户定义的动作。客户代理204根据自动化图等来应用如由用户指定的自动化动作步 骤,并且将结果返回到平台驱动器(例如,图1中的116)。平台驱动器遍历(run through)自 动化序列,直到完成或者发生致命故障。客户0S 206是能够在客户系统130中执行并且支持 虚拟机可执行应用2〇2和客户代理204的操作系统。
[0038]平台1〇6包括数据存储库220,数据存储库220存储并且维护用户定义的自动化动 作八一个或多个)自动化图数据222、内容数据224 (例如,项目特定的内容)、元数据226 (例 如,到内容数据2¾或者内容数据224中的具体内容的URL、或者到在平台110上维护的其他 数据的URL)以及其他数据,这些数据由客户系统130使用以将所请求的服务提供给用户。用 户定义的自动化动作/(一个或多个)自动化图数据222包括与用户定义的自动化动作(例 如,有效载荷)以及它们与彼此的因果关系(例如,前驱、后继等)对应的信息和/或(一个或 多个)导出的自动化图,并且在客户系统130以及它的虚拟机140启动时,被用来在客户系统 130中发起并且控制(如由用户指定的)动作的自动化。自动化图可以采取有向无环图(DAG) 的形式。
[0039]虚拟机可执行应用202的示例可以包括将服务提供给用户的可执行软件程序,诸 如在该示例中为动态过程仿真。可执行应用2〇2可以应用到的第一示例项目特定的功能可 以是用于设计用于炼油厂中的蒸汽控制系统的过程的项目。示例内容数据224可以包括设 计用于蒸汽控制系统的过程所需的数据,诸如例如,蒸汽源数据、阀门数据、管道数据等。应 当理解,应用2〇2可以向用户提供其他类型的服务或者功能。
[0040]当平台110创建虚拟机140时,它将关于虚拟机140的信息记录在注册表210中,注 册表21〇是存储诸如虚拟机标识符和地址之类的信息以及引用虚拟机140的其他对象的引 用身份的数据库。注册表中的引用身份(identity)使得(一个或多个)其他应用程序能够响 应于应用请求来定位虚拟机140。
[0041]图3-图6示出由用户诸如通过图1的用户web客户端20请求的服务的示例部署中的 操作的高级示意图。在图3中,示出高级别的基于云的体系结构300,该体系结构300具有门 户(例如,图1中的180)的节点320以及平台(例如,图1的110)的节点340,其处于始终在线并 且就绪的状态以经由web客户端接收来自用户的在云上发起服务的请求(例如启动命令)。 在体系结构3〇〇中,跨门户节点320执行负载均衡310,并且跨平台节点340执行平台均衡 33〇。如图4中所示,用户经由用户web客户端通过可用的门户节点320登录到门户上,并且向 可用的平台节点340发送在云上启动客户系统450的请求。如图5中所示,客户系统450由平 台节点340供应,并且为用户的(一个或多个)应用创建定制URL 560。如先前描述的,客户系 统可以包括具有客户代理的(一个或多个)虚拟机,客户代理被配置为根据从如由用户定义 的自动化动作和它们的因果关系中导出的自动化图来在用户的(一个或多个)应用或者虚 拟机的生命周期内实现用户定义的自动化动作。如图6中所示,平台节点340继续在云上供 应许多客户系统450。用户可以在需要时终止会话,以终止(一个或多个)客户系统450。
[0042] B.客户系统生命周期
[0043]图7示出客户系统生命周期的示例的高级示意图700。本公开的自动化系统在客户 系统生命周期内工作。用户可以定义自动化动作以及它们的因果关系以导出对应的(一个 或多个)自动化图,该(一个或多个)自动化图由平台使用客户系统的虚拟机中的客户代理 在生命周期的任何阶段或者每个阶段触发并且执行。如图7中所示,示例生命周期可以涉及 进程或者服务,诸如网络运行器710、集群运行器730、分组运行器750和节点运行器770。在 该示例中,网络运行器710处于网络可用(NetworksAvailable)阶段,集群运行器730处于运 行集群(RunCluster)阶段,分组运行器730处于节点运行(NodeRunning)阶段,并且节点运 行器770处于运行(Running)阶段。
[0044] 如节点运行器770中所示,客户系统节点(例如,虚拟机)可以经过以下高级别的生 命周期阶段:
[0045] #1.初始化(Init)
[0046] #2.虚拟机(VM)启动
[0047] #3.配置(Conf ig)
[0048] 鲁4.应用(App)启动
[0049] #5 •运行
[0050] #6.重启
[0051] #7.停止
[0052] #8.关机
[0053]因此,本公开的自动化系统允许用户定义并且自动化要在客户系统的生命周期中 的一个或多个阶段(例如,诸如VM启动之后的阶段3至8)期间执行的期望的动作。
[0054] C.用户定义的自动化动作/图
[0055]图8示出用户接口 800的示例,用户可以通过用户接口 800输入并且定义自动化动 作以及动作之间的因果关系,从自动化动作以及动作之间的因果关系中导出自动化图。当 启动虚拟机以在机器上执行应用时,自动化图可以被用来自动化并且控制客户系统中的动 作(例如,操作、功能等)。用户接口8〇〇可以经由输入区810接收用户输入,诸如(i)动作的名 称,(ii)与其他动作的关系(例如,前驱或者在先的动作、下行的(descending)动作或者其 他因果关系),以及(iii)指示将要采取的自动化动作的有效载荷。输入区810可以包括图形 元素(例如,(一个或多个)图形输入框、下拉框等),用户可以通过图形元素定义自动化动作 以及自动化动作间的因果关系以导出自动化图。用户可以通过经由命令CONTINUE (继续)等 来继续输入过程从而一次一个地输入并且定义自动化动作以及它们与其他动作的关系。 [0056] 作为示例,用户接口 8〇0还可以包括观察区820,观察区820示出由用户定义的一组 自动化动作以及动作之间的因果关系。在该示例中,用户定义的自动化动作可以用 JavaScript对象符号(JS0N)定义,并且对应于图9中所示的简单的五步自动化图900的示 例。图9中的自动化图包括如在初始状态中示出的、由图节点“a”、“b”、“c”、“d”和“e”代表的 动作步骤。在操作期间,首先执行动作步骤“a”。然后并行地执行动作步骤“b”和“c”。接下 来,执行动作步骤“d”,随后是动作步骤“e”的执行,这完成自动化图。观察区820可以以图形 形式并发地或者分开地显示用户定义的自动化动作(例如,图9)。用户还可以经由EDIT (编 辑)命令来编辑自动化图或者特定的步骤,这可以允许用户直接地或者间接地(例如,通过 另一个窗口或接口)编辑观察区820中的信息。
[0057]因此,本公开的自动化系统能够提供对现有计算机系统和技术的各种技术改进, 诸如:(1)对分布式的、协调的自动化的集中式的、故障容差的管理;(2)用于编写跨机器集 群执行的复杂自动化的简单用户接口;以及⑶由自动化系统自动得到的最大并发性。
[0058]用户可以定义例如在客户系统的生命周期的阶段3-8 (例如,图7的配置、应用启 动、…关机)中触发的自动化图。平台在平台本身中集中地执行自动化图序列。自动化图步 骤在预先安装的客户代理的帮助下在每个客户系统节点上执行。客户代理应用自动化动作 步骤,并且将结果返回到平台驱动器。平台驱动器遍历(run through)自动化序列直到完成 或者发生致命故障为止。
[0059]自动化图可以是单独的自动化动作步骤的有向无环图(DAG)。这种图对于用户而 言通过指定例如单独的自动化动作步骤之间的“在先发生”关系(例如,前驱因果关系)构造 起来简单直观。因此,可以提供用户接口,该用户接口允许用户定义自动化动作步骤以及它 们与彼此的因果关系以构造自动化图,而不需要实质的计算机编程知识或技能。用户可以 定义自动化动作步骤以及(i)在与应用相关联的自动化图内它们与彼此的因果关系或者 (ii)在用于不同应用或者应用组成部分的自动化图之间它们与彼此的因果关系。用户可以 构造(一个或多个)自动化图以在客户系统和它的(一个或多个)虚拟机被启动之后在客户 系统的生命周期中的任何期望阶段执行自动化动作。自动化动作步骤(例如,动作)的非限 制性示例包括:
[0060] #编写配置文件,
[0061] #替换某些注册表键,
[0062] #读取配置文件并且替换某些变量,
[0063] 鲁从远程内容存储库中克隆内容,
[0064] #启动程序,
[0065] #重新启动服务,
[0066] #关注文件,或者
[0067] #其他被动动作(例如,监视)或者主动动作。
[0068]在用户定义自动化动作步骤之间的因果关系之后,平台被配置为从图中提取最大 并行度,并且经由客户代理在客户系统上执行它。
[0069]图10A和图10B示出具有分别在初始状态和在1.1秒之后的执行状态中的具有长期 运行的动作步骤的自动化动作的(一个或多个)自动化图1000的示例。图1000包括具有由图 节点“a”、“b”、“c”、“d”、“e”、“f”和“g”代表的动作步骤的第一自动化子图,以及具有由节点 “h”、“i”、“j”和“k”代表的动作步骤的第二自动化子图。步骤“c”具有1000ms延迟。步骤“g” 具有50ms延迟。步骤“i”具有5000ms延迟。执行遵循图的流,也就是只有当节点的所有前驱 已经成功地完成时,该节点才执行它的有效载荷。如图10B中所示,在1.1秒之后,动作步骤 “d”和“i”仍然在客户系统中执行,并且动作步骤“g”已经在客户系统中完成执行。具有前驱 “d”和“g”的动作步骤“e”仍然等待执行;并且具有前驱“i”的动作步骤“j”和“k”仍然等待执 行。
[0070]图10A中的两个分开的自动化子图可以在客户系统中的相同或者不同的虚拟机上 实现,并且可以同步地执行。即,分开的机器上的两个自动化图可以在继续它们的执行之前 等待彼此。为了同步不同虚拟机上的自动化图的执行,虚拟机的客户代理可以经由反映它 们各自的自动化图的执行状态的逐个步骤的消息传递来与彼此通信。例如,一个虚拟机上 的动作步骤可以在继续之前等待来自不同机器上的另一个动作步骤的信号。
[0071]图11示出使用图10A中的(一个或多个)自动化图1000的示例,以示出客户系统中 发生致命(fatal)故障的情况。在操作中,执行自动化图中的动作步骤的客户代理被配置为 在执行期间感测并且处理致命错误。在该示例中,在动作步骤“g”处识别并且声明致命故 障。任何自动化动作步骤的逻辑可以声明致命故障。当致命故障被声明时,客户代理上的图 执行器应用或者软件针对自动化图的所有节点停止执行,并且将事件提升至平台。
[0072] D.条件自动化图节点
[0073]在大多数实践应用中,存在对有条件地执行自动化图的部分的情况进行建模的需 求。图节点可以被配置为有条件地传递正常的“动作”执行消息或者“无动作”消息。当下游 节点接收到无动作输入时,它们然后将跳过执行,并且将无动作消息传递到下游节点。这允 许节点在运行时做出决策。例如,节点可以测量条件并且决定使得在下游跳过执行。自动化 图可以被配置为做出运行时决策。即使一些图节点不执行,自动化图也将仍然完成执行。因 此,自动化图的下游节点可以被配置为以两种方式中的一种对动作输入做出反应:(1)作为 不情愿执行的“不情愿”节点,这是指任何无动作输入信号将使得节点跳过执行,或者⑵作 为渴望执行的“渴望”节点,这是指当任何输入信号是动作时节点将执行它的有效载荷。下 面参考图12和图13描述这些类型的节点配置的示例。
[0074]图12示出具有条件执行的自动化动作的自动化图1200的示例。图1200包括由图节 点“a”至“s”代表的动作步骤。在该示例中,图节点“m”逻辑决定跳过它自己的和下游节点的 执行。下游节点对“无动作”或者“动作”信号做出反应。在下面的示例中,节点“m”被配置为 跳过执行,并且传递无动作信号。在图1200中所有节点都不情愿执行。
[0075]图13示出具有“渴望”节点的自动化图1300的示例,“渴望”节点可以被用来缓解客 户系统中发生非致命故障的情况。如同图12中的图1200那样,图1300包括由图节点“a”至 “s”代表的动作步骤。在该示例中,图节点“m”同样被配置为模拟跳过的执行。图节点V和 “r”渴望地执行,因为它们接收到至少一个动作信号。因此,用户可以在客户系统上发生“非 致命”故障的情况下根据自动化图继续实现自动化动作。
[0076] E.示例过程
[0077]图14示出根据本公开的实施例的由用户定义自动化动作以及彼此之间的因果关 系以导出自动化图的过程1400,并且过程1400通过(一个或多个)虚拟机在执行一个或多个 应用或者其组成部分的客户系统上实现。诸如在图1和图2的示例系统体系结构10中,过程 1400可以使用数据中心在云上的平台上实现。
[0078]在步骤14〇2,由平台提供用户接口(UI),以供用户输入并且为将在(一个或多个) 虚拟机上执行的(一个或多个)应用或者其组成部分定义自动化动作以及彼此之间的因果 关系。用户接口可以作为web服务或者应用提供给用户。
[0079]在步骤1404,平台接收用户定义的自动化动作和因果关系,并且导出(或者构造) 用于(一个或多个)应用或者其组成部分的自动化图。
[0080]在步骤1406,与(一个或多个)应用或者其组成部分相关地存储用户定义的自动化 动作和因果关系和/或自动化图。
[0081]在步骤140S,平台启动具有包括客户代理和应用的(一个或多个)虚拟机的客户系 统。
[0082]在步骤1410,在客户系统和虚拟机(例如,在虚拟机/客户系统的生命周期内)启动 之后,客户代理根据自动化图在(一个或多个)虚拟机中执行用户定义的自动化动作。如果 客户系统是具有多个虚拟机的分布式客户系统,那么虚拟机可以被配置为在通过它们的客 户代理实现它们各自的自动化图的同时在逐个步骤的基础上与彼此通信,以使得自动化动 作可以以同步的方式实现。类似地,逐个步骤的消息传递还可以在不同客户系统上的虚拟 机之间执行,以便以同步的方式实现它们各自的自动化图。
[0083]应当理解,上文描述的系统和方法作为示例而提供。自动化系统可以在除了使用 虚拟化向用户或者其他实体提供基于应用的服务的基于云的计算机系统或体系结构之外 的任何适当的联网计算机系统或体系结构上实现。
[0084]应当理解,结合所公开的实施例的方面的实际的真正商业应用的开发将需要许多 特定于实施方式的决策,以实现开发者对于商业实施例的最终目标。这种特定于实施方式 的决策可以包括并且类似地不限于,与系统相关、业务相关、政府相关的约束和其他约束的 合规性,这些约束可以根据具体的实施方式、位置以及随时间变化。虽然开发者的努力在绝 对意义上可能是复杂并且耗时的,但是这种努力对于受益于本公开内容的本领域技术人员 将仍然是惯例任务。
[0085] 同样应当理解,在本文中公开和教导的实施例易于受许多以及各种修改和可替代 的形式的影响。因此,单数项目,诸如但不限于“一个”等,的使用并不旨在作为项目数量的 限制。
[0086] 虽然己经公开了本发明的具体示例实施例,但是本领域技术人员将理解,可以在 不脱离本发明的精神和范围的情况下对针对具体示例实施例而描述的细节进行改变。

Claims (19)

1. 一种将用于使用客户系统中的至少一个虚拟机经由平台执行的一个或多个应用的 动作自动化的计算机实现的方法,每个虚拟机包括客户操作系统、客户代理以及将要在虚 拟机上执行的应用,所述方法包括: 将用户定义的自动化动作以及所述用户定义的自动化动作之间的因果关系存储在存 储器中,从所述用户定义的自动化动作以及所述用户定义的自动化动作之间的因果关系中 为将在客户系统上的虚拟机上执行的应用导出自动化图; 经由所述平台启动所述客户系统和所述虚拟机;以及 在所述客户系统和所述虚拟机启动之后,根据所述自动化图经由所述虚拟机的客户代 理来执行所述用户定义的自动化动作。
2. 根据权利要求1所述的计算机实现的方法,其中所述平台被配置为对于所述客户系 统执行初始化、VM启动、配置、应用启动、运行、重启、停止和关机的阶段,以及 其中所述用户定义的自动化动作由所述客户代理在配置、应用启动、运行、重启、停止 和关机的阶段中的一个或多个阶段中或者一个或多个阶段期间执行。
3. 根据权利要求1所述的计算机实现的方法,其中所述平台在云计算体系结构上实现, 所述客户系统和所述虚拟机由所述平台响应于经由web浏览器通过因特网发送的请求而启 动。
4. 根据权利要求1所述的计算机实现的方法,其中所述自动化图是包括多个图节点的 有向无环图,所述多个图节点具有与将要执行的所述用户定义的自动化动作中的相应的用 户定义的自动化动作对应的有效载荷,图节点的所述有效载荷根据所述用户定义的因果关 系按照顺序的次序执行。
5.根据权利要求4所述的计算机实现的方法,其中所述多个图节点包括具有多个直接 前驱节点的至少一个条件节点,当多个直接前驱图节点中的至少一个直接前驱图节点的有 效载荷的执行已经完成时,即使其他直接前驱图节点中的一个或多个直接前驱图节点的执 行失败或者没有完成,虚拟机的客户代理也执行条件节点的有效载荷。
6.根据权利要求4所述的计算机实现的方法,其中所述用户定义的自动化动作具有将 在两个不同的虚拟机上执行的与所述用户定义的自动化动作相关联的两个自动化图,所述 两个自动化图中的每个自动化图包括多个图节点,所述多个图节点具有与用户定义的自动 化动作中的相应的用户定义的自动化动作对应的有效载荷,虚拟机彼此同步地执行所述两 个自动化图的图节点的有效载荷。
7.根据权利要求6所述的计算机实现的方法,其中所述虚拟机经由所述虚拟机之间的 逐个步骤的消息传递,彼此同步地执行所述两个自动化图的图节点的有效载荷。
8.根据权利要求1所述的计算机实现的方法,还包括: 提供用户接口,供用户输入与用户定义的自动化动作和因果关系对应的信息;以及 基于输入的用户定义的自动化动作和因果关系导出所述自动化图。
9.根据权利要求8所述的计算机实现的方法,其中所输入的信息对应于具有用于每个 自动化动作的先行发生关系和有效载荷的图邻接列表。
10.—种存储可执行代码的有形存储介质,所述可执行代码当由一个或多个处理器执 行时,实现将用于使用客户系统中的至少一个虚拟机经由平台执行的一个或多个应用的动 作自动化的方法,每个虚拟机包括客户操作系统、客户代理以及将要在虚拟机上执行的应 用,所述方法包括: 将用户定义的自动化动作以及所述用户定义的自动化动作之间的因果关系存储在存 储器中,从所述用户定义的自动化动作以及所述用户定义的自动化动作之间的因果关系中 为将在客户系统上的虚拟机上执行的应用导出自动化图; 经由所述平台启动所述客户系统和所述虚拟机;以及 在所述客户系统和所述虚拟机启动之后,根据所述自动化图经由所述虚拟机的客户代 理来执行所述用户定义的自动化动作。
11. 一种将用于使用客户系统中的至少一个虚拟机经由平台执行的一个或多个应用的 动作自动化的计算机系统,每个虚拟机包括客户操作系统、客户代理以及将要在虚拟机上 执行的应用,所述计算机系统包括: 存储器;以及 提供平台的一个或多个处理器,所述平台被配置为: 将用户定义的自动化动作以及所述用户定义的自动化动作之间的因果关系存储在存 储器中,从所述用户定义的自动化动作以及所述用户定义的自动化动作之间的因果关系中 为将在客户系统上的虚拟机上执行的应用导出自动化图; 经由所述平台配置和供应所述客户系统和所述虚拟机;以及 在所述客户系统和所述虚拟机被配置和供应之后,根据所述自动化图经由所述虚拟机 的客户代理来执行所述用户定义的自动化动作。
12. 根据权利要求11所述的计算机系统,其中所述平台被配置为对于所述客户系统执 行初始化、VM启动、配置、应用启动、运行、重启、停止和关机的阶段,以及 其中所述用户定义的自动化动作由所述客户代理在配置、应用启动、运行、重启、停止 和关机的阶段中的一个或多个阶段中或者一个或多个阶段期间执行。
13. 根据权利要求11所述的计算机系统,其中所述平台在云计算体系结构上实现,所述 客户系统和所述虚拟机由所述平台响应于经由web浏览器通过因特网发送的请求而配置和 供应。
14. 根据权利要求11所述的计算机系统,其中所述自动化图是包括多个图节点的有向 无环图,所述多个图节点具有与将要执行的所述用户定义的自动化动作中的相应的用户定 义的自动化动作对应的有效载荷,图节点的所述有效载荷根据所述用户定义的因果关系按 照顺序的次序执行。
15. 根据权利要求14所述的计算机系统,其中所述多个图节点包括具有多个直接前驱 节点的至少一个条件节点,当多个直接前驱图节点中的至少一个直接前驱图节点的有效载 荷的执行已经完成时,即使其他直接前驱图节点中的一个或多个直接前驱图节点的执行失 败或者没有完成,虚拟机的客户代理也执行条件节点的有效载荷。
16. 根据权利要求14所述的计算机系统,其中所述用户定义的自动化动作具有将在两 个不同的虚拟机上执行的与所述用户定义的自动化动作相关联的两个自动化图,所述两个 自动化图中的每个自动化图包括多个图节点,所述多个图节点具有与用户定义的自动化动 作中的相应的用户定义的自动化动作对应的有效载荷,虚拟机彼此同步地执行所述两个自 动化图的图节点的有效载荷。
17. 根据权利要求16所述的计算机系统,其中所述虚拟机经由所述虚拟机之间的逐个 步骤的消息传递,彼此同步地执行所述两个自动化图的图节点的有效载荷。 1S.根据权利要求11所述的计算机系统,其中所述一个或多个处理器被配置为提供用 于供用户输入与用户定义的自动化动作和因果关系对应的信息的用户接口,以及基于输入 的用户定义的自动化动作和因果关系导出所述自动化图。 又求18所述的计算机系统,其中所输入的信息对应于具有用于每个自动 化动作的先行发生关系和有效载荷的图邻接列表。
CN201711379415.4A 2016-12-20 2017-12-20 应用生命周期管理系统 Pending CN108205463A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/385,171 2016-12-20
US15/385,171 US20180173526A1 (en) 2016-12-20 2016-12-20 Application lifecycle management system

Publications (1)

Publication Number Publication Date
CN108205463A true CN108205463A (zh) 2018-06-26

Family

ID=60813585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711379415.4A Pending CN108205463A (zh) 2016-12-20 2017-12-20 应用生命周期管理系统

Country Status (3)

Country Link
US (2) US20180173526A1 (zh)
EP (1) EP3340034A1 (zh)
CN (1) CN108205463A (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10505961B2 (en) 2016-10-05 2019-12-10 Amazon Technologies, Inc. Digitally signed network address
US10831549B1 (en) * 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10303522B2 (en) * 2017-07-01 2019-05-28 TuSimple System and method for distributed graphics processing unit (GPU) computation
US10587463B2 (en) * 2017-12-20 2020-03-10 Hewlett Packard Enterprise Development Lp Distributed lifecycle management for cloud platforms
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11038778B2 (en) * 2018-12-11 2021-06-15 Vmware, Inc. Methods and systems that provision distributed applications that invoke functions provided by a distributed-function-as-a-service feature
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729746A (en) * 1992-12-08 1998-03-17 Leonard; Ricky Jack Computerized interactive tool for developing a software product that provides convergent metrics for estimating the final size of the product throughout the development process using the life-cycle model
US20070021995A1 (en) * 2005-07-20 2007-01-25 Candemir Toklu Discovering patterns of executions in business processes
US8099480B1 (en) * 2008-11-25 2012-01-17 Google Inc. Scalable workflow design for automated service management
US9672493B2 (en) * 2012-01-19 2017-06-06 International Business Machines Corporation Systems and methods for detecting and managing recurring electronic communications
WO2014088537A1 (en) * 2012-12-03 2014-06-12 Hewlett-Packard Development Company, L.P. Binding of application and infrastructure blueprints
US9134962B1 (en) * 2013-03-15 2015-09-15 Sanctum Solutions, Inc. Interactive content development

Also Published As

Publication number Publication date
EP3340034A1 (en) 2018-06-27
US20180173526A1 (en) 2018-06-21
US20200133666A1 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
CN108205463A (zh) 应用生命周期管理系统
US9830135B2 (en) Declarative and pluggable business logic for systems management
Paraiso et al. Model-driven management of docker containers
Wettinger et al. Integrating Configuration Management with Model-driven Cloud Management based on TOSCA.
US9606521B2 (en) Chainable plug-ins
US20130131840A1 (en) Scalable automation system
US10656971B2 (en) Agile framework for vertical application development and delivery
Stillwell et al. A DevOps approach to integration of software components in an EU research project
Da Silva et al. Control architecture and design method of reconfigurable manufacturing systems
US10571898B2 (en) Control environment change communication
Puttonen et al. An application of BPEL for service orchestration in an industrial environment
Evrard et al. Automatic distributed code generation from formal models of asynchronous concurrent processes
Atmojo et al. Dynamic reconfiguration and adaptation of manufacturing systems using SOSJ framework
Kalantar et al. Weaver: Language and runtime for software defined environments
US9626251B2 (en) Undo configuration transactional compensation
Zhu et al. If docker is the answer, what is the question?
Pham et al. Autonomic fine-grained migration and replication of component-based applications across multi-clouds
US20210208576A1 (en) Automatic setup of digital twins for industrial controllers
Tipaldi et al. Development strategies for the satellite flight software on-board Meteosat Third Generation
Bicevskis et al. A Practitioners Approach to Achieve Autonomic Computing Goals
CN108628686A (zh) 用于在云环境中设计和建模产品的系统和方法
Leite et al. A computing environment configuration management pattern based on a software product line engineering method
Buit PC104 stack mechatronic control platform
Rodríguez et al. Evolution of Handling Web Applications Up to the Current DevOps Tools
Lyu Evaluation of Containerized Simulation Software in Docker Swarm and Kubernetes

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