CN102681865A - 分布式系统中的协调升级 - Google Patents

分布式系统中的协调升级 Download PDF

Info

Publication number
CN102681865A
CN102681865A CN2011103402648A CN201110340264A CN102681865A CN 102681865 A CN102681865 A CN 102681865A CN 2011103402648 A CN2011103402648 A CN 2011103402648A CN 201110340264 A CN201110340264 A CN 201110340264A CN 102681865 A CN102681865 A CN 102681865A
Authority
CN
China
Prior art keywords
application program
neofield
renewal
current
carried out
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
CN2011103402648A
Other languages
English (en)
Other versions
CN102681865B (zh
Inventor
A·马尼
P·杜尔诺夫
L·伊伦-布里斯
P·纳格沙绕
H·徐
A·哈桑
A·沙阿
T·弗雷格
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102681865A publication Critical patent/CN102681865A/zh
Application granted granted Critical
Publication of CN102681865B publication Critical patent/CN102681865B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Abstract

分布式应用程序可通过使用由应用程序提供的信息来更新,以确定分组、定序、以及是否进行更新顺序。应用程序可向更新顺序提供输入,并且可使更新顺序在更新之前修复一个或多个副本。更新机制可被用于改变分布式应用程序拓扑结构以及对应用程序可执行代码、应用程序配置、请求操作系统、虚拟机、以及主机系统等作出改变。在一些情况下,分布式应用程序可采用选出成员数来确定当前是哪个版本,并且该选出成员数可在更新过程期间改变。

Description

分布式系统中的协调升级
技术领域
本发明涉及分布式系统中的协调升级。
背景技术
分布式系统可具有在分开的进程中执行的应用程序可执行代码的多个副本。在一些实施例中,应用程序的各个实例可运行在不同硬件平台上。在许多情况下,负载平衡系统可被用于将工作负载分布到应用程序的每个实例上。
分布式应用程序常常被用于高度的可伸缩性可能是有用的场合。例如,网站或web应用程序可被伸缩,当遇到大量猛增的通信量时,可预期多个进程。在这种情况下,应用程序可被复制成数百或数千个实例,各个实例并行运行。
发明内容
分布式应用程序可通过使用由应用程序提供的信息来更新,以确定分组、定序、以及是否进行更新顺序。应用程序可向更新顺序提供输入,并且可使更新顺序在更新之前修复一个或多个副本。更新机制可被用于改变分布式应用程序拓扑结构以及对应用程序可执行代码、应用程序配置、请求操作系统、虚拟机、以及主机系统等作出改变。在一些情况下,分布式应用程序可采用选出成员数(quorum)来确定当前是哪个版本,并且选出成员数可在更新过程期间改变。
提供本发明内容以便以简化的形式介绍将在以下具体实施方式中还描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图说明
在附图中:
图1是示出云计算环境和平台的实施例的图示。
图2是示出用于更新分布式应用程序的方法的实施例的时间线图示。
图3是示出用于确定更新域更新成功的方法的实施例的流程图示。
图4是示出在基于选出成员数的分布式应用程序上执行的更新的示例顺序的实施例的图示。
具体实施方式
可使用来自应用程序的输入来对分布式应用程序进行更新以确定如何执行更新、何时可继续进行更新,以及确定在更新期间是否可能已产生问题。应用程序可以选出成员数来运行以确定当前是应用程序的哪个版本,并且当前版本可随着更新进度而改变。
更新机制可允许分布式应用程序在更新过程期间高度可用。更新可在各组应用程序的副本上执行,使得当一个组在被更新时,其它组可保持运行。
组可被定义为更新域。在一更新域中,一组应用程序进程可作为原子操作(atomic operation)来更新。如果对于更新域中的每个进程更新没有成功,则更新可被挂起或回滚到之前的版本。
更新机制可允许更新在应用程序本身上执行,这可包括改变应用程序配置以及更新应用程序可执行代码。更新机制还可被用于在主机设备、虚拟机、虚拟机中的客操作系统上执行更新,以及更新应用程序副本的拓扑结构。
本说明书通篇中,在所有附图的描述中,相同的附图标记表示相同的元素。
在元素被称为被“连接”或“耦合”时,这些元素可以直接连接或耦合在一起,或者也可以存在一个或多个中间元素。相反,在元素被称为被“直接连接”或“直接耦合”时,不存在中间元素。
本发明可被具体化为设备、系统、方法、和/或计算机程序产品。因此,本发明主题的部分或全部可以用硬件和/或软件(包括固件、常驻软件、微码、状态机、门阵列等)来具体化。此外,本发明主题可以采用其上嵌入有供指令执行系统使用或结合其使用的计算机可使用或计算机可读的程序代码的计算机可使用或计算机可读的存储介质上的计算机程序产品的形式。在本文的上下文中,计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合其使用的任何介质。
计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由指令执行系统访问的任何其它介质。注意,计算机可使用或计算机可读介质可以是其上打印有程序的纸张或其他合适的介质,因为程序可以经由例如对纸张或其他介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并随后存储在计算机存储器中。
通信介质通常以诸如载波或其他传输机制的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语“已调制数据信号”可以被定义为其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
当本发明在计算机可执行指令的一般上下文中具体化时,该实施例可以包括由一个或多个系统、计算机、或其他设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以在各个实施例中按需进行组合或分布。
图1是示出具有用于升级分布式应用程序的系统的云计算系统的实施例100的图示。实施例100是云计算平台和环境的简化示例,在该云计算平台和环境中,分布式系统可在保持高可用性的同时被升级。
图1的图示示出系统的各个功能组件。在某些情况下,组件可以是硬件组件、软件组件、或硬件和软件的组合。某些组件可以是应用层软件,而其他组件可以是操作系统层组件。在某些情况下,一个组件到另一个组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可以通过跨长距离的网络连接来进行。各实施例可以使用不同的硬件、软件、以及互连体系结构来实现所描述的功能。
系统100是云计算环境的示例,其中应用程序可通过使用应用程序进程的许多个副本来执行。副本可以是同一可执行代码的相同的副本并具有相同的配置。在执行对系统的更新时,应用程序可具有最小停机时间或没有停机时间。在一些情况下,应用程序可体验到有些低的能力,但应用程序可在更新期间继续可用。
云服务管理器可使用更新过程来将改变应用到云服务基础架构,并且应用程序所有者可使用相同的更新过程来在应用程序上执行更新。
在一些云计算环境中,云服务提供者可管理底层硬件并向应用程序提供诸如操作系统之类的某些软件服务。在这些实施例中,云服务提供者可周期性地更新主机硬件和软件,以及在应用程序可执行于其上的各虚拟机上执行的软件。
例如,应用程序可在虚拟机中的客操作系统上执行。应用程序所有者或管理员可为客操作系统配置云服务提供者以在更新可用时实施所有的安全性更新。在这一示例中,应用程序可每周、每天或者甚至在某些情况下每小时地使更新被应用。
在一些情况下,应用程序所有者或管理员也可将更新应用到应用程序。更新可以是对应用程序的配置改变,或者可以涉及对应用程序的可执行代码的更新。在一些情况下,可通过添加或者移除应用程序进程的副本来改变应用程序拓扑结构。
当更新被执行时,应用程序进程可被一起分组到更新域中。每个更新域可以是可在同一时间以及以一种原子方式来更新的一组进程。分组可由应用程序确定,而不是使外部更新机制来确定分组。
当应用程序确定分组时,应用程序可使用应用程序拓扑结构或应用程序内的其它信息来帮助外部更新机制确定适合的一组更新域以及将要被更新的更新域的顺序。在许多实施例中,应用程序可以比外部源更了解可能在组织和管理更新中可能有用的相关信息。
例如,应用程序可以了解应用程序进程的全部副本或实例。可通过根据在其上执行进程的主机设备对应用程序进程进行分组来执行对主机设备的更新,诸如升级主机设备操作系统。在另一示例中,应用程序可基于它们的工作负载对副本分组。在这一示例中,具有低工作负载的各组应用程序进程可被分组在一起并首先被更新,而具有较高工作负载的应用程序进程可被分组在一起并稍后被更新。
在一些实施例中,应用程序可以是基于选出成员数的应用程序,其中几个应用程序进程可并行运行,且随后通过比较来自几个进程的结果来“投票”或达成一致。在这些实施例中,对当前版本的确定可通过选出成员数来确定,并且仅仅那些运行在当前版本上的进程可被视为有效。可能执行较旧版本的进程可被忽略或不可运行直至它们被更新。
实施例100示出可构成云计算环境的设备102。在许多云计算环境中,多个硬件平台可被组织在一起以为某些应用程序提供大量计算能力。在许多实施例中,数据中心可包含数千台计算机,诸如服务器计算机,并且可具有可向计算机供应的、用于运行不同应用程序的各种管理工具。
在许多这类实施例中,管理工具可为各种承租人供应资源。每个承租人可与云计算服务提供者订立合约以主存一个或多个应用程序。承租人的资源可与其它承租人的资源隔离开,使得没有承租人可访问其它承租人的数据或可执行代码。
设备102可以是传统的计算机设备,诸如个人计算机或服务器计算机,并且可具有硬件平台104和各种软件组件106。硬件平台104可以包括处理器108、随机存取存储器110、以及本地存储112。
在一些实施例中,处理器108可具有一个或多个处理器或核心。在一些情况下,单处理器108可具有两个、四个、八个、十六个、或其它数量的核心,并且某些硬件平台可具有两个或更多处理器108。
随机存取存储器110可以是易失性存储器并且可以是可由处理器108直接访问的高速存储器。本地存储112可以是也可由处理器108访问的非易失性存储器,但在许多情况下,本地存储112可能比随机存取存储器110慢。
本地存储112可以或不可以由承租人进程访问。在许多实施例中,在应用程序可能正执行时,本地存储112可被用于的承租人数据的临时存储,而永久的或长期的存储可由云存储系统130来提供。
硬件组件104可包括用户接口114和网络接口116。用户接口114可以是物理用户接口,其可包括键盘、显示器、以及定点设备。在一些实施例中,用户界面可以被传输给位于远程的另一设备。网络接口116可以是连接到任何类型的网络的任何类型的连接。在常规数据中心中,网络接口116可以是有线以太网连接。
软件组件106可包括主操作系统118和系统管理程序120。在一些实施例中,系统管理程序120可在硬件平台104上本地地执行而无需使用分开的操作系统118。
系统管理程序120可允许一个或多个虚拟机122在硬件平台104上执行。每个虚拟机122可以是物理硬件平台104的软件仿真,并且可与其它虚拟机分开地且独立地运行。在许多实施例中,单硬件平台可并行执行数个虚拟机。在许多实施例中,虚拟机122可以是数据中心内不同承租人之间的逻辑划分,其中每个承租人进程可在专用于该承租人的虚拟机上执行。
在每一虚拟机122内,可执行客操作系统124。术语“客”操作系统指的是虚拟机的操作系统,与“主”操作系统相对。在许多实施例中,客操作系统124可以不同于主操作系统118。在这类实施例中,单个硬件平台104可具有并行执行的许多个不同的客操作系统。
应用程序副本126可在虚拟机122内执行。在一些实施例中,单个应用程序副本126可在单个虚拟机122内执行,而在另一些实施例中,不止一个应用程序副本126可在单个虚拟机中执行。
云平台可以连接到网络128,网络128可以是局域网、广域网,并且可包括因特网。云存储系统130可具有可由各个虚拟机122和应用程序副本126访问的大存储132。
许多应用程序可通过各种客户机设备134来访问。客户机设备134可以是可通过网络128访问应用程序的任何类型的计算设备。客户机设备134可以是个人计算机、手持式个人数字助理、移动电话、服务器计算机、网络设备、游戏控制台、或任何其它类型的计算设备。
云管理系统136可以为云计算环境和执行在该环境内的应用程序执行管理功能中的许多功能。云管理系统136可具有其上可执行构造控制器140的硬件平台138。在许多实施例中,硬件平台138可以是设备102的云计算环境。
构造控制器140可以是可为云计算环境执行各种管理功能的应用程序。管理功能可包括为各个承租人供应云计算环境、添加或移除硬件平台、管理云计算环境内的工作负载、以及执行对硬件、主操作系统、虚拟机、客操作系统、以及应用程序的更新。
作为更新过程的一部分,构造控制器140可接收来自各种源的更新142,诸如应用程序开发者、操作系统提供者、安全性提供者、或其它源。
构造控制器140可通过使应用程序涉及来确定如何对应用程序副本分组以及处理各组的顺序来在云计算环境上执行更新。
图2是示出用于更新分布式应用程序的方法的实施例200的时间线图示。实施例200的过程是构造控制器202可如何与主应用程序副本204和被组织到更新域206内的一组应用程序副本交互的简化的示例。构造控制器202的操作被示出在左栏,域主应用程序副本204的操作被示出在中间栏,而更新域206的操作被示出在右栏。
其它实施例可以使用不同的序列、更多或更少的步骤、以及不同的命名或术语,来完成类似功能。在一些实施例中,各种操纵或操作集合可以与其他操作以同步方式或以异步方式并行执行。此处所选的步骤是为了以简化的形式示出一些操作原理来选择的。
实施例200示出用于对分布式应用程序执行更新的方法的一部分。分布式应用程序可以是在分开且独立的多个进程上执行的任何应用程序。在许多实施例中,分布式应用程序可在许多不同的进程上执行,有时候数目达数千或者甚至数十万进程。许多分布式进程可以相同配置运行相同的可执行代码。许多这类进程还可以无状态方式运行。
由于更新大量的进程可能是非常耗时的任务,因此可在进程组中更新应用程序。每个组可被称为一个更新域。当一个更新域正被更新时,其它更新域可保持工作。
更新方法可使用来自应用程序的输入以确定进程如何被分组以及以什么顺序来对组或更新域进行更新。来自应用程序的输入可运行应用程序确定最优更新方法。在一些实施例中,最优更新方法可基于特定情况和正被执行的更新类型来改变。
实施例200的方法可被执行数遍以完成更新。例如,拓扑结构的改变可在三个步骤中执行。在第一步,更新步骤可开启各进程上的一个特定端口,使得可访问新的拓扑结构。在第二步骤,可以用在新的端口上可用的新的应用程序副本来实现该新的拓扑结构。在第三步骤,旧拓扑结构的旧的、未使用的端口可被关闭。
在该拓扑结构示例中,实施例200的更新方法可被执行三次以完成一次更新。在一些情形下,实施例200的更新方法可被执行一次、两次或更多次以完成对系统的改变。
实施例的200更新方法可被用于通过更新应用程序配置或应用程序可执行代码来更新应用程序。相同的更新方法还可被用于更新各种基础架构组件,诸如更新主机硬件、包括主操作系统的主机软件、虚拟机配置、客操作系统、以及可运行在主机或虚拟机上的其它软件组件。更新方法可被用于更新可执行代码以及重新配置硬件或软件组件而不改变可执行代码。
在框208,应用程序可以正常操作运行。
在框210,构造控制器202可标识待执行的更新。更新可由应用程序拥有者或云计算服务的承租人来定义。在一些情况下,更新可由云计算服务的管理员来定义。可手动地或自动地检测更新。在对应用程序进行代码更新或改变的情况下,可以手动地标识和启动更新。在对操作系统进行安全性更新的情况下,可以通过订阅来自操作系统制造商的安全性更新服务来自动地标识更新。
在执行更新之前,在框212中,构造控制器202可向主应用程序副本204发送查询。
主应用程序副本204可以是可对管理性查询作出响应并且可为应用程序执行管理性功能的应用程序副本。在一些实施例中,可能不存在可被指定为主副本的特定副本。出于本实施例的目的,主应用程序副本204可以指应用程序的任何管理性部分。
在框214中,主应用程序副本204可接收查询,并且在框216中,主应用程序副本204可确定更新域。在框218,更新域可被返回给构造控制器202,并且在框220,接收所返回的更新域。在框222,构造控制器202可发送对于更新域的顺序的查询。顺序查询可在框224中被接收并在框226中被确定。更新顺序可在框228中被返回并在框230中被接收。
更新域可以是在其上可执行更新的各组应用程序副本。在一些实施例中,更新域可根据情况改变。例如,对硬件的更新可根据运行在相同硬件平台上的副本来对应用程序进行分组。
在一些实施例中,更新域可包含相同数量的应用程序副本,或者可以是大致相同大小,诸如在另一更新域的应用程序副本的数量的10%以内。在其它实施例中,一些更新域可以比其它的、较小的更新域大得多。在硬件拓扑结构或数据中心拓扑结构可能对于各个硬件平台或数据中心相当不同时,这类实施例可能是有用的。
在另一示例中,可以在位于跨国家或跨全球的不同数据中心中的应用程序副本上执行更新。在这一情况下,更新域可被定义使得相同数据中心中的那些应用程序副本可被一起更新。这一分组可允许整个数据中心上的应用程序副本被更新,接着前进到另一数据中心。
这一分组可以被排序,使得具有轻负载的数据中心可被首先更新。在许多这种情形下,遍布全球的数据中心可具有随一天中的时间而改变的工作负载。通过根据时区来对待执行的更新进行排序,可以以对工作负载的最小中断的形式来执行更新。
在类似的示例中,在不同数据中心中跨各个应用程序副本执行的更新可以被分组,使得每一个更新域可包含两个或更多数据中心中的应用程序副本。这一分组可在一些应用程序副本上执行更新,但可至少保留一些应用程序副本运行在每个数据中心中。在这一分组中,可对顺序进行配置以使每个数据中心可具有至少一些应用程序进程在更新期间执行。
在一些实施例中,构造控制器202可将与更新有关的信息传送给主应用程序副本204,以使应用程序副本可为更新确定适当的分组和顺序。构造控制器202可指示该更新是耗时的还是快速的,是否可能包含应用程序、客操作系统或者主操作系统的重启,更新是否影响应用程序、虚拟机或主机设备,或者构造控制器202可指示主应用程序副本204可考虑的其它因素。
在一些实施例中,多步骤更新顺序中的最初的步骤可以是标识其中应用程序副本可能未正确工作并因此不能被更新的任何更新域。在这一步骤,可以分析每个更新域以确定该更新域是否包含被挂起的、没有启动的、未响应的、或者其它具有潜在问题的应用程序副本。在这一步骤可被执行后,可启动对问题副本的修复进程以尝试治愈该副本。在一些情况下,治愈可涉及重启应用程序进程或客操作系统,或者可涉及将应用程序副本移动到另一硬件平台或执行其它修复功能。
在已执行了这样的治愈操作之后,更新顺序可前进到另一步骤,在该步骤可执行对系统的实际改变。在这一示例中,在对应用程序或底层硬件和软件组件进行改变之前,治愈应用程序副本的步骤可使应用程序副本满足用于更新的条件。
在框232中,可以处理每一更新域。对于每个更新域,可执行框234-260的过程。在对一个更新域执行了框234-260的过程之后,可处理顺序中的下一更新域。
对于框232中的每个更新域,在框234,可使更新被执行。在应用程序域206中,更新可在框236中被接收,并且对于框238中的每个副本,可在框240中执行更新。
在一些情况下,更新可以由在主机上或虚拟机内运行的应用程序来执行。一些这类更新可对主操作系统或客操作系统、与主操作系统或客操作系统相关联的应用程序作出修改,或者可执行可以或可以不与应用程序相关联的其它改变。
在某一时刻,在框242,构造控制器202可发出一个查询以确定更新是否完成。在框244,查询可由更新域206接收,并且在框246,查询被评估。如果更新已被完成并且应用程序操作是稳定的,则在框248,更新域206可发送结果,在框250,该结果可由构造控制器202接收。如果结果是稳定的,则过程返回到框232以处理下一个更新域。
如果在框246中更新域还没有成功完成更新,则在框254,更新域206可发送结果,在框256,该结果可由构造控制器202接收。构造控制器202可具有可允许超时操作的一组策略或其它逻辑。如果在框258没有发生超时,则过程可返回到框242以执行另一状态查询。如果在框258发生超时,则在框260,构造控制器202可针对每一策略定义发布默认结果。
框260的默认结果可取决于各种情形。例如,如果更新正对主机硬件或软件进行改动,则应用程序状态可被忽略并且下一更新域可被处理。在这一示例中,来自应用程序的输入可能与确定更新是否成功无关。
在另一示例中,如果更新正为应用程序安装新的可执行代码,并且应用程序并没指示应用程序代码正以稳定的方式运行,则更新操作可以被挂起并且人类管理员可被警告。在另一实施例中,这一结果可记录情况,并且可自动尝试将应用程序代码回退到先前版本。
实施例200示出更新过程期间构造控制器202和应用程序之间的数个交互。交互可允许来自应用程序的输入或提示,以影响管理系统如何实现并验证更新。来自应用程序的反馈和输入可允许更高效的更新过程,并且可在更新发生时对应用程序的性能进行验证。此外,可通过将更新应用于各组应用程序副本来在各阶段中实现更新,由此允许在更新期间其它应用程序副本保持运行。
图3是显示用于应用程序更新域确定更新是成功还是失败的方法的实施例300的流程图示。实施例300的过程可在例如实施例200的框244至246之间执行。
其它实施例可以使用不同的序列、更多或更少的步骤、以及不同的命名或术语,来完成类似功能。在一些实施例中,各种操纵或操作集合可以与其他操作以同步方式或以异步方式并行执行。此处所选的步骤是为了以简化的形式示出一些操作原理来选择的。
实施例300可在两种不同情况下执行。在第一种情况下,在框302,可从构造控制器接收对更新中的状态的查询。在另一种情况下,在框304,对于更新域的更新可能已完成。
在任一种情况下,应用程序的操作特性和应用程序的环境可被评估以确定更新是否已成功。
在框306,可为更新域评估每个应用程序副本。在框308,对于每个副本,可对操作系统进程进行评估以检测任何故障。如果在框308存在故障,则在框310,对故障的关键性质进行评估。如果在框310故障是关键的,则在框312,对副本的更新被标记为失败。如果在框310故障不是关键的,则过程可继续。
在实施例300中,逻辑被配置使得失败的第一指示可使过程退出并处理下一副本。在框312,过程可返回框306以处理另一副本。在其它实施例中,逻辑可被定义以使即使检测到故障,过程可继续到框314。
在框314,与应用程序有关的进程可被分析以确定是否发生任何故障。如果在框314发生了故障,则在框316,超时定时器可使过程循环返回到框314直到超时发生。如果在框316超时发生,则在框318,可指示失败。
如果在框314,与应用程序有关的进程是可运行的,则在框320,应用程序可运行一最小时间以在框322确定应用程序是否稳定。如果在框322,应用程序是不稳定的,则在框324,可指示失败。如果在框322,应用程序是稳定的,则在框326,应用程序副本可被标识为OK。
在一些实施例中,在框320,可使用测试算法或其它过程来锻炼应用程序。测试算法可锻炼应用程序副本以对该副本施压并确定该副本是否稳定。
实施例300示出某些信息的示例,该信息可由应用程序提供给构造控制器作为更新过程的一部分。其它实施例可使用不同机制来确定由应用程序提供给构造控制器的信息。
图4是示出显示在对不同更新域执行的更新的顺序的示例实施例400的时间线图示。实施例400可示出用于基于选出成员数的应用程序中、用于确定哪一版本的应用程序可具有选出成员数以对应用程序请求作出响应的步骤顺序。
在基于选出成员数的应用程序中,两个或多个应用程序进程可并行运行。在每个应用程序进程完成一任务之后,可发起对于任务的正确应答的选出成员数或“投票”。接收到最多投票的应答被确定为是正确的。
在实施例400的示例中,五个不同更新域被呈现在图表顶部的水平轴上。这些更新域是UD1 402、UD2 404、UD3 406、UD4 408以及UD5 410。纵轴可示出更新域的状态以及具体示出随时间的更新域的版本,其中在图表中时间向下推进。
在时间412,所有的更新域被显示为版本1,其中UD2具有“(P)”指示符,其示出UD2是主更新域。主更新域的指定可指示更新域或更新域中的进程是主应用程序副本。
在框414中,可执行更新操作,其中UD1被更新。在时间416,UD1被更新到版本2,而剩余的更新域处于版本1。
在框418中,可执行更新操作,其中UD2被更新。在时间420,UD1和UD2处于到版本2,而剩余的更新域处于版本1。由于选出成员数的原因,主更新域可从UD2被改变到UD3,因为UD3可处于版本1且版本1是大多数。在更新过程至这一刻的期间,版本1的应用程序副本可以正正常地运行并且对查询作出响应或执行其它功能。由于版本2的应用程序副本是少数,版本2的应用程序副本可以运行但来自版本2的应用程序副本的结果可被丢弃。
在框422中,可执行另一更新操作,其中UD3被更新。在时间424,UD1、UD2和UD3处于版本2,而UD4和UD5处于版本1。在时间424,版本2的应用程序副本是大多数,则随后版本2的应用程序副本可开始生成被视为有效的结果。由于现在版本2是大多数,UD1可被选为主更新域。
在框426中,可执行第四次更新操作,其中UD4被更新。在时间428,所有的更新域都处于版本2,仅剩下UD5处于版本1。
在框430中,可执行最后的更新操作,其中UD5被更新。在时间432,所有的更新域都处于版本2。
实施例400中示出的步骤的顺序示出了可如何在数个更新域上执行更新,并且还示出了基于选出成员数的应用程序可如何确定更新版本的应用程序何时被视为有效。
以上对本发明的描述是出于说明和描述的目的而提出的。它不旨在穷举本主题或将本主题限于所公开的精确形式,且鉴于以上教导其他修改和变型都是可能的。选择并描述实施例来最好地解释本发明的原理及其实践应用,从而使本领域的其他技术人员能够在各种实施例和各种适于所构想的特定用途的修改中最好地利用本发明的技术。所附权利要求书旨在包括除受现有技术所限的范围之外的其他替换实施例。

Claims (15)

1.一种在多个计算机处理器上执行的方法,所述方法包括:
在所述多个计算机处理器上执行分布式应用程序(208),所述分布式应用程序由应用程序代码的多个副本来执行;
所述分布式应用程序被执行在具有客操作系统(124)的虚拟机(122)上,所述虚拟机被运行在主机设备(102)上;
将所述多个副本分组成更新域(216),所述更新域是所述副本的组;
标识将要在所述分布式应用程序上执行的更新(210);
标识所述更新域的更新顺序(226);
对于所述更新域中的每一个,对当前更新域进行处理以执行所述更新;
查询在当前更新域中执行的所述应用程序,以确定所述当前更新域是否已准备好更新;
当所述当前更新域已准备好更新时,在所述更新域上执行所述更新(240);
查询在当前更新域中执行的所述应用程序,以确定所述更新是否导致应用程序在所述当前更新域中正确运行(242);
当所述更新导致所述应用程序正确运行时,继续到下一更新域(252);以及
当所述更新导致所述应用程序不正确运行时,挂起所述更新(260)。
2.如权利要求1所述的方法,其特征在于,所述更新包括更新所述应用程序的版本。
3.如权利要求2所述的方法,其特征在于,所述更新所述应用程序的版本包括更新应用程序可执行代码。
4.如权利要求2所述的方法,其特征在于,所述更新所述应用程序的版本包括更新所述应用程序的配置信息。
5.如权利要求1所述的方法,其特征在于,所述更新包括更新所述主机。
6.如权利要求1所述的方法,其特征在于,所述更新包括更新所述客操作系统。
7.如权利要求1所述的方法,其特征在于,所述分组通过对所述分布式应用程序查询所述分组并从所述分布式应用程序接收所述分组来执行。
8.如权利要求7所述的方法,其特征在于,所述查询被定向到所述分布式应用程序的主副本。
9.如权利要求1所述的方法,其特征在于,还包括:
从多个所述更新域中确定选出成员数,所述选出成员数确定所述分布式应用程序的当前版本。
10.如权利要求9所述的方法,其特征在于,所述选出成员数在所述更新域中的每一个如所述当前更新域一样被处理之后被确定。
11.如权利要求10所述的方法,其特征在于,所述选出成员数定义所述分布式应用程序的主副本。
12.如权利要求1所述的方法,其特征在于,以多个更新步骤来执行所述更新,所述多个更新步骤中的每一个包括按顺序处理所述更新域中的每一个。
13.如权利要求12所述的方法,其特征在于,所述更新包括:
执行第一更新步骤,包括:
查询执行在当前更新域中的所述应用程序,以确定所述当前更新域是否已准备好更新;以及
如果执行在所述当前更新域中的应用程序没有准备好更新,则对所述应用程序执行修复;
执行第二更新步骤,包括:
对所述应用程序执行更新。
14.如权利要求1所述的方法,其特征在于,所述更新域中的每一个都被原子地更新。
15.一种云计算平台,包括:
多个主机设备(102),所述主机设备的每一个包括处理器;
对于所述主机设备的每一个,至少一个虚拟机(122)具有客操作系统(124);
对于所述虚拟机的每一个,包括分布式应用程序的至少一个副本(126),所述分布式应用程序包括多个所述副本;
构造控制器(140),用于:
为所述副本确定分组(220),所述分组定义多个更新域,所述更新域的每一个包括多个所述副本;
确定所述更新域的更新顺序(230);
通过以原子形式处理当前更新域来根据所述顺序处理所述更新域的每一个,所述当前更新域通过一方法来处理,该方法包括:
查询执行在当前更新域中的所述应用程序,以确定所述当前更新域是否已准备好更新;
当所述当前更新域已准备好更新时,对所述更新域执行所述更新(234);
查询执行在当前更新域中的所述应用程序,以确定所述更新是否导致应用程序在所述当前更新域中正确运行(242);
当所述更新导致所述应用程序正确运行时,继续到下一更新域(252);以及
当所述更新导致所述应用程序不正确运行时,挂起所述更新(260)。
CN201110340264.8A 2010-10-22 2011-10-21 分布式系统中的协调升级 Active CN102681865B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/910,712 US9753713B2 (en) 2010-10-22 2010-10-22 Coordinated upgrades in distributed systems
US12/910,712 2010-10-22

Publications (2)

Publication Number Publication Date
CN102681865A true CN102681865A (zh) 2012-09-19
CN102681865B CN102681865B (zh) 2015-08-05

Family

ID=45974088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110340264.8A Active CN102681865B (zh) 2010-10-22 2011-10-21 分布式系统中的协调升级

Country Status (5)

Country Link
US (1) US9753713B2 (zh)
EP (1) EP2630567B1 (zh)
CN (1) CN102681865B (zh)
HK (1) HK1174408A1 (zh)
WO (1) WO2012054197A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105009084A (zh) * 2012-12-04 2015-10-28 微软技术许可有限责任公司 分布式计算平台中的服务分配
CN107943510A (zh) * 2017-11-23 2018-04-20 郑州云海信息技术有限公司 分布式存储系统升级方法、系统、装置及可读存储介质
CN109688180A (zh) * 2017-10-19 2019-04-26 阿里巴巴集团控股有限公司 一种基于镜像的云服务软件升级方法和装置
CN109460284B (zh) * 2018-10-30 2021-10-19 深圳繁华科技研发有限公司 一种对于虚拟机执行改变的方法和系统
CN115857995A (zh) * 2023-02-08 2023-03-28 珠海星云智联科技有限公司 一种用于互联设备升级的方法、介质及计算设备

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8627426B2 (en) 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US9448790B2 (en) 2010-04-26 2016-09-20 Pivotal Software, Inc. Rapid updating of cloud applications
US9772831B2 (en) 2010-04-26 2017-09-26 Pivotal Software, Inc. Droplet execution engine for dynamic server application deployment
US8813065B2 (en) 2010-04-26 2014-08-19 Vmware, Inc. Microcloud platform delivery system
US8572706B2 (en) 2010-04-26 2013-10-29 Vmware, Inc. Policy engine for cloud platform
US8539078B2 (en) * 2010-07-08 2013-09-17 International Business Machines Corporation Isolating resources between tenants in a software-as-a-service system using the estimated costs of service requests
US9015710B2 (en) * 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
US9037564B2 (en) 2011-04-29 2015-05-19 Stephen Lesavich Method and system for electronic content storage and retrieval with galois fields on cloud computing networks
US9137250B2 (en) 2011-04-29 2015-09-15 Stephen Lesavich Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
US9361479B2 (en) 2011-04-29 2016-06-07 Stephen Lesavich Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks
US9170798B2 (en) 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
CN102999347B (zh) * 2011-09-15 2015-07-29 腾讯科技(深圳)有限公司 一种系统重装方法、系统以及客户端
US8843914B1 (en) 2011-09-19 2014-09-23 Amazon Technologies, Inc. Distributed update service
US10031783B2 (en) 2012-03-02 2018-07-24 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
US9047133B2 (en) 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US9052961B2 (en) 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US9405556B2 (en) * 2012-06-28 2016-08-02 Microsoft Technology Licensing, Llc Dynamic addition and removal of operating system components
US9348652B2 (en) 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US10225323B2 (en) * 2012-09-07 2019-03-05 Oracle International Corporation System and method for providing java cloud services for use with a cloud computing environment
US20140075170A1 (en) * 2012-09-12 2014-03-13 International Business Machines Corporation Automated firmware voting to enable multi-enclosure federated systems
US9208041B2 (en) * 2012-10-05 2015-12-08 International Business Machines Corporation Dynamic protection of a master operating system image
US9311070B2 (en) 2012-10-05 2016-04-12 International Business Machines Corporation Dynamically recommending configuration changes to an operating system image
US9286051B2 (en) 2012-10-05 2016-03-15 International Business Machines Corporation Dynamic protection of one or more deployed copies of a master operating system image
US8990772B2 (en) 2012-10-16 2015-03-24 International Business Machines Corporation Dynamically recommending changes to an association between an operating system image and an update group
US9851980B1 (en) * 2012-10-22 2017-12-26 Amazon Technologies, Inc. Distributed update service enabling update requests
US9342291B1 (en) 2012-11-14 2016-05-17 Amazon Technologies, Inc. Distributed update service
US9141487B2 (en) * 2013-01-15 2015-09-22 Microsoft Technology Licensing, Llc Healing cloud services during upgrades
US9477710B2 (en) * 2013-01-23 2016-10-25 Microsoft Technology Licensing, Llc Isolating resources and performance in a database management system
EP2779592A3 (en) 2013-03-15 2015-03-18 Verisign, Inc. Systems and methods for multi-tenant generic top level domain deployment
WO2014209078A1 (en) * 2013-06-28 2014-12-31 Samsung Electronics Co., Ltd. Method and apparatus for updating application
EP2945055A4 (en) * 2013-08-13 2016-05-25 Huawei Tech Co Ltd METHOD AND DEVICE FOR UPGRADING THE APPLICATION
WO2016048326A1 (en) 2014-09-25 2016-03-31 Hewlett Packard Enterprise Development Lp Identification of a component for upgrade
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9715402B2 (en) * 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
KR101939075B1 (ko) * 2015-01-28 2019-04-11 닛본 덴끼 가부시끼가이샤 시스템, 가상화 제어 장치, 가상화 제어 장치의 제어 방법 및 프로그램
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US10410155B2 (en) 2015-05-01 2019-09-10 Microsoft Technology Licensing, Llc Automatic demand-driven resource scaling for relational database-as-a-service
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10768920B2 (en) 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
US10042628B2 (en) * 2016-06-29 2018-08-07 Vmware, Inc. Automated upgrade system for a service-based distributed computer system
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US20180241617A1 (en) * 2017-02-22 2018-08-23 Microsoft Technology Licensing, Llc System upgrade management in distributed computing systems
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
CN110851152B (zh) * 2018-08-20 2023-10-13 联想企业解决方案(新加坡)有限公司 使用区块链执行固件更新的方法
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US10884815B2 (en) 2018-10-29 2021-01-05 Pivotal Software, Inc. Independent services platform
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
USD886143S1 (en) 2018-12-14 2020-06-02 Nutanix, Inc. Display screen or portion thereof with a user interface for database time-machine
US10817157B2 (en) 2018-12-20 2020-10-27 Nutanix, Inc. User interface for database management services
US11816066B2 (en) 2018-12-27 2023-11-14 Nutanix, Inc. System and method for protecting databases in a hyperconverged infrastructure system
US11010336B2 (en) 2018-12-27 2021-05-18 Nutanix, Inc. System and method for provisioning databases in a hyperconverged infrastructure system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
EP3770422A1 (en) * 2019-07-23 2021-01-27 Siemens Gamesa Renewable Energy A/S Updating software and/or firmware of a plurality of wind turbine devices
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11169795B2 (en) 2019-10-09 2021-11-09 Toyota Motor North America, Inc. Management of transport software updates
US11294662B2 (en) 2019-10-09 2022-04-05 Toyota Motor North America, Inc. Management of transport software updates
US11422792B2 (en) 2019-10-09 2022-08-23 Toyota Motor North America, Inc. Management of transport software updates
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11604705B2 (en) 2020-08-14 2023-03-14 Nutanix, Inc. System and method for cloning as SQL server AG databases in a hyperconverged system
US11907167B2 (en) 2020-08-28 2024-02-20 Nutanix, Inc. Multi-cluster database management services
US11640340B2 (en) 2020-10-20 2023-05-02 Nutanix, Inc. System and method for backing up highly available source databases in a hyperconverged system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11604806B2 (en) 2020-12-28 2023-03-14 Nutanix, Inc. System and method for highly available database service
US11892918B2 (en) 2021-03-22 2024-02-06 Nutanix, Inc. System and method for availability group database patching
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11803368B2 (en) 2021-10-01 2023-10-31 Nutanix, Inc. Network learning to control delivery of updates

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050267951A1 (en) * 2004-05-17 2005-12-01 Oracle International Corporation Rolling upgrade of distributed software with automatic completion
US20080222164A1 (en) * 2005-10-13 2008-09-11 International Business Machines Corp. Method and apparatus to provide guaranteed deployment of applications to nodes in an enterprise
US20090007135A1 (en) * 2007-06-29 2009-01-01 Lucent Technologies, Inc. Apparatus and method for server network management to provide zero planned retrofit downtime

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405219B2 (en) 1999-06-22 2002-06-11 F5 Networks, Inc. Method and system for automatically updating the version of a set of files stored on content servers
US20040003266A1 (en) * 2000-09-22 2004-01-01 Patchlink Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US20030135384A1 (en) 2001-09-27 2003-07-17 Huy Nguyen Workflow process method and system for iterative and dynamic command generation and dynamic task execution sequencing including external command generator and dynamic task execution sequencer
US7257689B1 (en) * 2004-10-15 2007-08-14 Veritas Operating Corporation System and method for loosely coupled temporal storage management
US20060294413A1 (en) * 2005-06-28 2006-12-28 Filz Frank S Fault tolerant rolling software upgrade in a cluster
US8966474B2 (en) * 2007-04-30 2015-02-24 Hewlett-Packard Development Company, L.P. Managing virtual machines using shared image
US8214470B2 (en) 2007-11-02 2012-07-03 Telefonaktiebolaget L M Ericsson (Publ) Upgrading software in radio base station nodes
US8375383B2 (en) * 2008-08-28 2013-02-12 Microsoft Corporation Rolling upgrades in distributed applications
US20100106767A1 (en) 2008-10-24 2010-04-29 Microsoft Corporation Automatically securing distributed applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050267951A1 (en) * 2004-05-17 2005-12-01 Oracle International Corporation Rolling upgrade of distributed software with automatic completion
US20080222164A1 (en) * 2005-10-13 2008-09-11 International Business Machines Corp. Method and apparatus to provide guaranteed deployment of applications to nodes in an enterprise
US20090007135A1 (en) * 2007-06-29 2009-01-01 Lucent Technologies, Inc. Apparatus and method for server network management to provide zero planned retrofit downtime

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105009084A (zh) * 2012-12-04 2015-10-28 微软技术许可有限责任公司 分布式计算平台中的服务分配
CN105009084B (zh) * 2012-12-04 2018-12-25 微软技术许可有限责任公司 分布式计算平台中的服务分配方法及分布式计算系统
CN109688180A (zh) * 2017-10-19 2019-04-26 阿里巴巴集团控股有限公司 一种基于镜像的云服务软件升级方法和装置
CN109688180B (zh) * 2017-10-19 2022-05-10 阿里巴巴集团控股有限公司 一种基于镜像的云服务软件升级方法和装置
CN107943510A (zh) * 2017-11-23 2018-04-20 郑州云海信息技术有限公司 分布式存储系统升级方法、系统、装置及可读存储介质
CN109460284B (zh) * 2018-10-30 2021-10-19 深圳繁华科技研发有限公司 一种对于虚拟机执行改变的方法和系统
CN115857995A (zh) * 2023-02-08 2023-03-28 珠海星云智联科技有限公司 一种用于互联设备升级的方法、介质及计算设备

Also Published As

Publication number Publication date
EP2630567A4 (en) 2014-04-23
US9753713B2 (en) 2017-09-05
US20120102481A1 (en) 2012-04-26
EP2630567A2 (en) 2013-08-28
EP2630567B1 (en) 2021-05-19
HK1174408A1 (zh) 2013-06-07
WO2012054197A3 (en) 2012-06-21
WO2012054197A2 (en) 2012-04-26
CN102681865B (zh) 2015-08-05

Similar Documents

Publication Publication Date Title
CN102681865A (zh) 分布式系统中的协调升级
US9342364B2 (en) Workflow managed composite applications
JP5721750B2 (ja) 構成ドリフトの効果的管理
CN108431836A (zh) 用于硬件故障修复的基础设施管理系统
US20090320019A1 (en) Multi-scenerio software deployment
US20090013321A1 (en) Managing virtual computers
US11907709B2 (en) Enhancing DevOps workflows in enterprise information technology organizations
US20090288082A1 (en) System and method for performing designated service image processing functions in a service image warehouse
CN103620551A (zh) 虚拟机迁移工具
US20140372989A1 (en) Identification of a failed code change
US20060080653A1 (en) Methods and systems for patch distribution
WO2002065251A2 (en) Software installation over a network with build plan defining the build, plan transferred to recipient computer and executed
CN108776643B (zh) 一种基于版本控制流程的目标代码合并控制方法及系统
CN102929665B (zh) 用于驱动安装的系统
US9043781B2 (en) Algorithm for automated enterprise deployments
CN103988177A (zh) 基于维护寄存器的离线虚拟机的维护
US20190266321A1 (en) Automated secure disposal of hardware components
US10372701B2 (en) Transaction processor
CN115668128A (zh) 使云服务的采用自动化
US11544050B1 (en) Software patch automation
WO2022226400A1 (en) Transition manager system
US11340881B2 (en) Validation of desired software state image for hardware incompatibilities
US20150355997A1 (en) Server-Platform Simulation Service
EP4130982A1 (en) Network-based solution module deployment platform
US20170109046A1 (en) Preserving virtual product data in a computer system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1174408

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150727

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1174408

Country of ref document: HK