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
client
node
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.)
Granted
Application number
CN201711379415.4A
Other languages
English (en)
Other versions
CN108205463B (zh
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
Application filed by Schneider Electric Software LLC filed Critical Schneider Electric Software LLC
Publication of CN108205463A publication Critical patent/CN108205463A/zh
Application granted granted Critical
Publication of CN108205463B publication Critical patent/CN108205463B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

Abstract

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

Description

应用生命周期管理***
技术领域
本公开内容涉及一种计算机化的方法和***,该方法和***用于将由用户指定以在云环境中的虚拟机和网络的分布式***上以良好定义的并且精心编排的步骤序列或者受管理的步骤序列来配置和供应简单或复杂的应用的动作自动化,并且此外用于实现由用户指定以在客户***上出故障的情况下自动执行的自动化故障监视和缓解动作。
背景技术
基于软件的服务可以通过在云上提供的虚拟机的使用被提供给用户。用户通过web客户端可以经由因特网访问云,并且请求通过(一个或多个)应用在(一个或多个)虚拟机上的执行而提供的这些基于软件的服务。然而,随着应用变得越来越复杂,需要更多的处理能力和存储器,当这些应用的组成部分跨客户***中的不同虚拟机分布和/或在这些应用向用户的供应中发生故障或者其他问题时,这变得更加成问题。这种复杂分布式***的配置和启动相当繁杂;虚拟网络、虚拟机实例和应用本身需要按照精确并且协调的步骤系列被正确地配置和启动。应用故障或者其他故障可以导致在客户***的(一个或多个)虚拟机上执行的应用的终止。在这种情况下,管理员可能需要花费大量的资源(包括时间),以在事后识别这种故障的原因。此外,故障不仅对于终端用户是令人沮丧的,而且还可能导致生产力和数据的损失。
因此,存在对现有计算机***和技术的如下技术改进的需求,该技术改进将向用户提供定义和自动化用于在客户***的(一个或多个)虚拟机上执行的应用的故障监视和缓解的灵活性。还存在对现有计算机***和技术的如下技术改进的需求,该技术改进将允许用户协调和控制将(诸如在分布式客户***上)在执行不同应用或者不同应用的组成部分的不同虚拟机上执行的动作的时序。还存在对现有计算机***和技术的如下技术改进的需求,该技术改进将向用户提供跨通过云提供给一个或多个用户的(一个或多个)应用的生命周期来合并附加的功能和控制,而不必直接地修改或者更新(一个或多个)底层的应用的灵活性。
发明内容
为了解决这些问题和其他问题,提供了一种计算机化的方法和***,该方法和***使得用户能够定义自动化动作以及自动化动作之间的因果关系,以导出与应用的执行相关联的(一个或多个)自动化图。当启动客户***和它的(一个或多个)虚拟机以实现应用时,虚拟机被配置为在客户***的虚拟机的生命周期内根据自动化图经由虚拟机上的客户代理自动地实现由用户定义或者指定的动作(也称作“用户定义的自动化动作”)。以这种方式,有可能在虚拟机的生命周期内自动化各种动作,诸如自动化应用配置、在开机(startup)期间自动化内容加载和应用启动、监视或者关注具体的故障并且自动化它们的缓解以及在关机期间自动化内容持久化(persistence)。此外,通过提供同步屏障-其中分开的机器上的自动化图在继续之前等待彼此,并且通过提供自动化的逐个步骤的消息传递(例如,一个机器上的步骤可以等待来自不同机器上的另一个步骤的信号),有可能诸如在分布式客户***中跨不同机器来自动化动作。
根据示例性实施例,提供一种计算机实现的方法、计算机***以及具有可执行代码的有形存储介质以将用于使用客户***中的至少一个虚拟机经由平台执行的一个或多个应用的动作自动化。每个虚拟机包括客户操作***、客户代理以及将要在虚拟机上执行的应用。计算机实现的方法、计算机***以及有形存储介质被配置为实现以下操作:将用户定义的自动化动作以及用户定义的自动化动作之间的因果关系存储在存储器中,从用户定义的自动化动作以及用户定义的自动化动作之间的因果关系中为将在客户***上的虚拟机上执行的应用导出自动化图;经由平台启动客户***和虚拟机;以及在客户***和虚拟机启动之后,根据自动化图经由虚拟机的客户代理执行用户定义的自动化动作。
平台可以在云计算体系结构上实现。客户***和虚拟机由平台响应于通过因特网(例如,经由web浏览器)发送的请求而启动。平台可以为客户***执行初始化、VM启动、配置、应用启动、运行、重启、停止和关机的阶段。用户定义的自动化动作由客户代理在配置、应用启动、运行、重启、停止和关机的阶段中的一个或多个阶段中或者该一个或多个阶段期间执行。
自动化图可以是包括多个图节点的有向无环图,该多个图节点具有与将要执行的用户定义的自动化动作中的相应的用户定义的自动化动作对应的有效载荷。图节点的有效载荷根据用户定义的因果关系按照顺序的次序执行。此外,多个图节点可以包括具有多个直接前驱节点的至少一个条件节点。当多个直接前驱图节点中的至少一个直接前驱图节点的有效载荷的执行已经完成时,即使其他直接前驱图节点中的一个或多个直接前驱图节点的执行失败或者没有完成,虚拟机的客户代理也执行条件节点的有效载荷。
用户定义的自动化动作可以具有将在两个不同的虚拟机上执行的与用户定义的自动化动作相关联的两个自动化图。两个自动化图中的每个自动化图包括多个图节点,该多个图节点具有与用户定义的自动化动作中的相应的用户定义的自动化动作对应的有效载荷。虚拟机诸如通过使用虚拟机之间的逐个步骤的消息传递来彼此同步地执行两个自动化图的图节点的有效载荷。
计算机实现的方法、计算机***以及具有可执行代码的有形存储介质还可以实现以下操作:提供用户接口,供用户输入与用户定义的自动化动作和因果关系对应的信息;以及基于所输入的用户定义的自动化动作和因果关系来导出自动化图。输入的信息可以对应于具有用于每个自动化动作的先行发生(happens-before)关系和有效载荷的图邻接列表。
附图说明
图1示出根据本公开的实施例的示例云计算体系结构。
图2示出根据本公开的实施例的实例化具有(一个或多个)虚拟机的客户***的平台的示例,该(一个或多个)虚拟机具有在客户***的生命周期期间执行用户定义的自动化动作的客户代理。
图3-图6示出由用户通过web客户端请求的服务的示例云部署的逐个步骤的功能图。
图7示出客户***生命周期的示例的高级示意图。
图8示出示例用户接口,用户可以通过该用户接口输入和定义自动化动作和因果关系,从自动化动作和因果关系中导出(或者构造)自动化动作的自动化图(诸如有向无环图(DAG)),以用于在客户***的虚拟机被启动以执行应用时在自动化和控制客户***的虚拟机上的动作中使用。
图9示出具有五个步骤的自动化动作的有向无环图的简单示例。
图10A和图10B示出具有长期运行的步骤的自动化动作的有向无环图的示例。
图11示出具有“不情愿(reluctant)”节点的自动化动作的有向无环图的示例,以解决在客户***中发生致命故障的情况。
图12示出具有条件执行的自动化动作的有向无环图的示例。
图13示出具有“渴望节点”的自动化动作的有向无环图的示例,“渴望节点”可以被用来缓解在应用、虚拟机或者客户***上发生非致命故障的情况。
图14示出由用户定义自动化动作以及它们的因果关系从而导出与应用的执行相关联的自动化图,以及当启动客户***以及它的(一个或多个)虚拟机以执行应用或者应用组成部分时由客户代理实现自动化动作以及它们的因果关系的过程。
具体实施方式
提供具有集中式自动化***的计算机化的***和方法,以解决使得(一个或多个)现有应用以方便并且可靠的方式在云上执行的技术问题。集中式自动化***(例如,云计算体系结构上的平台)管理通过客户***以及它的(一个或多个)虚拟机(诸如具有一个或多个虚拟机的分布式客户***)提供的应用。通常,客户***可以包含诸如来自不同供应商的多个应用,该多个应用需要由自动化***动态地配置和集成。在云计算体系结构中,平台按需为用户供应***,并且然后允许用户通过web浏览器使用应用(例如,***应用)。应用和拓扑(子网络和虚拟机的数量)由用户本身定义。想要在平台上托管他们的应用的应用所有者配置用户在他们的***蓝图中使用的基本构建块。这些构建块是具有预先安装的应用软件的“机器镜像”以及允许自动配置和执行软件的“自动化动作步骤”。计算机化的***和方法提供用来定义并且然后执行自动化动作步骤的方案。客户应用通常是相当复杂的,诸如例如分布式仿真环境。这些应用可以利用许多联网的(集群)机器来实时地处理大的仿真模型。方法或者***还向用户提供定义并且自动化用于在分布式客户***的(一个或多个)虚拟机上执行的(一个或多个)应用的故障监视和缓解(mitigation)的灵活性。
根据本公开,向用户提供用户接口,通过该用户接口以声明性的方式配置用于(一个或多个)应用的自动化动作,以供在客户***的虚拟机上操作。具体地,用户可以定义或者陈述一组自动化动作以及它们与彼此的因果关系,例如,“在后发生(happens after)”关系。此后,自动化***可以通过导出(或者构造)自动化图来自动地提取最大级别的并发性。自动化图可以例如采取相关的自动化动作的有向无环图(DAG)表示的形式。一旦自动化动作由用户针对应用定义,则每当启动客户***以及它的(一个或多个)虚拟机时,诸如平台(例如,商用现货(COTS)平台)之类的自动化***可以在客户***上执行由用户指定的动作。每个自动化动作(也称作“自动化动作步骤”)的状态和结果被日志记录并且被报告给感兴趣的用户。自动化动作在失败时重试。
用户定义的自动化动作在平台中集中管理,并且使用安装在由客户***使用的每个虚拟机镜像中的客户代理(例如,安全客户代理组件)在暂时性的云机器上远程地执行。跨不同机器的自动化动作可以以两种方式协调:(1)同步屏障(barrier)-其中分开的机器上的自动化图在继续之前等待彼此;以及(2)自动化的逐个步骤的消息传递(例如,一个机器上的步骤可以等待来自不同机器上的另一个步骤的信号)。自动化***在整个客户***生命周期期间还是有效的,诸如以下:应用配置、内容加载和应用启动(在开机期间)被自动化;自动化***(在运行时期间)监视或者关注具体的故障并且自动化它们的缓解;以及自动化***(在关机期间)自动化内容持久化。上面是可以由用户针对应用定义、并且当执行应用或者其组成部分时在客户***和它的(一个或多个)虚拟机的生命周期期间被执行的用户定义的自动化动作以及它们的关系的一些非限制的示例性类别。根据本公开的各种实施例,下面参考附图更详细地描述这种计算机化的***和方法的示例。
A.体系结构
图1示出用于通过使用虚拟***或者虚拟机执行应用来向用户提供基于云的服务的云计算体系结构10的示例。体系结构10包括(一个或多个)用户web客户端20、(一个或多个)第三方客户端30以及云100,服务通过云100被供给和提供给用户web客户端20。客户端20和30可以在(一个或多个)计算机***上实现,该(一个或多个)计算机***包括处理器(例如,CPU)、存储应用和数据的存储器、输入设备、输出设备和网络接口设备(例如,发送器和接收器电路***)。作为向用户供应服务的一部分第三方可以与云100交互。
云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按需供应和管理它们。
平台110可以在云100中的数据中心150上运行,并且管理体系结构10中的所有状态。数据中心150可以跨(一个或多个)网络152连接,并且至少包括(一个或多个)处理器(例如,CPU)、存储器和(一个或多个)网络接口设备。平台110功能包括:
●供应虚拟网络和客户***130以及虚拟机140,并且在客户***130中启动可以在运行时模板中配置的客户应用和客户代理;
●监视客户应用并且处理它们的故障;
●管理用户、用户分组和资源授权;
●根据如由应用角色定义而定义的配方,作为后台任务构建并且更新机器镜像;
●提供软件应用,用户可以通过该软件应用指定自动化动作和它们的因果关系以导出(一个或多个)自动化图,(客户***130的)虚拟机140上的客户代理,在被启动以执行客户应用时,通过该(一个或多个)自动化图在客户应用、虚拟机140或者客户***130的生命周期内自动化并且控制这些动作;以及
●促进同一客户***130中和/或不同客户***130中的虚拟机140之间的消息传递(例如,逐个步骤的消息传递)。
当(一个或多个)数据中心150经由它的(一个或多个)处理器执行存储在存储器中的并发的和分布式的平台应用时,(一个或多个)数据中心150的处理器和存储器执行虚拟机镜像存储的方法、包括用户定义的自动化动作经由客户代理的实现的运行时供应的方法以及根据本公开的各种实施例在本文描述的其他功能、操作和步骤的方法。
在该示例中,平台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以及三个计算引擎(E)148(也称作客户仿真集群)。用户可以经由远程桌面会话访问客户***130的(一个或多个)虚拟机140,以运行例如用于炼油厂中的蒸汽控制***的设计过程。用户可以作为网站访问LMS 142,并且作为HTML5远程桌面会话访问UI 146。
体系结构10的基础设施即服务(IaaS)120是用于访问、监视并且管理云100中的数据中心150的基础设施的网络实用程序,以执行诸如计算(虚拟化的或者裸机(baremetal))、存储、联网和联网服务(例如,防火墙)之类的功能。
图2示出实例化客户***130中的虚拟机140的平台110的示例,客户***130包括虚拟机可执行应用(或者软件)202、客户代理204和客户操作***(OS)206。根据本公开的示例性实施例,并发和分布式平台110应用当前正在图1的云数据中心150中的特定云数据中心中执行,并且因此,数据中心150的存储器当前包括虚拟机可执行应用202。平台110实现客户***130中的进程间通信和动态对象创建。平台110实例化客户***130中的虚拟机140。客户代理204使用算法230根据用户定义的自动化动作或者对应的(一个或多个)自动化图,在客户***130的虚拟机140或者应用202的生命周期内的一个或多个阶段,自动地执行由用户定义的动作。客户代理204根据自动化图等来应用如由用户指定的自动化动作步骤,并且将结果返回到平台驱动器(例如,图1中的116)。平台驱动器遍历(run through)自动化序列,直到完成或者发生致命故障。客户OS 206是能够在客户***130中执行并且支持虚拟机可执行应用202和客户代理204的操作***。
平台106包括数据存储库220,数据存储库220存储并且维护用户定义的自动化动作/(一个或多个)自动化图数据222、内容数据224(例如,项目特定的内容)、元数据226(例如,到内容数据224或者内容数据224中的具体内容的URL、或者到在平台110上维护的其他数据的URL)以及其他数据,这些数据由客户***130使用以将所请求的服务提供给用户。用户定义的自动化动作/(一个或多个)自动化图数据222包括与用户定义的自动化动作(例如,有效载荷)以及它们与彼此的因果关系(例如,前驱、后继等)对应的信息和/或(一个或多个)导出的自动化图,并且在客户***130以及它的虚拟机140启动时,被用来在客户***130中发起并且控制(如由用户指定的)动作的自动化。自动化图可以采取有向无环图(DAG)的形式。
虚拟机可执行应用202的示例可以包括将服务提供给用户的可执行软件程序,诸如在该示例中为动态过程仿真。可执行应用202可以应用到的第一示例项目特定的功能可以是用于设计用于炼油厂中的蒸汽控制***的过程的项目。示例内容数据224可以包括设计用于蒸汽控制***的过程所需的数据,诸如例如,蒸汽源数据、阀门数据、管道数据等。应当理解,应用202可以向用户提供其他类型的服务或者功能。
当平台110创建虚拟机140时,它将关于虚拟机140的信息记录在注册表210中,注册表210是存储诸如虚拟机标识符和地址之类的信息以及引用虚拟机140的其他对象的引用身份的数据库。注册表中的引用身份(identity)使得(一个或多个)其他应用程序能够响应于应用请求来定位虚拟机140。
图3-图6示出由用户诸如通过图1的用户web客户端20请求的服务的示例部署中的操作的高级示意图。在图3中,示出高级别的基于云的体系结构300,该体系结构300具有门户(例如,图1中的180)的节点320以及平台(例如,图1的110)的节点340,其处于始终在线并且就绪的状态以经由web客户端接收来自用户的在云上发起服务的请求(例如启动命令)。在体系结构300中,跨门户节点320执行负载均衡310,并且跨平台节点340执行平台均衡330。如图4中所示,用户经由用户web客户端通过可用的门户节点320登录到门户上,并且向可用的平台节点340发送在云上启动客户***450的请求。如图5中所示,客户***450由平台节点340供应,并且为用户的(一个或多个)应用创建定制URL 560。如先前描述的,客户***可以包括具有客户代理的(一个或多个)虚拟机,客户代理被配置为根据从如由用户定义的自动化动作和它们的因果关系中导出的自动化图来在用户的(一个或多个)应用或者虚拟机的生命周期内实现用户定义的自动化动作。如图6中所示,平台节点340继续在云上供应许多客户***450。用户可以在需要时终止会话,以终止(一个或多个)客户***450。
B.客户***生命周期
图7示出客户***生命周期的示例的高级示意图700。本公开的自动化***在客户***生命周期内工作。用户可以定义自动化动作以及它们的因果关系以导出对应的(一个或多个)自动化图,该(一个或多个)自动化图由平台使用客户***的虚拟机中的客户代理在生命周期的任何阶段或者每个阶段触发并且执行。如图7中所示,示例生命周期可以涉及进程或者服务,诸如网络运行器710、集群运行器730、分组运行器750和节点运行器770。在该示例中,网络运行器710处于网络可用(NetworksAvailable)阶段,集群运行器730处于运行集群(RunCluster)阶段,分组运行器730处于节点运行(NodeRunning)阶段,并且节点运行器770处于运行(Running)阶段。
如节点运行器770中所示,客户***节点(例如,虚拟机)可以经过以下高级别的生命周期阶段:
●1.初始化(Init)
●2.虚拟机(VM)启动
●3.配置(Config)
●4.应用(App)启动
●5.运行
●6.重启
●7.停止
●8.关机
因此,本公开的自动化***允许用户定义并且自动化要在客户***的生命周期中的一个或多个阶段(例如,诸如VM启动之后的阶段3至8)期间执行的期望的动作。
C.用户定义的自动化动作/图
图8示出用户接口800的示例,用户可以通过用户接口800输入并且定义自动化动作以及动作之间的因果关系,从自动化动作以及动作之间的因果关系中导出自动化图。当启动虚拟机以在机器上执行应用时,自动化图可以被用来自动化并且控制客户***中的动作(例如,操作、功能等)。用户接口800可以经由输入区810接收用户输入,诸如(i)动作的名称,(ii)与其他动作的关系(例如,前驱或者在先的动作、下行的(descending)动作或者其他因果关系),以及(iii)指示将要采取的自动化动作的有效载荷。输入区810可以包括图形元素(例如,(一个或多个)图形输入框、下拉框等),用户可以通过图形元素定义自动化动作以及自动化动作间的因果关系以导出自动化图。用户可以通过经由命令CONTINUE(继续)等来继续输入过程从而一次一个地输入并且定义自动化动作以及它们与其他动作的关系。
作为示例,用户接口800还可以包括观察区820,观察区820示出由用户定义的一组自动化动作以及动作之间的因果关系。在该示例中,用户定义的自动化动作可以用JavaScript对象符号(JSON)定义,并且对应于图9中所示的简单的五步自动化图900的示例。图9中的自动化图包括如在初始状态中示出的、由图节点“a”、“b”、“c”、“d”和“e”代表的动作步骤。在操作期间,首先执行动作步骤“a”。然后并行地执行动作步骤“b”和“c”。接下来,执行动作步骤“d”,随后是动作步骤“e”的执行,这完成自动化图。观察区820可以以图形形式并发地或者分开地显示用户定义的自动化动作(例如,图9)。用户还可以经由EDIT(编辑)命令来编辑自动化图或者特定的步骤,这可以允许用户直接地或者间接地(例如,通过另一个窗口或接口)编辑观察区820中的信息。
因此,本公开的自动化***能够提供对现有计算机***和技术的各种技术改进,诸如:(1)对分布式的、协调的自动化的集中式的、故障容差的管理;(2)用于编写跨机器集群执行的复杂自动化的简单用户接口;以及(3)由自动化***自动得到的最大并发性。
用户可以定义例如在客户***的生命周期的阶段3-8(例如,图7的配置、应用启动、…关机)中触发的自动化图。平台在平台本身中集中地执行自动化图序列。自动化图步骤在预先安装的客户代理的帮助下在每个客户***节点上执行。客户代理应用自动化动作步骤,并且将结果返回到平台驱动器。平台驱动器遍历(run through)自动化序列直到完成或者发生致命故障为止。
自动化图可以是单独的自动化动作步骤的有向无环图(DAG)。这种图对于用户而言通过指定例如单独的自动化动作步骤之间的“在先发生”关系(例如,前驱因果关系)构造起来简单直观。因此,可以提供用户接口,该用户接口允许用户定义自动化动作步骤以及它们与彼此的因果关系以构造自动化图,而不需要实质的计算机编程知识或技能。用户可以定义自动化动作步骤以及(i)在与应用相关联的自动化图内它们与彼此的因果关系或者(ii)在用于不同应用或者应用组成部分的自动化图之间它们与彼此的因果关系。用户可以构造(一个或多个)自动化图以在客户***和它的(一个或多个)虚拟机被启动之后在客户***的生命周期中的任何期望阶段执行自动化动作。自动化动作步骤(例如,动作)的非限制性示例包括:
●编写配置文件,
●替换某些注册表键,
●读取配置文件并且替换某些变量,
●从远程内容存储库中克隆内容,
●启动程序,
●重新启动服务,
●关注文件,或者
●其他被动动作(例如,监视)或者主动动作。
在用户定义自动化动作步骤之间的因果关系之后,平台被配置为从图中提取最大并行度,并且经由客户代理在客户***上执行它。
图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”仍然等待执行。
图10A中的两个分开的自动化子图可以在客户***中的相同或者不同的虚拟机上实现,并且可以同步地执行。即,分开的机器上的两个自动化图可以在继续它们的执行之前等待彼此。为了同步不同虚拟机上的自动化图的执行,虚拟机的客户代理可以经由反映它们各自的自动化图的执行状态的逐个步骤的消息传递来与彼此通信。例如,一个虚拟机上的动作步骤可以在继续之前等待来自不同机器上的另一个动作步骤的信号。
图11示出使用图10A中的(一个或多个)自动化图1000的示例,以示出客户***中发生致命(fatal)故障的情况。在操作中,执行自动化图中的动作步骤的客户代理被配置为在执行期间感测并且处理致命错误。在该示例中,在动作步骤“g”处识别并且声明致命故障。任何自动化动作步骤的逻辑可以声明致命故障。当致命故障被声明时,客户代理上的图执行器应用或者软件针对自动化图的所有节点停止执行,并且将事件提升至平台。
D.条件自动化图节点
在大多数实践应用中,存在对有条件地执行自动化图的部分的情况进行建模的需求。图节点可以被配置为有条件地传递正常的“动作”执行消息或者“无动作”消息。当下游节点接收到无动作输入时,它们然后将跳过执行,并且将无动作消息传递到下游节点。这允许节点在运行时做出决策。例如,节点可以测量条件并且决定使得在下游跳过执行。自动化图可以被配置为做出运行时决策。即使一些图节点不执行,自动化图也将仍然完成执行。因此,自动化图的下游节点可以被配置为以两种方式中的一种对动作输入做出反应:(1)作为不情愿执行的“不情愿”节点,这是指任何无动作输入信号将使得节点跳过执行,或者(2)作为渴望执行的“渴望”节点,这是指当任何输入信号是动作时节点将执行它的有效载荷。下面参考图12和图13描述这些类型的节点配置的示例。
图12示出具有条件执行的自动化动作的自动化图1200的示例。图1200包括由图节点“a”至“s”代表的动作步骤。在该示例中,图节点“m”逻辑决定跳过它自己的和下游节点的执行。下游节点对“无动作”或者“动作”信号做出反应。在下面的示例中,节点“m”被配置为跳过执行,并且传递无动作信号。在图1200中所有节点都不情愿执行。
图13示出具有“渴望”节点的自动化图1300的示例,“渴望”节点可以被用来缓解客户***中发生非致命故障的情况。如同图12中的图1200那样,图1300包括由图节点“a”至“s”代表的动作步骤。在该示例中,图节点“m”同样被配置为模拟跳过的执行。图节点“o”和“r”渴望地执行,因为它们接收到至少一个动作信号。因此,用户可以在客户***上发生“非致命”故障的情况下根据自动化图继续实现自动化动作。
E.示例过程
图14示出根据本公开的实施例的由用户定义自动化动作以及彼此之间的因果关系以导出自动化图的过程1400,并且过程1400通过(一个或多个)虚拟机在执行一个或多个应用或者其组成部分的客户***上实现。诸如在图1和图2的示例***体系结构10中,过程1400可以使用数据中心在云上的平台上实现。
在步骤1402,由平台提供用户接口(UI),以供用户输入并且为将在(一个或多个)虚拟机上执行的(一个或多个)应用或者其组成部分定义自动化动作以及彼此之间的因果关系。用户接口可以作为web服务或者应用提供给用户。
在步骤1404,平台接收用户定义的自动化动作和因果关系,并且导出(或者构造)用于(一个或多个)应用或者其组成部分的自动化图。
在步骤1406,与(一个或多个)应用或者其组成部分相关地存储用户定义的自动化动作和因果关系和/或自动化图。
在步骤1408,平台启动具有包括客户代理和应用的(一个或多个)虚拟机的客户***。
在步骤1410,在客户***和虚拟机(例如,在虚拟机/客户***的生命周期内)启动之后,客户代理根据自动化图在(一个或多个)虚拟机中执行用户定义的自动化动作。如果客户***是具有多个虚拟机的分布式客户***,那么虚拟机可以被配置为在通过它们的客户代理实现它们各自的自动化图的同时在逐个步骤的基础上与彼此通信,以使得自动化动作可以以同步的方式实现。类似地,逐个步骤的消息传递还可以在不同客户***上的虚拟机之间执行,以便以同步的方式实现它们各自的自动化图。
应当理解,上文描述的***和方法作为示例而提供。自动化***可以在除了使用虚拟化向用户或者其他实体提供基于应用的服务的基于云的计算机***或体系结构之外的任何适当的联网计算机***或体系结构上实现。
应当理解,结合所公开的实施例的方面的实际的真正商业应用的开发将需要许多特定于实施方式的决策,以实现开发者对于商业实施例的最终目标。这种特定于实施方式的决策可以包括并且类似地不限于,与***相关、业务相关、政府相关的约束和其他约束的合规性,这些约束可以根据具体的实施方式、位置以及随时间变化。虽然开发者的努力在绝对意义上可能是复杂并且耗时的,但是这种努力对于受益于本公开内容的本领域技术人员将仍然是惯例任务。
同样应当理解,在本文中公开和教导的实施例易于受许多以及各种修改和可替代的形式的影响。因此,单数项目,诸如但不限于“一个”等,的使用并不旨在作为项目数量的限制。
虽然已经公开了本发明的具体示例实施例,但是本领域技术人员将理解,可以在不脱离本发明的精神和范围的情况下对针对具体示例实施例而描述的细节进行改变。

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所述的计算机***,其中所述虚拟机经由所述虚拟机之间的逐个步骤的消息传递,彼此同步地执行所述两个自动化图的图节点的有效载荷。
18.根据权利要求11所述的计算机***,其中所述一个或多个处理器被配置为提供用于供用户输入与用户定义的自动化动作和因果关系对应的信息的用户接口,以及基于输入的用户定义的自动化动作和因果关系导出所述自动化图。
19.根据权利要求18所述的计算机***,其中所输入的信息对应于具有用于每个自动化动作的先行***和有效载荷的图邻接列表。
CN201711379415.4A 2016-12-20 2017-12-20 应用生命周期管理*** Active CN108205463B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN108205463A true CN108205463A (zh) 2018-06-26
CN108205463B CN108205463B (zh) 2023-10-17

Family

ID=60813585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711379415.4A Active CN108205463B (zh) 2016-12-20 2017-12-20 应用生命周期管理***

Country Status (3)

Country Link
US (2) US20180173526A1 (zh)
EP (1) EP3340034B1 (zh)
CN (1) CN108205463B (zh)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
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
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
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
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
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
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
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
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
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
US10635789B1 (en) * 2017-06-21 2020-04-28 Amazon Technologies, Inc. Request authorization using recipe-based service coordination
US10303522B2 (en) * 2017-07-01 2019-05-28 TuSimple System and method for distributed graphics processing unit (GPU) computation
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
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
US11507653B2 (en) * 2018-08-21 2022-11-22 Vmware, Inc. Computer whitelist update service
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

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099480B1 (en) * 2008-11-25 2012-01-17 Google Inc. Scalable workflow design for automated service management
CN102681899A (zh) * 2011-03-14 2012-09-19 金剑 云计算服务平台的虚拟计算资源动态管理***
CN102915255A (zh) * 2012-09-27 2013-02-06 曙光信息产业(北京)有限公司 用于大规模数据集并行运算的云计算服务***和方法
CN104272699A (zh) * 2012-05-02 2015-01-07 微软公司 基于证书的到云虚拟机的连接
CN105144112A (zh) * 2013-04-11 2015-12-09 甲骨文国际公司 Java堆使用的季节趋势、预报、异常检测和端点预测
US20160004531A1 (en) * 2013-03-15 2016-01-07 Sanctum Solutions, Inc. Interactive content development

Family Cites Families (19)

* 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
US8225317B1 (en) 2009-04-17 2012-07-17 Symantec Corporation Insertion and invocation of virtual appliance agents through exception handling regions of virtual machines
US9134982B2 (en) * 2010-01-10 2015-09-15 Microsoft Technology Licensing, Llc Automated configuration and installation of virtualized solutions
US8910155B1 (en) 2010-11-02 2014-12-09 Symantec Corporation Methods and systems for injecting endpoint management agents into virtual machines
US20120144489A1 (en) 2010-12-07 2012-06-07 Microsoft Corporation Antimalware Protection of Virtual Machines
US9003402B1 (en) 2010-12-15 2015-04-07 Symantec Corporation Method and system for injecting function calls into a virtual machine
US8862933B2 (en) * 2011-02-09 2014-10-14 Cliqr Technologies, Inc. Apparatus, systems and methods for deployment and management of distributed computing systems and applications
US8656398B2 (en) * 2011-05-03 2014-02-18 Ericsson Television Inc Synchronization of workflows in a video file workflow system
US9672493B2 (en) * 2012-01-19 2017-06-06 International Business Machines Corporation Systems and methods for detecting and managing recurring electronic communications
US9311119B2 (en) * 2012-05-30 2016-04-12 Red Hat, Inc. Reconfiguring virtual machines
US8825550B2 (en) 2012-08-23 2014-09-02 Amazon Technologies, Inc. Scaling a virtual machine instance
CN104813285B (zh) * 2012-12-03 2017-09-08 慧与发展有限责任合伙企业 应用与基础设施蓝图的结合
US9218176B1 (en) * 2014-06-13 2015-12-22 International Business Machines Corporation Software deployment in a distributed virtual machine environment
US20160004628A1 (en) * 2014-07-07 2016-01-07 Unisys Corporation Parallel test execution framework for multiple web browser testing
US11265202B2 (en) * 2015-12-04 2022-03-01 Vmware, Inc. Integrated automated application deployment
US10387181B2 (en) * 2016-01-12 2019-08-20 International Business Machines Corporation Pre-deployment of particular virtual machines based on performance and due to service popularity and resource cost scores in a cloud environment
US10120738B2 (en) * 2016-06-24 2018-11-06 Vmware, Inc. Hypervisor techniques for performing non-faulting reads in virtual machines
US10210074B1 (en) * 2018-06-07 2019-02-19 Capital One Services, Llc Performance testing platform that enables reuse of automation scripts and performance testing scalability

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099480B1 (en) * 2008-11-25 2012-01-17 Google Inc. Scalable workflow design for automated service management
CN102681899A (zh) * 2011-03-14 2012-09-19 金剑 云计算服务平台的虚拟计算资源动态管理***
CN104272699A (zh) * 2012-05-02 2015-01-07 微软公司 基于证书的到云虚拟机的连接
CN102915255A (zh) * 2012-09-27 2013-02-06 曙光信息产业(北京)有限公司 用于大规模数据集并行运算的云计算服务***和方法
US20160004531A1 (en) * 2013-03-15 2016-01-07 Sanctum Solutions, Inc. Interactive content development
CN105144112A (zh) * 2013-04-11 2015-12-09 甲骨文国际公司 Java堆使用的季节趋势、预报、异常检测和端点预测

Also Published As

Publication number Publication date
US20200133666A1 (en) 2020-04-30
US20180173526A1 (en) 2018-06-21
EP3340034B1 (en) 2024-06-05
US11487536B2 (en) 2022-11-01
CN108205463B (zh) 2023-10-17
EP3340034A1 (en) 2018-06-27

Similar Documents

Publication Publication Date Title
CN108205463A (zh) 应用生命周期管理***
US9830135B2 (en) Declarative and pluggable business logic for systems management
US9606521B2 (en) Chainable plug-ins
US20150220325A1 (en) Agile framework for vertical application development and delivery
US20210208576A1 (en) Automatic setup of digital twins for industrial controllers
Zhu et al. If docker is the answer, what is the question?
US11880680B2 (en) Industrial automation distributed project control with milestone rollback
US20150220404A1 (en) Undo configuration transactional compensation
US11507361B2 (en) System to design and/or update programs for industrial devices assigned to the operator interface and/or to manage machines and/or plants for industrial automation
Atmojo et al. Dynamic reconfiguration and adaptation of manufacturing systems using SOSJ framework
CN114791824A (zh) 工业自动化多开发者控制代码同步
Evrard et al. Automatic distributed code generation from formal models of asynchronous concurrent processes
Gauthier et al. A SysML formal framework to combine discrete and continuous simulation for testing
Puttonen et al. An application of BPEL for service orchestration in an industrial environment
Delaval et al. Distributed execution of modular discrete controllers for data center management
Bicevskis et al. A Practitioners Approach to Achieve Autonomic Computing Goals
Alonso et al. Models and Frameworks: A Synergistic Association for Developing Component‐Based Applications
Buit PC104 stack mechatronic control platform
Riedlinger et al. AI Marketplace: Serving Environment for AI Solutions Using Kubernetes.
Leite et al. A computing environment configuration management pattern based on a software product line engineering method
Mironov DevOps pipeline with Docker
Balzamov et al. Development of a methodology for migration of monolithic systems to microservice architecture using cloud technologies
Atmojo et al. Extending SOSJ framework for reliable dynamic service-oriented systems (short paper)
Castañé et al. CactoSim simulation framework final prototype: accompanying document for project deliverable D6. 4
Cerin et al. BOINC as a service for the slapos cloud: Tools and methods

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Aviva Software Co.,Ltd.

Address before: California, USA

Applicant before: Schneider Electronic Software Co.,Ltd.

GR01 Patent grant
GR01 Patent grant