CN109416651B - 多租户云计算环境中的更新协调 - Google Patents

多租户云计算环境中的更新协调 Download PDF

Info

Publication number
CN109416651B
CN109416651B CN201780037434.0A CN201780037434A CN109416651B CN 109416651 B CN109416651 B CN 109416651B CN 201780037434 A CN201780037434 A CN 201780037434A CN 109416651 B CN109416651 B CN 109416651B
Authority
CN
China
Prior art keywords
update
tenant
infrastructure
request
cloud computing
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.)
Active
Application number
CN201780037434.0A
Other languages
English (en)
Other versions
CN109416651A (zh
Inventor
M·方图拉
M·鲁辛诺维奇
Y·穆罕默德
P·帕特瓦
A·K·查布拉
Z·拉法洛维奇
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 Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109416651A publication Critical patent/CN109416651A/zh
Application granted granted Critical
Publication of CN109416651B publication Critical patent/CN109416651B/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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

协调多租户云的一个或多个区域内的软件更新。使用共享的更新协调器、更新优先级规范和可用性规范来标识和解决租户与租户冲突、租户与基础设施提供者冲突以及安全性与其他优先级之间的冲突。可以将基础设施更新请求呈现给租户以供批准。推迟的基础设施更新的优先级可以更高。防止利用零日漏洞的优先级可以高于满足可用性目标。即使当更新源自独立受控实体时,也可以合并更新以减少停机时间。可以指定最大停机时间、最小故障域、最小虚拟机、允许的更新开始时间和其他可用性标准。更新可以基于其相对优先级而被抢占或允许完成。在协调更新之后,租户和基础设施提供者仍然可以使用其自己的部署引擎。可以检测涉及不利更新批准或不批准的恶意行为。

Description

多租户云计算环境中的更新协调
背景技术
云计算环境(也称为“云环境”或简称为“云”)在至少一个网络上按需提供共享的处理资源。通常,但并非总是,通过因特网访问云计算环境。由云计算环境提供的处理资源通常可以从可配置计算资源(诸如网络、服务器、存储设备、应用和软件服务)的共享池按需来获取,并且所提供的资源可以使用来自用户的相对较小的管理努力来快速提供和释放。云环境的计算和存储解决方案为云的用户提供了多变和灵活的能力以在第三方数据中心存储和处理它们的数据。云的用户通常称为“客人”或“租户”。
一些云提供者提供“基础设施即服务”(IaaS),IaaS包括提供计算机的使用,这些计算机是“裸机(bare metal)”物理计算机或(更常见地)虚拟机。IaaS服务通常通过向租户隐藏基础设施的详细信息来使云的租户无需处理这些详细信息,诸如服务器在数据中心内的物理位置、所使用的数据分区和复制位置以及计算资源扩展的管理细节。IaaS租户可以在IaaS云平台上开发和运行它们的软件解决方案,而无需购买和管理底层硬件的成本和复杂性。管理程序可以代表租户运行虚拟机,这通常允许相应虚拟机内的一个或多个操作系统共享单个硬件主机。根据租户的不同要求,云内的管理程序通常可以支持很多虚拟机,并且可以扩展和收缩所提供的服务。为了在云中部署它们的应用,租户在云的虚拟机之上安装它们自己的操作系统映像,然后在操作系统之上安装它们的应用软件。在IaaS模型中,每个租户负责更新操作系统以及更新租户运行的应用软件。
一些云提供者提供“平台即服务”(PaaS),PaaS包括向应用开发人员提供开发环境。PaaS服务通常通过向租户隐藏基础设施详细信息来使云的租户无需处理安装和更新操作系统映像所需要的这些详细信息。因此,PaaS产品可以在一个或多个IaaS产品之上运行。PaaS提供者通常提供用于软件开发的套件和标准,并且可以提供用于软件分发和许可或订阅支付的渠道。PaaS提供者通常向租户提供计算平台,通常包括操作系统、一个或多个编程语言执行环境、数据库服务和/或web服务。应用开发人员可以在PaaS云平台上开发和运行它们的软件解决方案,而无需购买和管理底层硬件和软件的成本和复杂性。通过一些PaaS产品,底层计算机和存储资源自动扩展以匹配应用需求,使得云租户不必手动分配这些资源。
发明内容
本文中描述的一些技术涉及标识和减少或消除云计算环境内的不同架构级别(IaaS级别、PaaS级别、应用级别)之间的更新冲突和/或减少或消除云内的独立受控实体之间的更新冲突的技术活动。例如,可以解决虚拟机更新与PaaS平台更新之间的冲突以减少停机时间。一些示例涉及标识和减少或消除在一方面影响多个租户的安全性更新与在另一方面特定于一个租户的可用性目标或可用性要求之间的冲突的技术活动。与本文中的教导相关的其他技术活动对于本领域技术人员而言也将变得很清楚。
一些实施例协调多租户云计算环境中的更新。更新协调器从第一更新请求者接收指定对云计算环境的至少一部分的第一更新的第一更新请求,并且从第二更新请求者接收指定对云计算环境的至少一部分的第二更新的第二更新请求。更新请求者是不同的实体,诸如两个独立受控租户、或PaaS租户和PaaS提供者、或PaaS租户和IaaS提供者、或PaaS提供者和IaaS提供者、或另一IaaS租户和IaaS提供者。每个更新请求进行有关更新的请求,诸如尽快执行更新的请求、在指定时间或响应于指定条件而执行更新的请求、推迟更新的请求或者根本不执行更新的请求。
在一些示例中,更新协调器协调更新请求以控制至少一个更新的执行。更新请求的协调可以包括标识并且然后解决更新请求之间的冲突。例如,当更新请求来自独立受控租户时,当一个更新请求者是租户而另一更新请求者是云计算基础设施服务提供者(例如,IaaS提供者或PaaS提供者)时,当一个更新请求以安全性作为最高优先级而另一更新请求不是时,或者当一个更新请求以多个租户的安全性作为最高优先级而另一更新请求以特定租户的资源可用性作为最高优先级时,可能会出现冲突。
在一些示例中,例如,更新冲突解决可以包括将基础设施更新请求呈现给租户以供批准或拒绝,向租户通知基础设施更新的即将到来的执行,基于预定的优先级规范(特别是对于基础设施更新)对更新进行优先级排序,增加推迟的更新的优先级,允许在开始另一更新之前完成更新,抢占已经处于进行中的更新的执行以支持另一更新,访问可用性规范,平衡由于更新而导致的不可用性与来自更新的安全性增强,和/或将更新合并成联合更新。更新协调器可以向部署引擎给予用于执行更新的批准,或者协调器可以向请求者给予批准,这些请求者然后指导它们相应的部署引擎。
在一些示例中,可以监测更新协调器以检测更新协调器或请求者的恶意行为。例如,恶意行为可能表现为大量更新请求、大量更新请求的可用性退化批准、或更新云基础设施组件的请求的安全威胁不批准。
给出的示例仅是说明性的。本“发明内容”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。相反,提供本“发明内容”是为了以简化的形式介绍一些技术构思,这些构思将在下面的“具体实施方式”中进一步描述。创新使用权利要求来定义,并且在本“发明内容”与权利要求冲突的情况下,应当以权利要求为准。
附图说明
将参考附图给出更具体的描述。这些图仅说明了所选择的方面,并且因此未完全确定覆盖或范围。
图1是示出具有在软件的控制下彼此交互的至少一个处理器和至少一个存储器的云计算机系统并且还示出一些配置的存储介质示例的框图;
图2是示出这里被指定为示例A的示例云计算架构的各方面的框图;
图3是示出这里被指定为示例B的示例云计算架构的各方面的框图;
图4是示出这里被指定为示例C的示例云计算架构的各方面的框图;
图5是示出协调来自云中的独立受控租户的更新请求的架构的各方面的数据流程图;
图6是示出协调来自云中的租户和独立受控基础设施提供者的更新请求的架构的各方面的数据流程图;
图7是示出协调来自云中的三个或更多个独立受控实体的更新请求的架构的各方面的数据流程图;
图8是示出某种过程和配置的存储介质实施例的各方面的流程图;
图9是示出包括协调多租户云的区域中的更新请求的区域更新管理器的架构的各方面的数据流程图;
图10是示出云计算环境中的区域、可用性区、数据中心和其他项目的层级的框图;
图11是进一步示出某种过程和配置的存储介质实施例的各方面的另一流程图;
图12是进一步示出图11中的冲突解决步骤的各方面的图;以及
图13是示出可用性规范的示例的框图。
具体实施方式
概述
传统上,当调度或执行对租户带到云的软件的更新时,云租户没有与基础设施提供者协调。类似地,云基础设施提供者传统上在它们自己认为适当的时间对它们提供的基础设施执行更新,其中基础设施提供者与其客户(云的租户)之间很少或根本没有关于这些基础设施更新的定时的协调。相反,就软件更新而言,租户与基础设施提供者之间的主要接口是服务级别协议(SLA)规定,该SLA规定指定了基础设施提供者将向租户提供的服务级别。
例如,SLA技术规定可以为虚拟机指定99.99%的正常运行时间。关于该规定,当更新它提供的虚拟机时,基础设施提供者可以单方面选择更新频率、一天中执行更新的特定时间以及从更新一个虚拟机到下一虚拟机的进展序列,只要虚拟机基础设施仍然提供指定的99.99%正常运行时间。类似地,如果SLA技术规定指定了最小数据副本数目、最小故障域数目或类似的约束,则基础设施提供者可以单方面选择更新频率、执行更新的特定时间以及基础设施更新的所有其他特征,只要基础设施仍然提供符合规定的指定的最小资源。基础设施提供者通常不需要向租户提前通知或预先描述更新,尽管这样的信息可以不时地出于礼貌或以临时方式给出。
至于云租户本身之间的通信,传统上就更新而言根本没有任何通信。从给定云的一个租户到一个或多个其他租户的更新通知由于它们在云中的相互存在而没有被租户与基础设施提供者之间的SLA完全覆盖——这是一个租户-租户问题,而不是租户-基础设施提供者问题。给定公共云的租户之间传统上不会就它们全部驻留在其中的云的资源达成协议。尽管任何给定的云资源有限,并且在某些时候两个租户可能竞争使用相同的资源,但是就对它们共享的云的更新而言,给定云的独立受控租户在传统上彼此之间没有协调。
本文中描述的一些创新提供了云中的更新协调器以协调基础设施更新和应用更新中的一些或全部。更新协调器可以从基础设施提供者接收对基础设施更新的请求,并且从租户接收对应用更新的请求。更新协调器根据指定的标准(诸如更新策略(即,规范)和不同种类的更新和/或不同租户的相对优先级)来解决更新请求之间的冲突。在某些情况下,更新协调器可以根据租户自己的策略将基础设施更新请求呈现给一个或多个租户以供审批,以保证其服务对租户的可用性以及租户的服务对使用租户的应用软件的人的可用性。在其他情况下,更新协调器可以在不向租户通知的情况下批准基础设施更新请求,例如,以防止零日开发。
涉及一个或多个更新请求的冲突可以在各种各样的情况下出现,并且特定的更新协调器可以被定制以标识和/或解决这些情况中的一些或全部中的冲突。下面是三个介绍性示例,但是技术人员将认识到这些示例并未覆盖可以使用更新协调器来获益的所有情况。
示例1:租户-提供者冲突。铂金级云租户希望其数据库应用一次停止不会超过5秒。PaaS基础设施提供者希望更新由数据库应用使用的操作系统中的设备驱动程序,但是设备驱动程序更新的执行将需要至少9秒,并且数据库应用将在整个时间内不可用。可以使用来自基础设施更新请求的数据(例如,由于更新导致的停机时间的估计持续时间)和来自可用性规范的数据(最大可接受停机时间)来定制云更新协调器以标识这种冲突。然后,可以将所标识的更新冲突引导到人类管理员以进行处理,和/或(为了更好的效率),可以由更新协调器使用基础设施更新请求、租户的可用性规范和指定常规驱动程序更新和铂金级租户可用性级别的相对优先级的优先级规范来自动解决冲突。
示例2:另一租户-提供者冲突。云租户SLA技术规定指定租户的在线交易处理软件能够在均匀地分布在两个可用性区之间的至少20个虚拟机上连续运行;在没有更新或故障的情况下,租户软件通常在均匀地分布在两个可用性区上的三个或更多个虚拟机上运行(在该示例中,“均匀”表示可用性区之间的虚拟机数目差不大于2)。IaaS基础设施提供者希望使用安全补丁尽快更新云中的所有虚拟机以防止利用零日安全漏洞。在更新期间,正在更新的虚拟机将不可用,并且因此在该虚拟机上运行的任何软件也将停止运行。
在该示例2中,可以定制云更新协调器以将这种情况标识为涉及租户可用性规范与基础设施更新预期停机时间之间的冲突的情况下和/或将这种情况标识为涉及高优先级安全性更新与另一非安全性优先级之间的冲突的情况(即,保持最小虚拟机数目和/或最小可用性区数目的可用性优先级)。从基础设施提供者的角度来看,最直接的方法是同时更新所有虚拟机。这将使安全补丁最快到位,但它也会通过将虚拟机数目和可用性区数目两者减少到零来最大程度地违反租户可用性规范。幸运的是,合适的更新协调器可以采用不同的方法。假定初始状态包括在可用性区1中为租户运行的15个虚拟机和在可用性区2中为租户运行的16个虚拟机,可以由更新协调器使用诸如如下自动生成的更新序列(解决方案)自动解决更新冲突:
1.在可用性区1中启动对5个虚拟机的更新——这使得仍然有10个虚拟机在可用性区1中运行,这满足了可用性最小值。
2.在步骤#1中的区域1更新的同时,启动对可用性区2中的6个虚拟机的更新——这使得仍然有10个虚拟机在可用性区2中运行,这满足了可用性最小值。
3.假定在上面的步骤#1或步骤#2中启动更新包括或之前是终止或暂停在虚拟机上运行的租户软件。因此,在虚拟机更新完成时,在更新后的虚拟机上重新启动(如果终止)或继续(如果暂停)租户软件的执行。
4.对于再次运行租户软件的每个更新后的虚拟机,启动对尚未更新的另一虚拟机的更新,直到所有虚拟机都已经更新。
示例3:租户-租户冲突。云租户X运行视频流应用,视频流应用在广播事件期间大量使用云网络带宽,而在其他时间使用非常少的带宽。云租户Y想要升级其数据库软件,这包括迁移而不是就地转换。迁移涉及将所有数据从其当前位置复制到格式转换程序,并且然后通过云将转换后的数据的三个副本发送到三个单独的存储设施。很可能没有租户意识到另一租户是同一个云的租户,或者它们对云网络带宽的要求在没有得到适当协调的情况下可能会发生冲突。尽管如此,冲突仍然由它们共享的云基础设施中的合适更新协调器来标识。如果租户X已经为其流应用保证了足够的带宽,并且租户Y没有相互冲突的保证,则有利于租户X的解决方案是直截了当的。然而,可能发生X和Y都是机会带宽用户,因此不能提前保证它们的需求将得到满足。在这种情况下,更新协调器仍然可以标识冲突并且通过调度租户Y更新来解决冲突,使得租户Y在租户X没有使用带宽时使用该带宽。
本文中其他地方讨论其他示例。鉴于本文中的教导,本领域技术人员还将认识到更新、可用性、安全性和其他优先级之间的冲突的其他示例。
可以在更广泛的上下文中查看本文中描述的一些实施例。例如,诸如应用、可用性、冲突、基础设施、优先级、虚拟机和更新等概念可以与特定实施例相关。然而,从广泛上下文的可用性来看,并不是在本文中寻求抽象概念的专有权;它们不是。相反,本公开集中于提供适当的特定实施例,这些实施例的技术效果完全或部分地解决特定技术问题。涉及应用、可用性、冲突、基础设施、优先级、虚拟机和/或更新的其他介质、系统和方法不在本发明的范围内。因此,在正确理解本公开的情况下,也避免了模糊、纯粹抽象、技术特征的缺乏以及伴随的证据问题。
本文中描述的实施例的技术特征对于本领域普通技术人员来说是很清楚的,并且对于各种细心的读者也将以几种方式是很清楚的。首先,一些实施例解决了植根于计算技术的技术活动,诸如标识和解决应用软件更新与基础设施软件更新之间的冲突或者由不同云租户进行的更新之间的冲突。其次,一些实施例包括技术组件,诸如以超出通用计算机内的典型交互的方式与软件交互的计算硬件。例如,除了诸如通常的存储器分配、通常的存储器读取和写入、通常的指令执行以及某种I/O等正常交互之外,本文中描述的一些实施例分析更新请求以标识计算资源冲突。第三,由一些实施例提供的技术效果包括避免了可能在没有更新协调的情况下发生的共享计算资源(诸如带宽或正在运行的虚拟机)的至少一些冲突。第四,一些实施例包括技术自适应,诸如可用性规范、更新优先级规范、以及从云的不同租户到共享的更新协调器的更新请求。第五,一些实施例通过添加区域更新管理器或用于来自使用云的独立受控实体的更新请求流的其他更新协调器来修改云计算环境的技术功能。第六,一些实施例的技术优点包括改进了计算资源分配的效率,改进了应用停机时间的避免,以及改进了在云中运行的进程之间的通信。根据所提供的描述,其他优点对于技术人员也是很清楚的。
缩略语和缩写
以下定义一些缩略语和缩写。其他缩略语和缩写可以在本文中其他地方定义,或者不需要技术人员理解定义。
ALU:算术和逻辑单元
API:应用程序接口
APP:应用
CD:光盘
CPU:中央处理单元
DVD:数字通用盘或数字视频盘
FD:故障域
FPGA:现场可编程门阵列
FPU:浮点处理单元
GPU:图形处理单元
GUI:图形用户界面
IDE:集成开发环境,有时也称为“交互式开发环境”
MPI:消息传递接口
MR:管理角色
OS:操作系统
RAM:随机存取存储器
REST:代表性状态转移
ROM:只读存储器
SDK:软件开发套件
SLA:服务级别协议
SMS:短消息服务
UD:更新域(或升级域)
VM:虚拟机
XML:可扩展标记语言
附加术语
本文中参考诸如附图中示出的那些示例性实施例,并且本文中使用特定语言来描述它们。但是,在本文中示出的特征的改变和进一步修改以及通过(多个)相关领域的技术人员想到并且拥有本公开的本文中的特定实施例而示出的抽象原理的附加技术应用应当在权利要求的范围。
在本公开中说明了术语的含义,因此应当仔细注意这些说明来阅读权利要求。给出了具体示例,但是(多个)相关领域的技术人员将理解,其他示例也可以落入所使用的术语的含义内并且落入一个或多个权利要求的范围内。这里的术语不一定具有与一般用法(特别是非技术用途)或特定行业的用法或特定字典或词典集中的相同的含义。附图标记可以与各种措辞一起使用以帮助示出术语的广度。从给定文本中省略附图标记不一定表示文本没有讨论图的内容。发明人声称并且行使他们对自己的词典编纂的权利。引用的术语是明确定义的,但术语也可以隐含地定义而不使用引号。术语可以在此在“具体实施方式”中和/或在申请文件的其他地方明确地或隐含地定义。
如本文中使用的,“计算机系统”可以包括例如一个或多个服务器、主板、处理节点、个人计算机(便携式或非便携式)、个人数字助理、智能电话、智能手表、智能带、蜂窝电话或移动电话、至少具有处理器和存储器的其他移动设备、和/或提供至少部分由指令来控制的一个或多个处理器的(多个)其他设备。指令可以是存储器和/或专用电路中的固件或其他软件的形式。特别地,尽管可能发生很多实施例在服务器计算机上运行,但是其他实施例可以在其他计算设备上运行,并且任何一个或多个这样的设备可以是给定实施例的一部分。
“多线程”计算机系统是支持多个执行线程的计算机系统。例如,术语“线程”应当被理解为包括能够或进行调度(并且可能是同步)的任何代码,并且还可以通过另一名称来知道,诸如“任务”、“进程”或“协同例程”。线程可以并行运行,按顺序运行,或者以并行执行(例如,多处理)和顺序执行(例如,时间分片)的组合来运行。已经以各种配置设计了多线程环境。执行线程可以并行运行,或者可以组织线程以用于并行执行,但实际上轮流按顺序执行。例如,可以通过在多处理环境中的不同核上运行不同的线程,通过对单个处理器核上的不同线程进行时间分片,或者通过时间分片和多处理器线程的某种组合来实现多线程。线程上下文切换可以例如由内核的线程调度器、用户空间信号或用户空间和内核操作的组合来启动。例如,线程可以轮流操作共享数据,或者每个线程可以操作其自己的数据。
“逻辑处理器”或“处理器”是单个独立的硬件线程处理单元,诸如同时多线程实现中的核。作为另一示例,每个核运行两个线程的超线程四核芯片具有8个逻辑处理器。逻辑处理器包括硬件。术语“逻辑”用于防止给定芯片具有至多一个处理器的错误结论;“逻辑处理器”和“处理器”在本文中可互换地使用。处理器可以是通用的,或者可以针对诸如图形处理、信号处理、浮点算术处理、加密、I/O处理等特定用途而进行定制。
“多处理器”计算机系统是具有多个逻辑处理器的计算机系统。多处理器环境以各种配置发生。在给定配置中,所有处理器在功能上可以相等,而在另一配置中,由于具有不同的硬件能力、不同的软件分配或两者,一些处理器可能与其他处理器不同。取决于配置,处理器可以在单个总线上彼此紧密耦合,或者可以松散耦合。处理器在一些配置中共享中央存储器,处理器在一些配置中每个具有它们自己的本地存储器,并且在一些配置中存在共享和本地存储器。
“内核”包括操作系统、管理程序、虚拟机、BIOS代码和类似的硬件接口软件。
“代码”表示处理器指令、数据(其包括常数、变量和数据结构)、或指令和数据两者。“代码”和“软件”在本文中可互换地使用。可执行代码、解释代码和固件是代码的一些示例。
“优化”表示改进而不一定是完美的。例如,可以对已经优化的程序进行进一步的改进。
本文中广泛使用“程序”以包括应用、内核、驱动程序、中断处理程序、固件、状态机、库和由程序员(也称为开发人员)编写和/或自动生成的其他代码。
“例程”表示经由跳转和上下文保存接收控制的函数、过程、异常处理程序、中断处理程序或另一指令块。上下文保存在堆栈上推送返回地址或以其他方式保存返回地址,并且还可以保存在从例程返回时要恢复的寄存器内容。
“更新”和“升级”在本文中可互换地使用以表示软件的变化。尽管更新通常旨在作为改进,但是出于目前的目的,通过更新进行的变化不一定增加功能,不一定改进所讨论的软件的功能,并且不一定用不同的版本替换整个软件。
“IoT”或“物联网”表示可寻址的嵌入式计算节点的任何联网集合。这些节点是本文中定义的计算机系统的示例,但是它们还具有以下特征中的至少两个:(a)没有本地人类可读显示器;(b)没有本地键盘;(c)主要输入来源是跟踪非语言数据的来源的传感器;(d)没有本地旋转磁盘存储装置——RAM芯片或ROM芯片提供唯一的本地存储器;(e)没有CD或DVD驱动器;(f)嵌入家用电器;(g)嵌入植入式医疗设备;(h)嵌入车辆;(i)嵌入过程自动化控制系统;或(j)集中于以下之一的设计:环境监测、公民基础设施监测、工业设备监测、能源使用监测、人体或动物健康监测或物理运输系统监测。
除非另有说明,否则“租户”指的是IaaS租户;当如此指示时,“租户”还可以指代PaaS租户(即,PaaS平台的租户)。在某些情况下,IaaS租户与PaaS租户之间的区别可能会很明显。例如,从IaaS租户的角度来看,在虚拟机中运行的操作系统不是由云提供者提供的基础设施的一部分,但是从PaaS租户的角度来看,这些操作系统是由PaaS提供者提供的基础设施的一部分。类似地,除非使用“PaaS”另有明确指示,否则本文中使用的“基础设施提供者”或“云基础设施提供者”指的是IaaS提供者,并且“基础设施”或“云基础设施”指的是包括至少一个虚拟机但不一定包括操作系统的基础设施。为了清楚起见,提供了有利于IaaS的这些默认解释,但是技术人员在研究之后将确认本文中的教导以大多数方式涉及两种类型的基础设施提供者。
还应当理解,“基础设施提供者”和“租户”在本文中用于彼此区分;它们是云计算环境中的不同角色。基础设施提供者提供由租户使用的云基础设施(例如,虚拟机、操作系统)。除非另有明确说明,否则基础设施提供者和租户是独立受控实体。PaaS提供者(PSP)扮演两个角色:PSP是在由PSP提供的平台上开发或运行应用软件的租户的基础设施提供者,并且PSP是提供PaaS平台在其上运行的虚拟机的IaaS提供者的租户。
如本文中使用的,云中的“独立受控”实体可以包括在每个的法律管辖中被认可为关于以下中的至少一项彼此分离的租户和/或基础设施提供者:税务机关的义务、财产所有权、产品责任、合同权利和义务、刑法权利。
“管理程序”是运行虚拟机的软件平台。一些示例包括
Figure BDA0001906641770000131
(Citrix Systems公司的商标)、
Figure BDA0001906641770000132
(Microsoft Corporation的商标)和KVM(基于内核的虚拟机)软件。
除非另有说明,否则如本文中使用的,“包括”允许另外的元件(即,包括(includes)表示包括(comprises))。“由......组成”表示实质上由或完全由......组成。当X的非Y部分(如果有的话)可以自由地改变、移除和/或添加而不改变所要求保护的实施例的功能(只要涉及所讨论的权利要求)时,X实质上由Y组成。
例如,“过程”在本文中有时用作计算科学领域的术语,并且在该技术意义上包括资源用户、即协同例程、线程、任务、中断处理程序、应用进程、内核进程、过程和对象方法。“过程”在本文中也用作专利法术语,例如,在描述过程权利要求而不是系统权利要求或制品(配置的存储介质)权利要求时。类似地,“方法”在本文中有时用作计算科学领域的技术术语(一种“例程”)并且也用作专利法术语(“过程”)。本领域技术人员将理解在特定实例中的意图是什么意思,并且还将理解给定的要求保护的过程或方法(在专利法意义上)有时可以使用一个或多个过程或方法(在计算科学意义上)来实现。
“自动地”表示使用自动化(例如,由软件针对本文中讨论的特定操作和技术效果而配置的通用计算硬件),而不是没有自动化。特别地,“自动地”执行的步骤不是手工在纸上或在人的头脑中执行的,尽管它们可以由人发起或由人交互地引导。自动步骤利用机器来执行,以便获取在没有如此提供的技术交互的情况下将无法实现的一个或多个技术效果。
技术人员理解,技术效果是技术实施例的推定目的。例如,实施例中涉及计算并且某些计算也可以在没有技术组件的情况下执行(例如,通过纸和笔,或者甚至作为心智步骤)的这一事实不会消除技术效果的存在或改变该实施例的具体和技术性质。诸如传输更新请求、标识更新冲突以及批准和执行更新等操作在本文中被理解为除了其固有的数字性质之外还要求并且提供人类心智步骤无法获取的速度和准确性。这是本领域技术人员所理解的,但有时可能需要向其他人通知或提醒这一事实。
“计算地”同样表示正在使用计算设备(至少处理器加存储器),并且排除了仅通过人类思想或仅通过人类动作获取结果。例如,如本文中理解的,用纸和笔进行算术不是计算地进行算术。计算结果更快、更广泛、更深入、更准确、更一致、更全面、和/或以其他方式提供超出仅人类表现范围的技术效果。“计算步骤”是计算地执行的步骤。“自动地”和“计算地”都不一定表示“立即”。“计算地”和“自动地”在本文中可互换地使用。
“主动地”表示没有来自用户的直接请求。实际上,用户可能甚至没有意识到实施例的主动步骤是可能的,直到步骤的结果已经呈现给用户。除非另有说明,否则本文中描述的任何计算和/或自动步骤也可以主动完成。
“语言学上”表示使用自然语言或通常在面对面的人与人通信中使用的另一形式的通信。语言学上通信包括例如用一个人的手指、手、脸和/或身体说话、打字或打手势。
在整个本文档中,可选的复数“(多个)(s)”、“(多个)(es)”或“(多个)(ies)”的使用表示存在一个或多个所指示的特征。例如,“(多个)处理器”表示“一个或多个处理器”或等效地“至少一个处理器”。
出于美国法律和实践的目的,在本文中、在权利要求书或其他地方使用词语“步骤”并非旨在引用装置加功能、步骤加功能或35美国联邦法典第112节第6段/第112(f)部分的权利要求解释。由此明确驳回任何此类推定。
出于美国法律和实践的目的,权利要求不旨在引用装置加功能解释,除非它们使用短语“用于......的装置”。旨在被解释为装置加功能语言的权利要求语言(如果有的话)将通过使用短语“用于......的装置”来明确地记载该意图。当装置加功能解释适用时,无论是通过使用“用于......的装置”和/或通过法院的权利要求语言的法律结构,针对给定名词或给定动词的说明书中记载的装置应当被理解为通过以下任何一种方式链接到权利要求语言并且在本文中链接在一起:在附图的框图中出现在同一块内,用相同或相似的名称表示,用相同的附图标记表示。例如,如果权利要求限制记载了“zac小部件”并且该权利要求限制变得受装置加功能解释的约束,则至少在说明书中在任何图块、段落或示例中在任何地方标识的提到“zac小部件”或者通过分配给zac小部件的任何附图标记绑定在一起的所有结构将被视为在zac小部件应用中标识的结构的一部分,并且将帮助定义zac小部件结构的等效物的集合。
在整个本文档中,除非另有明确说明,否则对过程中的步骤的任何提及都假定该步骤可以由感兴趣一方直接执行和/或由该方通过中间机制和/或中间实体间接地执行,并且仍然在该步骤的范围内。也就是说,除非直接执行是明确说明的要求,否则不需要由感兴趣一方直接执行步骤。例如,涉及感兴趣一方关于目的地或其他主题的动作的步骤(诸如访问、允许、批准、控制、协调、检测、确定、不批准、给予、标识、增加、合并、通知、执行、推迟、抢占、呈现、优先排序、接收、解决、跨越、指定、更新(和访问、被访问、允许、被允许等))可以涉及某个其他方的中间动作,诸如转发、复制、上载、下载、编码、解码、压缩、解压缩、加密、解密、验证、调用等,但是仍然被理解为由感兴趣一方直接执行。
例如,无论何时提及数据或指令,应当理解这些项目配置计算机可读存储器和/或计算机可读存储介质,从而将其转换为特定物品,而不是简单地存在于纸上,在一个人的思想中,或者仅仅是在电线上传播的信号。出于美国专利保护的目的,存储器或其他计算机可读存储介质不是在美国专利商标局(USPTO)对In re Nuijten案件的解释下的可专利主题的范围之外的传播信号或载波。在美国,任何权利要求都不覆盖信号本身,并且以其他方式主张的任何权利要求解释在其表面上都是不合理的。除非在美国之外授权的权利要求中另有明确规定,否则权利要求不覆盖信号本身。
此外,尽管本文中其他地方有任何明显相反的情况,但应当理解在一方面上(a)计算机可读存储介质和计算机可读存储器与在另一方面上(b)传输介质(也称为信号介质)之间的明确区分。传输介质是传播信号或载波计算机可读介质。相反,计算机可读存储介质和计算机可读存储器不是传播信号或载波计算机可读介质。除非在权利要求中另有明确说明,否则“计算机可读介质”表示计算机可读存储介质,而不是传播信号本身。
本文中的“实施例”是示例。术语“实施例”不能与“本发明”互换。实施例可以自由地共享或借用各方面以创建其他实施例(假定结果是可操作的),即使本文中未明确描述所得到的方面组合。要求明确描述每个允许的组合对于本领域技术人员来说是不必要的,并且将违背认识到专利说明书是为作为本领域技术人员的读者而编写的策略。关于由甚至少量可组合特征引起的可能组合的数目的正式组合计算和非正式的共同直觉也将指示本文中描述的各方面存在大量的方面组合。因此,要求对每种组合进行明确的记载将违背要求专利说明书简洁并且使读者了解相关技术领域的策略。
附图标记列表
提供以下列表是为了方便和支持附图并且作为说明书文本的一部分,其通过参考多个项目来描述创新。此处未列出的项目可能仍然是给定实施例的一部分。为了文本的更好的易读性,在文本中引用的项目的一些但不是全部的记载附近记载给定的附图标记。可以参考给定项目的不同示例或不同实例来使用相同的附图标记。因此,例如,讨论了各种更新冲突解决方案812,但是它们都被附图标记812引用和包含。附图标记列表是:
100 云计算操作环境,也称为云或操作环境
102 计算机系统
104 用户
106 外围设备
108 网络
110 处理器
112 计算机可读存储介质,例如RAM、硬盘
114 可移除的配置的计算机可读存储介质
116 处理器可执行的指令
118 数据
120 租户,例如客人
122 主要由租户控制和/或提供的软件
124 基础设施提供者,例如,云基础设施服务提供者
126 主要由基础设施提供者控制和/或提供的软件
128 除了处理器和存储器之外的系统硬件
200 云计算环境架构的说明性部分A
202 租户应用
204 软件库
206 软件开发工具,例如编译器、调试器、分析器等
208 接口,例如管理控制台、命令行接口
210 软件开发套件
212 增值服务
214 认证和/或授权服务
216 监测和/或警报服务
218 部署引擎和/或部署服务
220 能力提供服务,例如分片分配、VM扩展
222 负载平衡服务
224 平台块,其支持一个或多个应用
226 并行处理块
228 支付处理块
230 内容传递块
232 劳动力块
234 电子邮件块
236 消息传递块
238 基础设施块(基础设施件的一些示例)
240 计算块
242 存储块
244 网络块
246 数据库块
248 云计算环境的物理基础设施及其分组
250 地理区域
252 可用性区
254 云边缘位置
256 数据中心
300 云计算环境架构的说明性部分B.
302 操作系统
304 存储blob(二进制大对象)
306 虚拟机
308 资源管理器
310 平台
312 结构
314 用于管理物理基础设施的管理软件和数据
316 防病毒软件
400 云计算环境架构的说明性部分C
402 商业应用程序
404 web服务
406 多媒体应用或服务
408 软件即服务(SaaS)
410 软件框架
412 平台即服务(PaaS)
414 网络带宽
416 基础设施即服务(IaaS)
502 更新协调器系统(包括配置有专用软件508和/或专用更新冲突解决电路的计算硬件)
504 用于解决更新冲突的规范
506 分配给特定种类的更新的优先级
508 更新协调器软件
510 更新请求者和对应的软件
512 更新请求
514 对更新请求的响应
800 示出一些方法的各方面的流程图
802 接收更新请求
804 指定请求中的更新
806 协调更新请求
808 执行更新
810 更新
812 解决涉及更新的冲突
814 解决涉及两个租户的更新冲突(这是812解决方案的特例)
816 涉及两个租户的更新冲突
818 解决涉及租户和基础设施提供者的更新冲突(这是812解决方案的另一特例)
820 涉及租户和基础设施提供者的更新冲突
822 解决涉及将安全性作为优先级和某个其他优先级(例如,SLA的可用性或遵从性)的更新冲突(这是812解决方案的另一特例)
824 涉及将安全性作为优先级和某个其他优先级的更新冲突
826 访问规范,例如更新优先级规范或可用性规范
828 可用性规范
830 将更新请求呈现给租户以供批准/不批准
832 获取更新请求的租户批准/不批准
834 更新请求的不批准(由任何实体)
836 更新请求的批准(由任何实体)
838 向租户通知即将进行的更新
840 使用更新优先级规范来解决更新冲突
842 增加更新的优先级
844 推迟更新
846 检测更新协调器的恶意行为
848 恶意行为
850 给予更新部署的批准/不批准
852 更新部署的不批准
854 更新部署的批准
856 将两个或更多个更新合并为单个联合更新
858 联合更新(更新的特例)
860 允许更新执行的完成
862 抢占(例如,中断)更新执行的完成
864 确定更新将导致的可能的停机时间(即,不可用性)
866 通过允许或执行更新来导致停机时间或其他故障
868 停机时间(即,可用性中断)
870 使一个更新请求的优先级高于另一更新请求
872 对更新请求的响应,例如,使用批准/不批准
902 区域更新管理器(本地更新协调器)
904 基础设施更新部署引擎(部署引擎的示例)
906 客户更新部署引擎(部署引擎的另一示例)
1002 服务器(计算机系统的示例)
1004 服务器机架(系统硬件的示例)
1006 更新域
1008 故障域
1102 标识涉及至少一个更新的冲突
1104 通常的冲突
1202 满足目标,例如用于可用性或安全性
1204 计算资源可用性目标
1206 云环境安全性目标
1302 故障域的最小允许数目
1304 最小允许能力,例如最小计算能力
1306 用于执行更新的优选/指定时段
1308 服务级别协议标识符
操作环境
参考图1,用于实施例的操作环境100(也称为云100)包括至少一个计算机系统102。计算机系统102可以是或不是多处理器计算机系统。操作环境可以包括给定计算机系统中的一个或多个机器,这些机器可以在云100内是集群的、客户端服务器联网的和/或对等联网的。个体机器是计算机系统,并且协作机器的组也是计算机系统。给定计算机系统102可以被配置用于终端用户,例如,使用应用,用于管理员,作为服务器,作为分布式处理节点,和/或以其他方式。
人类用户104可以通过使用显示器、键盘和其他外围设备106,经由键入的文本、触摸、语音、移动、计算机视觉、手势和/或其他形式的I/O来与计算机系统102交互。用户界面可以支持实施例与一个或多个人类用户之间的交互。用户界面可以包括命令行界面、图形用户界面(GUI)、自然用户界面(NUI)、语音命令界面和/或其他用户界面(UI)呈现。例如,用户界面122可以在本地台式计算机上或在智能电话上生成,或者可以从web服务器生成并且发送到客户端。用户界面可以作为服务的一部分而生成,并且可以与诸如社交网络服务等其他服务集成。给定的操作环境包括支持这些不同的用户界面生成选项和用途的设备和基础设施。
例如,自然用户界面(NUI)操作可以使用语音识别、触摸和手写笔识别、在屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、声音和语音、视觉、触摸、手势和/或机器智能。NUI技术的一些示例包括触敏显示器、声音和语音识别、意图和目标理解、使用深度相机(诸如立体相机系统、红外相机系统、RGB相机系统及其组合)的运动手势检测、使用加速度计/陀螺仪的运动手势检测、面部识别、3D显示器、头部、眼睛和视线跟踪、沉浸式增强现实和虚拟现实系统(所有这些都提供更自然的界面)以及使用电场感测电极感测大脑活动的技术(脑电图仪和相关工具)。
系统管理员、开发人员、工程师和终端用户每个是特定类型的用户104。代表一个或多个人进行动作的自动代理、脚本、回放软件等也可以是用户104。存储设备和/或网络设备在一些实施例中可以被认为是外围设备,而在其他实施例中可以被认为是系统102的一部分。例如,图1中未示出的其他计算机系统可以以技术方式与计算机系统102交互,或者使用经由网络接口设备到网络108的一个或多个连接与另一系统实施例交互。
每个计算机系统102包括至少一个逻辑处理器110。与其他合适的系统一样,计算机系统102还包括一个或多个计算机可读存储介质112。介质112可以是不同的物理类型。介质112可以是易失性存储器、非易失性存储器、原地固定的介质、可移除介质、磁介质、光学介质、固态介质和/或其他类型的物理持久存储介质(与仅是传播信号相反)。特别地,诸如便携式(即,外部)硬盘驱动器、CD、DVD、记忆棒或其他可移除非易失性存储介质等配置的介质114在插入或以其他方式安装时可以在功能上成为计算机系统的技术部分,以使其内容可访问以与处理器110交互并且由处理器110使用。可移除的配置的介质114是计算机可读存储介质112的示例。计算机可读存储介质112的一些其他示例包括内置RAM、ROM、硬盘和用户104不容易移除的其他存储器存储设备。为了符合当前的美国专利要求,在美国待决或授权的任何权利要求下,计算机可读介质、计算机可读存储介质和计算机可读存储器都不是信号本身。
介质114配置有由处理器110可执行的二进制指令116;例如,“可执行”在本文中在广义上用于包括在虚拟机上运行的机器代码、可解释代码、字节代码和/或代码。介质114还配置有数据118,数据118通过指令116的执行来被创建、修改、引用和/或以其他方式用于技术效果。指令116和数据118配置其驻留在其中的存储器或其他存储介质114;当该存储器或其他计算机可读存储介质是给定计算机系统的功能部分时,指令116和数据118也配置该计算机系统。在一些实施例中,数据118的一部分表示现实世界项目,诸如产品特征、库存、物理测量、设置、图像、读数、目标、体积等。这样的数据也通过备份、恢复、提交、中止、重新格式化和/或其他技术操作来转换。
尽管可以将实施例描述为被实现为由计算设备(例如,通用计算机、服务器或集群)中的一个或多个处理器执行的软件指令,但是这样的描述并不表示穷尽所有可能的实施例。本领域技术人员将理解,相同或类似的功能通常也可以直接用硬件逻辑全部或部分地实现以提供相同或相似的技术效果。替代地,或除了软件实现之外,本文中描述的技术功能可以至少部分由一个或多个硬件逻辑组件来执行。例如,并且不排除其他实现,实施例可以包括硬件逻辑组件,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、应用特定的标准产品(ASSP)、片上系统组件(SOC)、复杂可编程逻辑器件(CPLD)和类似组件。例如,实施例的组件可以基于其输入、输出和/或其技术效果而被分组为交互的功能模块。
在所示出的云环境100中,租户120运行租户软件122。租户软件122通常将包括应用软件,但是还结合图2至4讨论其他示例。给定租户可以运行给定软件122的多个实例,和/或可以运行多个不同的软件程序122,如图所示。尽管为了清楚说明而在图1中仅示出了一个租户,但是给定的云100通常将具有多个租户120。
所示出的云环境100还具有提供基础设施软件126的至少一个基础设施提供者124。结合图2至4讨论一些示例,但是技术人员将认识到,基础设施提供者通常根据它们提供IaaS还是PaaS基础设施作为服务来分类。出于当前目的,在虚拟机306与操作系统302之间画出一条线:IaaS提供者是提供虚拟机和/或提供软件和/或硬件底层虚拟机的那些提供者,而PaaS提供者是提供操作系统和/或提供在操作系统之上运行(在由IaaS提供者提供的虚拟机上依次运行)的软件的那些提供者。
例如,除了处理器110(CPU、ALU、FPU和/或GPU)、存储器/存储介质112之外,操作环境还可以包括其他硬件128,诸如显示器、电池、总线、电源、有线和无线网络接口卡、加速器、机架和网络电缆。显示器可以包括一个或多个触摸屏、响应于来自笔或平板计算机的输入的屏幕、或者仅用于输出的屏幕。诸如处理器、存储器和网络硬件等云硬件至少部分由IaaS提供者提供。
在一些实施例中,诸如人类用户I/O设备(屏幕、键盘、鼠标、平板计算机、麦克风、扬声器、运动传感器等)等外围设备106将与一个或多个处理器110和存储器可操作地通信。然而,实施例也可以深深地嵌入技术系统中,诸如物联网的一部分,使得人类用户104不直接与该实施例交互。软件过程可以是用户104。
在一些实施例中,该系统包括通过网络108连接的多个计算机。例如,网络接口设备可以使用诸如分组交换网络接口卡、无线收发器或电话网络接口等可以存在于给定计算机系统中的组件来提供对网络108的访问。然而,实施例还可以通过直接存储器访问、可移除非易失性介质或其他信息存储检索和/或传输方法来传送技术数据和/或技术指令。
租户代码122、基础设施代码126以及附图中示出和/或在文本中讨论的其他项目可以每个部分地或完全地驻留在一个或多个硬件介质112内,从而配置这些介质以用于超越所有硬件软件协作操作固有的“正常”(即,最小公分母)交互的技术效果。
技术人员将理解,本文中在“操作环境”下呈现的前述方面和其他方面可以形成给定实施例的一部分。该文档的标题不旨在将特征严格分类为实施例和非实施例特征集。
一个或多个项目在附图中以轮廓形式示出,或者在括号内列出,以强调它们不一定是所示操作环境或所有实施例的一部分,但是可以与本文中讨论的操作环境或一些实施例中的项目互操作。并不表示在任何图或任何实施例中都一定需要不是轮廓或括号形式的项目。特别是,为方便起见,提供了图1;包含图1中的项目并不表示在当前创新之前已知该项目或该项目的所述用途。
云架构示例
虽然本文中描述的更新协调器和其他创新被认为是新的,但是它们可以修改并且在其中使用的架构上下文具有本领域技术人员熟悉的方面。为了帮助说明本文中呈现的创新的各方面,图2至4呈现了不同云架构的示例。这些架构的变化有助于说明可以使用更新协调创新的各种云操作环境,并且这些架构图提供了云租户、PaaS基础设施和IaaS基础设施的具体示例,其现在可以由技术人员重新考虑并且根据本文中的创新教导进行改进。
图2示出了适合于与一些实施例一起使用的架构的各方面。该架构部分200通常与描绘Amazon Web ServicesTM云100(Amazon Technologies公司的商标)的一些实现中的架构的公共文档相一致,但是也可以与该技术的给定实现不同。
在该架构示例A中,从IaaS租户的角度来看,IaaS基础设施包括物理基础设施248和基础设施块238。从IaaS 416提供者的角度来看,租户软件122包括平台块224、增值服务212、库204、工具206、接口208、软件开发套件210和应用202。PaaS 412提供者可以在租户软件与基础设施之间绘制不同的线,例如,通过将租户应用202下面的所有内容视为由PaaS提供者提供以供租户使用的基础设施的一部分。实体之间的其他项目划分也是可能的。在给定情况下哪种观点适用于租户取决于租户所从事的服务。例如,该云架构200的一个租户可以仅参与物理基础设施248和基础设施块238,而另一租户参与物理基础设施248、基础设施块238和平台块224,但是不使用增值服务212。
在诸如示例A中的架构等架构中以及在一些其他架构中,库204和SDK 210可以包括例如Microsoft.NETTM库和SDK(Microsoft Corporation的商标)以及
Figure BDA0001906641770000261
库和SDK(Oracle America公司的商标)。工具206可以包括云资源管理工具、软件开发工具(诸如编译器、分析器和调试器)、部署工具、示例代码和其他项目。例如,接口208可以包括web接口(例如,REST API)和/或命令行接口。
在所示的架构中,增值服务212包括以下中的一个或多个:用于身份验证和访问管理的认证和/或授权服务214;用于收集和跟踪计算资源使用度量、错误率、事务量和其他执行统计的监测服务216;用于在多个虚拟机中部署软件实例的部署引擎218;用于根据需要按比例扩展或收缩由租户软件使用的计算、存储和/或其他资源的能力提供服务220;以及用于跨多个服务器或其他物理资源来平衡计算工作负载(有时间接地经由跨虚拟机、虚拟盘或其他虚拟化资源的平衡)的负载平衡服务222。
在所示的架构中,平台块224包括以下中的一个或多个:映射减少和/或其他并行处理块226;支付处理块228;内容传递块230;用于获取指令和任务的按需劳动力中的人类用户的劳动力块232;电子邮件块234;以及消息传递块236。
在所示的架构中,基础设施块238包括以下中的一个或多个:提供计算能力的计算块240;提供存储能力的存储块242;提供网络能力的网络块244;以及提供数据库计算和/或存储能力的数据库块246。
在所示的架构中,物理基础设施248包括以下中的一个或多个:地理区域250;可用性区252;位于云的边缘作为接入点、门户或接口的边缘位置254;以及容纳服务器以及包含要由云架构的其余部分使用的处理器110和存储器112的其他设备的数据中心256。
图3示出了适合于与一些实施例一起使用的架构的各方面。该架构部分300通常与描绘Microsoft
Figure BDA0001906641770000271
堆栈云环境100(Microsoft Corporation的商标)的一些实现中的架构的公共文档相一致,但是也可以与该技术的给定实现不同。
在所示的架构中,操作系统302包括执行诸如识别来自网络连接或外围设备的输入,将输出发送到网络连接或外围设备,跟踪非易失性存储装置中的文件和目录,以及向应用分配处理器和存储器资源等操作的软件。操作系统的熟悉示例包括以诸如Apple OS X、Microsoft Windows、Linux、VMS和IBM OS/400(其相应所有者的商标)等名称可用的软件,但是操作系统开发是持续活动,并且操作系统302不限于这些特定示例或其变体。存在数十个(如果不是数百个)不同的操作系统302。
在所示的架构中,存储blob 304包括存储为单个项目的二进制数据;“blob”代表二进制大对象。给定blob中的数据可以表示任何内容:视频、音频和可执行代码是blob内容的熟悉示例,但是其他内容也可以存储在blob 304中。
在所示的架构中,虚拟机306是真实或假定的物理计算机系统的仿真。每个虚拟机由实际物理计算硬件(例如,处理器110、存储器112)支持,并且可以支持至少一个操作系统的执行。
在所示的架构中,资源管理器308控制计算资源,诸如虚拟机306、网络108及其组成部分。例如,可以通过访问限制、提供、部署和监测操作来实现资源控制。
在所示的架构中,平台310是软件开发平台,诸如操作系统302和SDK。平台310在一些环境中作为来自PaaS 412提供者的服务来提供。
在所示的架构中,结构312提供用于构建分布式可扩展无状态和有状态微服务的运行时。一些结构312还提供应用管理功能,用于提供、部署、监测、升级/修补和删除所部署的微服务和/或使用微服务的应用。微服务的一些示例包括协议网关、用户简档、购物车、库存处理、队列和高速缓存。在某些环境中,结构和微服务可以是由PaaS提供者提供的基础设施软件的一部分。
在所示的架构中,物理基础设施管理软件314包括区域配对规范和协议实现代码、跨数据中心内的故障域和/或跨可用性区来平衡或以其他方式分配虚拟机的代码、同步和异步复制代码、硬件故障检测代码、透明虚拟机迁移代码和其他管理代码。
图4示出了适合于与一些实施例一起使用的架构的各方面。该架构部分400通常与描绘通用云架构的公共文档相一致,但是可以与云计算环境100的给定实现不同。技术人员还将认识到,来自这些示例200、300、400中的任何一个示例的架构件可以以这里未示出的方式混合和组合,例如,架构200通常将包括操作系统302和带宽414。
在所示的架构400中,例如,商业应用402可以包括在线交易处理应用、电子商务应用、客户关系管理软件和其他企业软件。在一些实施例中,商业应用402包括软件即服务(SaaS)408产品。SaaS产品(有时称为“按需软件”)在订阅的基础上通过网络提供从一个或多个托管位置对软件的访问。
在所示的架构中,例如,web服务404可以包括社交网络和其他面向人类用户的基于web的应用及其底层API。
在所示的架构中,多媒体406可以包括用户提供的内容视频网站,例如
Figure BDA0001906641770000281
网站(Google公司的商标)和类似网站。例如,多媒体406还可以包括媒体企业视频租赁、流媒体和/或订阅网站,诸如
Figure BDA0001906641770000291
网站(Netflix公司的商标)或
Figure BDA0001906641770000292
网站(Hulu有限责任公司的商标)。
在所示的架构中,软件框架410可以包括可以通过添加用户编写的应用代码来为特定用途进行定制的通用运行时环境。用户可以扩展框架但通常无法修改它。一些熟悉的示例包括
Figure BDA0001906641770000293
web应用框架(Oracle America公司的商标)和Microsoft.NETTM框架。
在所示的架构中,带宽414指的是提供网络传输能力的硬件。带宽通常指的是电子系统发送和/或接收数据的能力。与处理器110、存储器112和类似项目类似,带宽414将存在于给定云100中,而不管该云是否精确地匹配本文中描绘或讨论的特定示例。
关于IaaS 416,技术人员将认识到,不同的产品可以包含不同的成分。出于当前目的,IaaS至少包括虚拟机306及其支持的物理系统102。可用IaaS产品的一些示例可以包括Amazon Web Services(AWS)、Microsoft Windows Azure、Google Compute Engine、CenturyLink Cloud、VMWare vCloud Air、Rackspace和IBM SoftLayer(其相应所有者的商标)。
数据流
图5、6和7示出了一些实施例中的数据流。如上所述,传统上给定云的独立受控租户没有关于其相应的软件项目122的更新彼此通信,至少不是基于它们在相同云100中的相互存在或者关于它们的更新可能会竞争相同的计算资源或者在它们共享的云内在计算资源级别以其他方式发生冲突的可能性。但是,如图5所示,在使用本文中的教导的创新的一些示例中,不同的租户120通过共享更新协调器系统502自动协调其与更新相关的计划和活动。协调可以使用一个或多个规范504,这些规范504也可以被称为策略,包含用于不同种类的更新活动和/或不同实体的相对优先级506。
在一些实现中,一个或多个可用性规范828也可以由更新协调器系统502使用840以解决冲突1104。如图13所示,例如,一个软件的可用性规范828可以包括诸如软件应当在其上运行的故障域的最小允许数目1302、软件应当被提供的最小能力1304(能力可以是虚拟机计数、每秒处理器周期、存储装置的千兆字节、网络带宽和/或其他适当的度量)以及软件可以离线的最大允许更新时段1306等数据。SLA标识符1308也可以是可用性规范的一部分。为了帮助确保最大化可用性而不管应用更新或基础设施停机时间,可用性规范828可以指定应当分配租户数据的分片使得将单个更新域或故障域关闭将仅影响租户数据的最多一个副本。还可以指定其他可用性目标。
返回参考图5,在所示的示例中,更新协调器软件508以其作为更新协调请求者510的角色与两个租户通信。每个请求者510向更新协调器508发送一个或多个更新请求512并且从更新协调器508接收回一个或多个更新请求响应514。请求512和响应514可以通过任何合适的电子通信机制、格式和协议来传送,包括例如web API、XML结构、二进制数据交换和/或MPI代码,仅举几例。
在请求512和响应514的特定实现中使用的内容可以变化,并且可以包括在本文中的示例中使用的数据。例如,请求512可以包括请求标识、请求者标识和对应的认证、总体上的所请求的更新的建议的开始时间和预期持续时间、更新可能导致的建议的开始时间和停机时间的预期持续时间、以及将受更新影响的虚拟机和/或其他软件的列表或其他描述。响应514可以包括响应响应于的请求512的标识或副本、以及该请求的批准或不批准。如果所讨论的请求未被完全批准,则一些响应514可以包括针对不同时间和/或不同软件的反建议。
如图6所示,在使用本文中教导的创新的一些示例中,租户120和基础设施提供者124通过共享的更新协调器系统502自动协调其与更新相关的计划和活动。与传统方法具体相比,该更新协调可以包括向租户自动呈现建议的基础设施更新以供批准或不批准。
如图7所示,呈现给协调器508以检查冲突的请求不一定仅一次来自两个请求者510。也就是说,例如,这里教导的创新可以应用于标识1102并且解决涉及三个或更多个租户、涉及基础设施提供者(IaaS或PaaS)和两个或更多个租户、涉及三个或更多个基础设施提供者(例如,一个IaaS提供者和两个PaaS提供者)或者涉及两个或更多个基础设施提供者和一个或多个租户的更新相关冲突1104。
过程
图8示出了流程图800中的一些过程实施例。除非另外指出,否则附图中所示或以其他方式公开的技术过程将由例如请求者510代码和更新协调器508代码自动执行。过程还可以部分地自动地并且部分地手动地执行,以使得能够涉及人类管理员或其他人的动作。本文中被考虑为创新的过程没有一个是完全手动的。在给定实施例中,可以重复过程的零个或多个示出的步骤,可能以不同的参数或数据进行操作。实施例中的步骤也可以以与图8中布置的从上到下顺序不同的顺序来完成。步骤可以以部分重叠的方式串行地执行,或者完全并行地执行。遍历流程图800以指示在过程期间执行的步骤的顺序可以从过程的一个执行到过程的另一执行而变化。流程图遍历顺序也可以从一个过程实施例到另一过程实施例而变化。如果所执行的过程是可操作的并且符合至少一个权利要求,则步骤也可以被省略、组合、重命名、重新分组或以其他方式脱离所示的流程。
图11和12还示出了在一些实施例中提供或使用的过程。与图8一样,本领域技术人员将理解,在所示过程的不同执行期间,可以以各种方式遍历所示的流程图。例如,一个过程实例可以包括解决814租户-租户冲突,而另一过程实例包括解决818租户-提供者冲突。
更一般地,本文中提供了示例以帮助说明本技术的各方面,但是本文档中给出的示例未描述所有可能的实施例。实施例不限于本文中提供的特定实现、布置、显示、特征、方法或场景。给定实施例可以包括例如附加或不同的技术特征、机制和/或数据结构,并且可以以其他方式脱离本文中提供的示例。
在请求接收步骤802期间,更新协调器系统502接收涉及更新的请求512。请求内容和用于传输请求的通信机制包括例如在本文中的其他图的讨论中提到的那些。
在更新指定步骤804期间,请求者通过将更新的细节放置在请求512中来指定更新的细节。合适的细节和请求格式包括例如在本文中的其他图的讨论中提到的那些。
在请求协调步骤806期间,更新协调器系统502协调涉及至少一个更新的两个或更多个请求512。例如,协调806可以包括从一个或多个请求中标识1102涉及(多个)更新的冲突(实际或潜在的),和/或解决812这样的冲突,如本文中其他地方所讨论的。
在更新执行步骤808期间,云100对在请求512中标识的软件执行更新810。在很多(如果不是全部)实现中,更新将不由更新协调器系统502执行,而是由更新请求者直接控制的软件执行。也就是说,更新协调器系统502旨在以看门角色补充熟悉的更新机制和部署引擎,而不是完全替换它们。执行808的时间、程度和其他方面至少与本文中教导的更新冲突的解决方案812相一致并且更经常地受其控制。
在冲突解决步骤812期间,更新协调器系统502解决涉及至少一个更新的冲突1104。当请求(隐含或明确地)互斥结果时,发生冲突1104。例如,在上面的示例1中,从不将数据库应用一次关闭超过5秒与将使数据库应用在至少9秒内不可用的执行设备驱动程序更新是互斥的。在上面的示例2中,在均匀地分布在两个可用性区之间的至少20个虚拟机上连续运行租户软件与在少于20个虚拟机上运行相同的软件和/或仅在单个可用性区内运行该软件以便更快地安装安全补丁是互斥的。在上面的示例3中,在广播期间向租户X提供足够的带宽与在与广播相同的时间段期间向租户Y提供期望带宽是互斥的。技术人员将认识到来自本文中的其他示例和来自云100操作的经验的其他冲突1104。
更新协调器系统502可以以各种方式表征冲突解决方案。一种方法基于所涉及的请求者510的种类来对解决方案进行分类。
在一些实现中,可以使用在可以是租户可访问或不可访问(取决于实现)但是更新协调器可访问的文档中指定的优先级506来解决814租户-租户冲突816(一般的冲突1104的示例)。例如,操作系统安全性更新的优先级可以高于防病毒程序签名数据库316更新,而防病毒程序签名数据库316更新的优先级高于对在线商店分析软件的更新。在解决814期间的通信512、514对于租户软件管理员不一定是可见的。然而,在租户与底层提供者124之间的SLA中可以注意到这种通信的使用。
在一些实现中,还可以使用优先级506规范504来解决818租户-提供者冲突820。此外,可以将所建议的基础设施更新呈现给租户以获取832批准或不批准。例如,IaaS提供者可以向租户通知830可以通过利用安装在数据中心中的新硬件来更新虚拟机以提高其速度,并且向租户通知830将在该数据中心中运行的所有虚拟机都将在24小时内开始的滚动基础上升级,其中每个虚拟机的对应的平均停机时间为3分钟,除非租户在指定时间的2小时内反对。替代地,提供者可以简单地向租户通知838将发生更新,而不是向租户给予批准836或不批准834所建议的基础设施更新的权限。没有批准/不批准权限的更新通知是一些传统云的熟悉部分,但是路由通知内容通过更新协调器508被认为是新的。
另一种方法基于所涉及的更新810的种类来分类更新冲突解决方案。例如,在一些实现中,解决822安全性更新与其他更新之间的冲突824可以是更高优先级。“安全性更新”是一种更新,该更新改变关于以下中的至少一项的软件功能:加密、个人标识信息的保护、财务信息的保护、认证要求和/或机制、授权要求和/或机制、军事信息、医疗信息或对商业秘密的访问的控制。
在优先级规范访问步骤826期间,更新协调器系统502访问(通常通过读取)优先级规范504,优先级规范504将优先级506与给定种类的更新相关联。例如,优先级规范504可以实现为配置文本文件、XML构造、名称值对或二进制文档。作为简单的示例,优先级规范504可以包括以下信息:
Figure BDA0001906641770000331
Figure BDA0001906641770000341
通过使用840指定的优先级可以解决812冲突。例如,根据该特定优先级规范,由PaaS提供者(其从IaaS提供者的角度来看是特殊租户)请求的所有更新的优先级870将高于更新其操作系统的租户请求,该租户请求的优先级870又高于来自租户(铂金或黄金级别)的更新它们的应用的请求。当然,也可以使用840与本文中的教导相一致的很多其他优先级规范。
在一些实现中,优先级与特定更新相关联,而不是(或除此之外)与上述简单优先级规范示例中的相应的更新组或类别相关联。在这些实现中的一些中,优先级不是静态的。例如,在一些实现中,特定操作系统更新可以在该更新被更新协调器系统502推迟844指定次数和/或指定时间段之后和/或在该更新被合并856成另一更新时接收优先级506的增加842。
利用本文中的教导,技术人员可以认识到,将更新协调器系统502引入云100还会引入更新协调器系统502可能被滥用的风险。更新协调器系统502和/或更新请求者软件510或相关的恶意活动的滥用在本文中通常表示为恶意行为848。恶意行为848的一个示例是不应当被批准的更新请求的传输,另一示例是不应当被批准的请求512的批准,例如,因为它们涉及请求者510的伪造的标识或者它们请求虚假或恶意的更新。恶意行为848的另一示例是应当已经批准的请求512的不批准,例如,以隐藏的方式篡改以相对于其他租户支持一个租户,这与名义上控制冲突解决方案的优先级规范504相矛盾。例如,通过查找频率峰值或与请求者510和/或更新协调器508的过去行为的其他统计上显著偏离,或者通过评估请求(批准/不批准之前和/或之后)对云安全性和/或资源可用性的影响,可以自动检测846恶意行为。在调查可用性故障或安全性失误的原因的过程中,管理员104也可以手动检测某种恶意行为。可以通过以下方式来减少或避免恶意行为:彼此认证请求者软件510和更新协调器508,安全地限制对(多个)优先级规范504和可用性规范828的访问,并且采用相同种类的强控制来控制对传统上用于控制对管理程序和其他IaaS基础设施代码的更新的更新协调器508的更新。
在图8中,对以下两者进行区分:使用请求512的批准836或不批准834对更新请求的响应872、以及给予850后续部署的批准854或不批准852。在很多实现中,更新请求与更新部署之间的这种区分将是适当的,因为至少就租户更新的部署而言,请求批准836或不批准834将由更新协调器508给出872,而部署批准854或不批准852将由请求者510或其他租户代码给出850。当请求寻求在请求被批准之后不会尽快发生而是将在稍后的某个指定时间发生的部署的许可时,请求与部署之间的区分也是适当的。
在一些实现中,两个或更多个更新810可以由更新协调器508合并856成单个联合更新858(这通常是更新的示例,并且因此也在810处指定)。例如,可以同时执行每个单独导致停机时间的两个更新,以便停机时间重叠。可以预期租户已经在内部对仅影响该租户的软件的更新进行了这样的优化,但是在本文中教导的创新之前,对由租户120控制的租户软件122的更新与对由基础设施提供者124控制的基础设施软件126的更新的自动协调是未知的。例如,在更新协调器508的指导下,基础设施提供者124和租户120可以同时执行808虚拟机更新和租户应用更新作为联合更新858。
在一些实现中,更新请求不一定仅涉及未来的更新;目前正在进行的更新也可以进行协调。例如,基于正在进行的更新已经开始,更新协调器508可以允许860一个更新完成,即使已经请求了更高优先级的更新。另一方面,更新协调器508可以经由对请求者510和/或部署引擎的指令有效地抢占862正在进行的更新,以便允许执行更高优先级的更新。
在一些实现中,更新协调器508可以确定864执行更新的预期停机时间868可能会发生。该确定864可以基于更新请求中的估计和/或由或代表更新协调器508而保持的历史度量。实际上,在更新请求中重复呈现不切实际的停机时间估计可以被认为是一种形式的恶意行为,更新协调器508通过将估计与历史度量进行比较来对其进行检测846。在联合更新的情况下,可以类似地确定每个组成更新对停机时间的单独贡献866。
一些示例提供或利用如下方法:其中更新协调器接收请求并且通过解决冲突(诸如租户与租户冲突、租户与基础设施提供者冲突、或以安全性作为最高优先级和以其他内容作为最高优先级之间的冲突)来协调更新。协调多租户云计算环境100中的更新的一种方法包括:(a)更新协调器508从第一更新请求者510接收802指定804对云计算环境的至少一部分的第一更新810的第一更新请求512,(b)更新协调器从第二更新请求者接收指定对云计算环境的至少一部分的第二更新的第二更新请求,更新请求者510是不同的实体,因为它们分别由各方(租户120和/或提供者124)控制,这些各方自己彼此独立地被控制,以及(c)协调806更新请求以控制至少一个更新的执行808,包括以下动作中的至少一项:(i)解决814来自云计算环境的独立受控租户的更新请求之间的冲突816,(ii)解决818当一个更新请求者是云计算环境的租户而另一更新请求者是向多个独立受控租户提供基础设施服务的云计算基础设施服务提供者时的冲突820,或者(iii)解决822当一个更新请求以安全性作为最高优先级而另一更新请求不以安全性作为最高优先级时的冲突824。
有时,更新协调器508允许租户批准(或不批准)一个或多个基础设施更新。在至少一种方法中,更新请求512之一包括来自基础设施服务提供者124的基础设施更新请求,并且解决冲突包括将基础设施更新请求呈现830给租户以供批准或不批准。
有时,更新协调器508提前向租户通知一个或多个基础设施更新。至少一种方法包括向租户通知838基础设施更新的即将进行的执行。通知838可以是通过电子邮件、记录的语音消息、文本或SMS消息、或任何其他合适的电子通信机制。
在一些示例中,作为所建立的实践,修复一个或多个多区域基础设施服务的优先级可以高于其他更新。在至少一种方法中,在第一更新请求512指定对跨越云计算环境100的至少两个区域250的基础设施组件126的更新并且每个区域包含至少一个数据中心256的情况下,协调806更新请求包括基于预定的优先级规范504使第一更新的优先级870高于第二更新。在给定的云100中,这样的区域跨越组件可以例如提供跨区域复制服务、时间同步服务、或甚至更新冲突解决方案服务。
在一些示例中,基础设施更新在被推迟之后可以变得更高优先级。至少一种方法包括响应于推迟844基础设施更新的执行超出指定阈值,增加842基础设施更新810的优先级506(其可以在这种情况下通过增加对应更新请求的优先级来完成)。然后,协调806更新请求包括使推迟的基础设施更新810的优先级870高于先前具有比基础设施更新更高的优先级的更新请求512。也就是说,增加的优先级将推迟的更新不按顺序移动到前面。
在一些示例中,可以通过其不良行为来检测恶意更新协调器508和/或恶意更新请求者510。至少一种方法包括通过检测846以下中的至少一项来检测846恶意行为848:(i)大量更新请求512的一个或多个批准,一个或多个批准836导致租户资源的退化,使得该资源的可用性的度量无法满足1202预定可用性目标1204,或者(ii)更新请求512的一个或多个不批准834,该不批准导致云基础设施组件126的退化,使得与该组件相关的安全性的度量无法满足1202预定安全性目标1206。例如,异常大量的更新请求的批准可能导致退化或中断在被指定为最小同时运行实例数目或每秒最小事务数目的可用性目标1204以下的租户应用的执行的更新。类似地,安全性更新的不批准可能导致违反被指定为安全补丁的操作系统供应商发布与在云中运行的操作系统的所有实例中的补丁的安装之间的最大允许延迟的安全性目标1206。
在一些示例中,更新可以由不同的部署引擎完成。也就是说,在上面讨论的方法的一些变体中,协调806更新请求包括向第一部署引擎218给予执行第一更新810的批准并且向不同的第二部署引擎218给予执行第二更新810的批准。具体地,即使两个实体通过相同的协调器508协调它们的更新,基础设施提供者124和租户120也可以使用不同的更新部署机制。类似地,不同的租户120可以使用它们相应的部署机制。
所配置的介质
一些实施例包括所配置的计算机可读存储介质112。介质112可以包括盘(磁、光或其他)、RAM、EEPROM或其他ROM、和/或其他可配置存储器,具体地包括计算机可读介质(与仅是传播信号相反)。所配置的存储介质具体地可以是可移除存储介质114,诸如CD、DVD或闪存。可以是可移除的或不可移除的或者可以是易失性的或非易失性的通用存储器可以被配置到使用诸如更新请求512、更新响应514、更新优先级规范504、请求者软件510和更新协调器软件508等以数据118和指令116的形式从可移除介质114和/或诸如网络连接等另一源读取的项目的实施例中以形成所配置的介质。所配置的介质112能够引起计算机系统执行用于标识1102和解决812更新冲突1104的技术处理步骤,如本文中公开的。因此,附图有助于说明所配置的存储介质实施例和过程实施例、以及系统和过程实施例。特别地,图8、图11中所示或本文中以其他方式教导的任何处理步骤可以用于帮助配置存储介质以形成所配置的介质实施例。
例如,在一些方法中(无论是视为方法本身还是视为用计算机可读存储介质实现的方法),可用性的优先级可以高于安全性。在至少一个示例中,可用性规范828指定租户软件122可以不可用(即,未有效运行)的最长时间段1306,并且协调806更新请求包括确定864执行808基础设施更新将使租户软件不可用超过指定的最长时间段。然后,该方法推迟844或不批准834基础设施更新请求,即使这样做导致866无法满足安全性目标1206。
在一些示例中,更新策略可以指定各种可用性目标。例如,协调806更新请求可以包括访问826可用性规范828,可用性规范828指定以下中的至少一项:应当执行任何更新的时间段1306、要在任何更新期间保持可用的最小故障域数目1302、要在任何更新期间保持的计算能力阈值可用性1304。
在一些示例中,修复零日漏洞的优先级高于可用性。例如,当基础设施更新请求512指定用于纠正所标识的零日漏洞的安全性更新810时,协调806更新请求可以包括使基础设施更新请求的优先级870高于租户更新请求。即使将可用性降低到目标水平以下,也可以这样做。也就是说,在某些情况下,使基础设施更新的优先级870高于租户更新请求导致866无法满足租户软件的可用性目标1204。
区域更新管理器
图9示出了包括区域更新管理器902形式的更新协调器508的云环境100。区域更新管理器902可以以如本文中讨论的更新协调器508的方式进行操作,但是本地化为专注于云环境100的一个区域250;其他区域中的更新请求将定向到位于这些其他区域中的其他区域更新管理器实例。其他区域中的一些也可能缺少任何区域更新管理器,因此这些区域中的更新以传统方式进行处理,而没有如本文中教导的更新冲突标识和解决的益处。
在图9所示的云环境100中,一个部署引擎218由基础设施提供者控制和使用并且因此在904处被指定为基础设施部署引擎,而另一部署引擎218由租户(又称为客人)控制和使用并且因此在906处指定为客人部署引擎。如本文中其他地方所述,在更新的批准与更新的部署之间进行区分。特别地,尽管区域更新管理器902负责批准基础设施更新和租户更新两者,但是一旦批准,这些更新可以由不同的引擎218部署。
在一些示例中,区域更新管理器902协调由公共云管理的基础设施更新和由租户管理的应用更新。这两种类型的更新可以由不同的部署引擎驱动。租户可以指定其应用的可用性要求(例如,跨两个区域分布20个虚拟机,并且在任何时候都不会运行少于9个虚拟机——这表示一个区域可能会发生故障并且操作可以更新该区域中的启动的一个虚拟机)。
在一些示例中,区域更新管理器902具有定义如何执行冲突的更新请求的策略504。例如,在存在零日攻击时,区域更新管理器会优先考虑870基础设施更新以获取安全补丁。区域更新管理器可以呈现允许客户端请求更新的API,这些更新根据指定的策略并且与租户的可用性规范保持一致地被批准或不被批准。
作为另一示例,假定公共云100被划分为区域250,区域250表示不同的地理位置,诸如北欧和西欧、或日本东部和日本西部。每个区域可以具有一个或多个可用性区(AZ),并且每个可用性区252将具有一个或多个数据中心(DC),与图10相一致。每个DC 256将具有部署成机架1004的服务器1002。故障的可能性从一个服务器到另一机架,从机架到DC,从DC到AZ,并且从AZ到区域降低。在公共云上运行的租户120可以使用这些构造来指定其可用性要求,例如,通过要求用于给定服务的100个虚拟机306跨区域均等地分布,并且对于每个区域跨AZ均等地分布。
在这样的配置中,一些方法包括区域更新管理器902接收802并且响应872于对基础设施更新和应用更新的请求。一些包括区域更新管理器根据其策略向租户呈现830更新请求以供批准以保持租户服务的可用性。一些包括区域更新管理器批准836安全基础设施更新请求,而不向租户通知。
在一些云100中,存在影响虚拟机的可用性的两种类型的更新810。一种类型是基础设施更新,诸如主机管理程序(有时称为“主机操作系统”)或要部署的其他云基础设施软件126的新版本。这样的示例可以包括在存在潜在安全威胁的情况下对网络堆栈的修复。这些更新在传统上由公共云提供者124控制。第二类型是客人更新,诸如对虚拟机的客人操作系统302的更新或对在虚拟机内运行的租户的应用代码122的更新。这些更新在传统上由租户控制。
这两种类型的更新可能是冲突的,并且它们的组合可能导致违反给定服务的可用性要求1204。例如,如果服务A要求其虚拟机的90%始终启动,则不能同时具有同时基础设施和客人更新,这些更新每个会影响服务A的虚拟机的不同的6%并且仍然满足90%的要求;最多88%的虚拟机将启动。
一些示例使用或包括区域更新管理器902作为区域更新协调服务,使得给定区域中的所有服务器(在该区域中的所有DC和AZ中)可以与区域更新管理器902的相同实例通信。可能存在区域更新管理器902的不同实例在每个不同区域250中运行。
图5和9示出了区域更新管理器的一种架构。在一些示例中,区域更新管理器902具有相对简单的接口:它接收由基础设施部署系统和客人部署系统提交的更新请求512。也就是说,请求者510可以被实现为对部署引擎218的创新添加,并且因此是其一部分。提供者和(多个)客人可以使用彼此相同或不同的部署系统。特别地,租户可以选择其自己的部署系统来管理客人更新。在某些情况下,区域更新管理器向租户呈现这些更新请求,租户根据其策略批准这些更新请求,以便保留其自身服务的可用性要求。在某些情况下,区域更新管理器还具有或使用可以批准基础设施更新请求的策略,而无需向租户通知,例如,在存在零日漏洞的情况下。
以下是可以由区域更新管理器902或其他更新协调器系统502使用840的相对优先级506的很多合适的示例,其中1表示最高优先级:
(a)客户交互动作,诸如更新应用:3
(b)由系统502触发的客户策略动作,诸如客户120虚拟机的自动OS升级:5
(c)由系统502触发的基础设施动作,诸如用于关键安全漏洞的主机节点的管理程序/主机OS修补:2
(d)SLA强制执行,诸如因为更高的SLA工作负载被激活而抢占较低优先级SLA客户的应用:2
(e)合规性跟踪,诸如作为防病毒更新的一部分的虚拟机的例行扫描:8
在一些示例中,如果没有正在进行的更新动作810并且没有未应答的请求,则更新协调器508没有事情要做。如果存在正在进行的更新动作并且第二更新动作的请求512到达,则协调器508可以执行以下动作中的一个或多个:
(a)在可能的情况下合并856两个动作810。例如,将主机修补和OS升级合并为一个动作。
(b)允许860优先级更高的动作在优先级较低的动作进入之前完成。例如,如果正在进行客户应用202升级,则在发起合规性扫描之前等待它完成。
(c)抢占862优先级较低的动作以允许更高优先级的动作。当可以合并动作时可以避免这种情况。但是在某些情况下可以执行抢占。例如,如果客户发起的更新正在进行并且更高的SLA客户需要能力,则可以取消对较低SLA租户的动作的操作并且可以通知客户。
在一些情况下,更新协调器508可以在结构312中实现,例如,作为结构控制器的一部分。从结构312租用的节点可以在租用的节点内的数据级别实现分配、目标状态驱动、多租户、健康监测、修复和部署。例如,租户节点可以在其内部具有其自己的控制器,该控制器具有其自己的节点健康视图和其自己的修复状态机。因此,结构控制器和租户节点自己的控制器可以竞争管理同一组节点。在这种情况下,更新协调器可以包括如本文中教导的那样操作的管理角色(MR)。特别地,更新协调器MR可以向租户自己的控制器给予结构控制器所具有的关于租户的执行的事实。取决于租户的特权级别,MR可以让租户决定响应于警报而做什么,或者可以至少给予租户执行信息以帮助租户协调租户节点内的动作。
层级中的云、区域、数据中心
图10还示出了一些实现中的区域与云之间的关系。所示出的云100包括由云IaaS提供者定义的两个区域250。区域250通常覆盖相对较大的地理区域,使得龙卷风、飓风、地震、洪水、野火或类似的自然灾害不会跨越整个区域。诸如国家或国家联盟等地理(未示出)通常包含一个或两个区域,但是这取决于IaaS提供者的能力。例如,在撰写本文时,Microsoft
Figure BDA0001906641770000431
IaaS服务在美国认可了8个区域(美国中部、美国东部、美国东部2、美国政府爱荷华州、美国政府弗吉尼亚州、美国中北部、美国中南部、美国西部)(微软公司的商标),并且Amazon
Figure BDA0001906641770000432
IaaS服务在美国认可了4个区域(美国东部1、美国西部1、美国西部2、GovCloud)(Amazon Technologies公司的商标)。
如图所示,区域可以包括一个或多个可用性区252。不同的IaaS提供者可以不同地定义可用性区,但是可用性区通常小于区域,大于个体数据中心256,并且彼此物理隔离至少10公里。在某些情况下,可用性区可以通过网络连接,该网络具有足够低的延迟以支持所有租户工作负载的同步复制。可用性区包含一个或多个数据中心256;在一些配置中,数据中心也可以直接驻留在没有中间可用区域的区域内。
数据中心256(也称为具有空白空间的“数据中心”)是容纳物理计算机(例如,服务器1002)和支持硬件(例如,机架1004、电力传输线、网络传输线等)的设施。给定数据中心中的计算机通常共享一些设施级别的基础设施,诸如冷却设备、到电力网的连接、电力备用源和/或周围围栏和其他物理安全措施。通常,数据中心中的所有计算机102由相同的IaaS提供者拥有。
更新域1006是软件部署的逻辑单元。例如,IaaS提供者可以将虚拟机分组到更新域中,并且一次部署一个这样的域的更新。部署会停止在目标升级域中运行的软件实例,升级它们,使它们重新在线,并且转到下一升级域。
故障域1008是硬件故障的逻辑单元,通常基于单个故障点。例如,当机架的电源故障将导致机架中的每个服务器关闭时,IaaS提供者可以将每个服务器机架分组到其自己的故障域中。
其他系统示例
下面提供其他细节和设计考虑因素。与本文中的其他示例一样,在给定实施例中,所描述的特征可以单独地和/或组合地使用,或者根本不使用。
一些示例使用或提供协调云计算环境100中的竞争更新的系统502。该系统包括至少一个处理器110、与处理器可操作地通信的至少一个存储器112(易失性和/或非易失性)、以及驻留在存储器中的一个或多个优先级规范504。包括指令116的更新协调器508也驻留在存储器中。更新协调器指令由处理器可执行以执行一种方法,该方法包括(a)更新协调器从第一更新请求者接收指定对云计算环境的至少一部分的第一更新的第一更新请求,(b)更新协调器从第二更新请求者接收指定对云计算环境的至少一部分的第二更新的第二更新请求,更新请求者是不同的实体,以及(c)协调更新请求以控制至少一个更新的执行。在该示例中,协调806包括以下动作中的至少一项:(i)解决812来自云计算环境的独立受控租户的更新请求之间的冲突,(ii)解决812当一个更新请求者是云计算环境的租户而另一更新请求者是向多个独立受控租户提供基础设施服务的云计算基础设施服务提供者时的冲突,(iii)解决812当一个更新请求以安全性作为最高优先级而另一更新请求不以安全性作为最高优先级时的冲突,或者(iv)解决812当一个更新请求以多个租户的安全性作为最高优先级而另一更新请求以特定租户的资源可用性作为最高优先级时的冲突。
在一些配置中,更新协调器对于数据中心是本地的。在一个示例中,云计算环境100包括包含至少三个故障域1008的至少一个数据中心256,并且系统的更新协调器508接收共同跨越至少两个故障域的请求。技术人员将认识到,如本文中讨论的很多其他项目,数据中心、故障域和更新请求是不能仅通过思维步骤进行管理的计算技术的各方面。
在一些配置中,更新协调器对于区域是本地的。在一个示例中,云计算环境100包括包含至少两个数据中心256的至少一个区域250,每个数据中心包括至少1000个服务器1002,并且系统的更新协调器接收共同跨越至少两个数据中心的请求。技术人员将认识到,在没有自动化的情况下,无法有效地管理1000个或更多个服务器;仅手动的人类动作是不够的。
在一些示例中,规范504包括满足以下条件中的至少一个的优先级506:
(a)更新租户应用软件的优先级高于更新租户控制的虚拟机操作系统;
(b)更新租户控制的虚拟机操作系统以纠正所标识的安全漏洞的优先级高于更新租户应用软件;
(c)更新租户应用软件的优先级高于更新租户控制的虚拟机中的防病毒软件316;
(d)更新租户控制的虚拟机操作系统以纠正所标识的安全漏洞的优先级高于以其他方式更新租户控制的虚拟机操作系统;
(e)更新租户控制的虚拟机操作系统以纠正所标识的安全漏洞的优先级高于更新租户控制的虚拟机中的防病毒316软件。
在一些示例中,协调涉及熟悉的云架构的更新。例如,在一些情况下,至少一个更新请求指定对云计算环境的以下组件中的至少一个的更新:软件框架410、存储blob 304、服务结构312、映射减少块226、支付块228、用于传递多媒体内容的内容传递块230、劳动力块232、消息传递块236、电子邮件块234、计算基础设施块240、存储基础设施块242、网络基础设施块244、数据库基础设施块246。
结论
尽管本文中明确地示出和描述了特定实施例作为过程、配置的介质或系统,但是应当理解,对一种类型的实施例的讨论通常也扩展到其他实施例类型。例如,结合图8、11和12的过程的描述也有助于描述配置的介质,并且有助于描述系统和制造的技术效果和操作,如结合其他附图所讨论的那些。并不是一个实施例的限制必然被读入另一实施例。特别地,过程不一定限于在讨论诸如配置的存储器等系统或制造时呈现的数据结构和布置。
本领域技术人员将理解,实现细节可以涉及特定代码,诸如特定API和特定样本程序,并且因此不需要出现在每个实施例中。本领域技术人员还将理解,在讨论细节时使用的程序标识符和一些其他术语是特定于实现的,并且因此不需要涉及每个实施例。尽管如此,虽然这里不一定要求它们存在,但是这些细节可以通过提供上下文来帮助一些读者和/或可以说明本文中讨论的技术的很多可能实现中的一些。
本文中对具有某个特征X的实施例的引用和本文中其他地方对具有某个特征Y的实施例的引用不排除具有特征X和特征Y两者的本公开实施例,除非本文中明确地说明了这种排除。在被称为实施例的一部分的任何特征也可以明确地从包含在另一实施例中被去除(即使在本文中的任何示例中没有给出特定的排除)的意义上,所有可能的否定权利要求限制都在本公开的范围内。术语“实施例”在本文中仅用作更方便的形式的“以与适用法律相一致的方式应用的过程、系统、制品、配置的计算机可读介质和/或本文中的教导的其他示例”。如果给定的实施例与至少一个权利要求相一致,则该“实施例”可以包括本文中公开的特征的任何组合。
并非每个实施例中都需要存在图中所示的每个项目。相反,实施例可以包含未在附图中明确示出的(多个)项目。尽管这里通过具体示例在文本和附图中示出了一些可能性,但是实施例可以脱离这些示例。例如,示例的特定技术效果或技术特征可以被省略、重命名、不同地分组、重复、以不同方式在硬件和/或软件中实例化、或者是出现在两个或更多个示例中的效果或特征的混合。在一些实施例中,在一个位置处示出的功能也可以在不同位置提供;本领域技术人员认识到,功能模块可以在给定实现中以各种方式定义,而不必从作为整体查看的交互模块的集合中省略期望的技术效果。
始终通过附图标记参考附图。在附图或文本中与给定附图标记相关联的措辞中的任何明显不一致应当被理解为简单地扩宽该附图标记所引用的范围。即使使用相同的附图标记,给定附图标记的不同实例也可以指代不同的实施例。类似地,给定的附图标记可以用于指代动词、名词和/或每个的对应实例,例如,处理器110可以通过执行指令来处理110指令。
如本文中使用的,诸如“一个(a)”和“该(the)”等术语包括所指示的项目或步骤中的一个或多个。特别地,在权利要求中,对项目的引用通常表示存在至少一个这样的项目,并且对步骤的引用表示执行该步骤的至少一个实例。
标题仅为了方便;有关给定主题的信息可以在其标题指示该主题的部分之外找到。
所提交的所有权利要求和摘要都是说明书的一部分。
虽然已经在附图中示出并且在上面描述了示例性实施例,但是对于本领域普通技术人员很清楚的是,在不脱离权利要求中阐述的原理和概念的情况下可以进行多种修改,并且这样的修改不必包含整个抽象概念。尽管用结构特征和/或程序动作特定的语言描述了本主题,但是应当理解,所附权利要求书中定义的主题不必限于权利要求以下描述的特定技术特征或动作。在给定定义或示例中标识的每个手段或方面或技术效果不必存在或用于每个实施例中。相反,所描述的具体特征和作用和效果被公开作为在实现权利要求时考虑的示例。
不满足于包含整个抽象概念但落入权利要求的等同物的含义和范围内的所有变化都应当在法律允许的完整范围内被包含在其范围内。

Claims (20)

1.一种协调多租户云计算环境中的更新的方法,所述方法包括:
更新协调器从第一更新请求者接收指定对所述云计算环境的至少一部分的第一更新的第一更新请求;
所述更新协调器从第二更新请求者接收指定对所述云计算环境的至少一部分的第二更新的第二更新请求,所述更新请求者是不同的实体;
协调所述更新请求以控制至少一个更新的执行,包括以下动作中的至少一项:(i)解决来自所述云计算环境的独立受控租户的更新请求之间的冲突,(ii)解决当一个更新请求者是所述云计算环境的租户而另一更新请求者是向多个独立受控租户提供基础设施服务的云计算基础设施服务提供者时的冲突,(iii)解决当一个更新请求以安全性作为最高优先级,而另一更新请求不以安全性作为最高优先级时的冲突,或者(iv)解决当一个更新请求以多个租户的安全性作为最高优先级,而另一更新请求以特定租户的资源可用性作为最高优先级时的冲突,并且其中协调所述更新请求包括给予用于执行所述第一更新的第一部署引擎批准并且给予用于执行所述第二更新的不同的第二部署引擎批准;以及
至少部分地基于以下一项来检测恶意行为:(i)一个或多个更新请求批准,或者(ii)更新请求的一个或多个不批准。
2.根据权利要求1所述的方法,其中所述更新请求之一包括来自所述云计算基础设施服务提供者的基础设施更新请求,并且解决所述冲突包括将所述基础设施更新请求呈现给至少一个租户以供批准或拒绝,所述云计算基础设施服务提供者向多个独立受控租户提供基础设施服务。
3.根据权利要求1所述的方法,其中协调所述更新请求包括向至少一个租户通知所述基础设施更新的即将进行的执行。
4.根据权利要求1所述的方法,其中所述第一更新请求指定对基础设施组件的更新,所述基础设施组件跨越所述云计算环境的至少两个区域,每个区域包含至少一个数据中心,并且其中协调所述更新请求包括基于预定优先级规范使所述第一更新的优先级高于所述第二更新。
5.根据权利要求1所述的方法,其中所述更新请求之一包括来自所述云计算基础设施服务提供者的基础设施更新请求,所述云计算基础设施服务提供者向多个独立受控租户提供基础设施服务,并且所述方法还包括响应于将所述基础设施更新的执行推迟超过指定阈值而增加所述基础设施更新的优先级级别,并且其中协调所述更新请求包括使推迟的所述基础设施更新的优先级高于先前具有比所述基础设施更新更高的优先级的更新请求。
6.根据权利要求1所述的方法,其中检测恶意行为包括检测大量更新请求的一个或多个批准,所述一个或多个批准导致租户资源低于预定可用性目标的退化。
7.根据权利要求1所述的方法,其中解决所述冲突包括将所述第一更新和所述第二更新合并为联合更新。
8.根据权利要求1所述的方法,其中所述第一更新具有比所述第二更新更高的优先级,并且解决所述冲突包括以下中的至少一项:允许在开始所述第二更新之前完成所述第一更新,或者抢占所述第二更新的执行以支持所述第一更新的执行。
9.一种配置有软件的计算机可读存储介质,所述软件在执行时执行协调多租户云计算环境中的更新的方法,所述方法包括:
更新协调器从云计算基础设施服务提供者接收基础设施更新请求,所述基础设施更新请求指定对所述云计算环境的至少一个基础设施组件的基础设施更新;
更新协调器从所述云计算环境的租户接收租户更新请求,所述租户更新请求指定限于特定于所述租户的租户软件的租户更新;
主动地协调所述更新请求以减少租户停机时间;以及
以与所述协调步骤的结果相一致的方式执行所述更新中的至少一个更新;
其中可用性规范指定所述租户软件能够不可用的最长时间段,并且主动地协调所述更新请求包括确定执行所述基础设施更新将使所述租户软件不可用超过指定的所述最长时间段,并且然后推迟或不批准所述基础设施更新请求,即使这样做导致无法满足安全性目标。
10.根据权利要求9所述的计算机可读存储介质,其中主动地协调所述更新请求包括访问可用性规范,所述可用性规范指定以下中的至少一项:任何更新应当被执行的时间段、要在任何更新期间保持可用的最小故障域数目、要在任何更新期间保持的计算能力阈值可用性。
11.根据权利要求9所述的计算机可读存储介质,其中所述基础设施更新请求指定用于纠正所标识的零日漏洞的安全性更新,并且主动地协调所述更新请求包括使所述基础设施更新请求的优先级高于所述租户更新请求。
12.根据权利要求11所述的计算机可读存储介质,其中使所述基础设施更新的优先级高于所述租户更新请求导致无法满足所述租户软件的可用性目标。
13.根据权利要求9所述的计算机可读存储介质,其特征还在于以下方式中的至少两种方式:
(a)主动地协调所述更新请求包括将所述基础设施更新请求呈现给所述租户以供批准;
(b)主动地协调所述更新请求包括向所述租户通知所述基础设施更新的即将进行的执行;
(c)所述基础设施组件跨越所述云计算环境的至少两个区域,每个区域包含至少一个数据中心,并且主动地协调所述更新请求包括使所述基础设施更新请求的优先级高于所述租户更新请求;
(d)所述基础设施更新请求标识响应于将所述基础设施更新的执行推迟指定时间段和/或将所述基础设施更新的执行推迟指定次数而优先级增加的基础设施更新,并且主动地协调所述更新请求包括使推迟的所述基础设施更新请求的优先级高于所述租户更新请求;
(e)主动地协调所述更新请求包括将所述基础设施更新和所述租户更新合并为联合更新;或者
(f)主动地协调所述更新请求包括给予用于执行所述基础设施更新的第一部署引擎批准并且给予用于执行所述租户更新的不同的第二部署引擎批准。
14.一种协调云计算环境中的竞争更新的系统,所述系统包括:
处理器;
与所述处理器可操作地通信的存储器;
驻留在所述存储器中的一个或多个优先级规范;以及
更新协调器,包括驻留在所述存储器中的指令,所述指令由所述处理器可执行以执行包括以下各项的方法:(a)所述更新协调器从第一更新请求者接收指定对所述云计算环境的至少一部分的第一更新的第一更新请求,(b)所述更新协调器从第二更新请求者接收指定对所述云计算环境的至少一部分的第二更新的第二更新请求,所述更新请求者是不同的实体,以及(c)协调所述更新请求以控制至少一个更新的执行,包括基于所述一个或多个优先级规范中的优先级的以下动作中的至少一个动作:(i)解决来自所述云计算环境的独立受控租户的更新请求之间的租户-租户冲突,(ii)解决当一个更新请求者是所述云计算环境的租户而另一更新请求者是向多个独立受控租户提供基础设施服务的云计算基础设施服务提供者时的冲突,或(iii)解决基于安全性的冲突,即当一个更新请求以安全性作为最高优先级而另一更新请求不以安全性作为所述最高优先级时的冲突;
给予用于执行所述第一更新的第一部署引擎批准并且给予用于执行所述第二更新的不同的第二部署引擎批准;以及
至少基于以下一项来检测恶意行为:(i)一个或多个更新请求批准,或者(ii)更新请求的一个或多个不批准。
15.根据权利要求14所述的系统,其中以下条件中的至少一个条件成立:(i)所述云计算环境包括包含至少三个故障域的至少一个数据中心,并且所述系统的所述更新协调器接收共同跨越所述故障域中的至少两个故障域的请求,或(ii)所述云计算环境包括包含至少两个数据中心的至少一个区域,每个数据中心包括至少一千个服务器,并且所述系统的所述更新协调器接收共同跨越所述数据中心中的至少两个数据中心的请求。
16.根据权利要求14所述的系统,其中所述更新协调器包括驻留在所述存储器中的指令,所述指令由所述处理器可执行以至少部分通过解决来自所述云计算环境的独立受控租户的更新请求之间的所述租户-租户冲突,来协调所述更新请求以控制至少一个更新的执行。
17.根据权利要求14所述的系统,其中所述规范包括满足以下条件中的至少一个条件的优先级:
(a)更新租户应用软件的优先级高于更新租户控制的虚拟机操作系统;
(b)更新租户控制的虚拟机操作系统以纠正所标识的安全漏洞的优先级高于更新租户应用软件;
(c)更新租户应用软件的优先级高于更新租户控制的虚拟机中的防病毒软件;
(d)更新租户控制的虚拟机操作系统以纠正所标识的安全漏洞的优先级高于以其他方式更新租户控制的虚拟机操作系统;
(e)更新租户控制的虚拟机操作系统以纠正所标识的安全漏洞的优先级高于更新租户控制的虚拟机中的防病毒软件。
18.根据权利要求14所述的系统,其中所述更新协调器包括驻留在所述存储器中的指令,所述指令由所述处理器可执行以至少部分通过解决当所述一个或多个优先级规范中的优先级指定一个更新请求以安全性作为所述最高优先级而另一更新请求不以安全性作为所述最高优先级时的所述基于安全性的冲突,来协调所述更新请求以控制至少一个更新的执行。
19.根据权利要求14所述的系统,其中至少一个更新请求指定对所述云计算环境的以下组件中的至少一个组件的更新:软件框架、存储blob、服务结构、映射减少块、支付块、内容传递块、劳动力块、消息传递块、电子邮件块、计算基础设施块、存储基础设施块、网络基础设施块、数据库基础设施块。
20.根据权利要求14所述的系统,其中所述方法还包括向至少一个租户呈现至少一个更新请求以供批准或拒绝。
CN201780037434.0A 2016-06-15 2017-06-08 多租户云计算环境中的更新协调 Active CN109416651B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/183,257 US10768920B2 (en) 2016-06-15 2016-06-15 Update coordination in a multi-tenant cloud computing environment
US15/183,257 2016-06-15
PCT/US2017/036467 WO2017218274A1 (en) 2016-06-15 2017-06-08 Update coordination in a multi-tenant cloud computing environment

Publications (2)

Publication Number Publication Date
CN109416651A CN109416651A (zh) 2019-03-01
CN109416651B true CN109416651B (zh) 2022-03-22

Family

ID=59071138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780037434.0A Active CN109416651B (zh) 2016-06-15 2017-06-08 多租户云计算环境中的更新协调

Country Status (4)

Country Link
US (1) US10768920B2 (zh)
EP (1) EP3472707B1 (zh)
CN (1) CN109416651B (zh)
WO (1) WO2017218274A1 (zh)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
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
US9996335B2 (en) * 2016-02-25 2018-06-12 Cisco Technology, Inc. Concurrent deployment in a network 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
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10679267B2 (en) * 2016-08-03 2020-06-09 Raise Marketplace, Llc Method and system for consumption based redemption in an exchange item marketplace network
US10303582B2 (en) * 2016-10-25 2019-05-28 International Business Machines Corporation Facilitating debugging serverless applications via graph rewriting
US11153273B2 (en) 2016-12-13 2021-10-19 International Business Machines Corporation Generating and managing names of instances
US10623252B2 (en) 2016-12-13 2020-04-14 International Business Machines Corporation Performing actions that have been defined for provisioned instances
US10547506B2 (en) * 2016-12-13 2020-01-28 International Business Machines Corporation Determining identities for executing cloud processing and approvers of the executing
US11044145B2 (en) 2016-12-13 2021-06-22 International Business Machines Corporation Configuring and naming of cloud provisioning entities
US10887102B2 (en) * 2016-12-15 2021-01-05 Nutanix, Inc. Intent framework
CN106791152B (zh) * 2016-12-30 2019-08-27 Oppo广东移动通信有限公司 一种通信方法及移动终端
US10157053B2 (en) * 2017-02-14 2018-12-18 Arris Enterprises Llc Modified federation architecture with reduced update time
US20180241617A1 (en) * 2017-02-22 2018-08-23 Microsoft Technology Licensing, Llc System upgrade management in distributed computing systems
CN108667886B (zh) * 2017-04-01 2020-07-28 华为技术有限公司 提供PaaS服务的方法、管理系统和云计算服务架构
US10747585B2 (en) * 2017-05-26 2020-08-18 Vmware Inc. Methods and apparatus to perform data migration in a distributed environment
EP3676682A4 (en) * 2017-08-18 2021-03-31 PayPal, Inc. SELF-GENERATING REAL-TIME DATA PROCESSING
US10917436B2 (en) * 2018-03-20 2021-02-09 Cisco Technology, Inc. On-demand security policy provisioning
US10970270B2 (en) 2018-05-07 2021-04-06 Microsoft Technology Licensing, Llc Unified data organization for multi-model distributed databases
US10452375B1 (en) * 2018-06-21 2019-10-22 Microsoft Technology Licensing, Llc Memory-efficient upgrade staging
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
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
EP3618403A1 (en) * 2018-08-31 2020-03-04 Siemens Aktiengesellschaft Method and system for managing operation associated with an object on iot enabled devices
CN109408207B (zh) * 2018-09-20 2021-10-22 北京小米移动软件有限公司 微服务访问控制方法、装置及存储介质
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
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
US10904124B2 (en) * 2018-11-07 2021-01-26 International Business Machines Corporation System and method for dynamic stopping of cloud-based provisioning requests
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
CN111209094A (zh) * 2018-11-21 2020-05-29 北京小桔科技有限公司 请求处理方法、装置、电子设备及计算机可读存储介质
US11531647B2 (en) * 2019-01-31 2022-12-20 Qatar Foundation For Education, Science And Community Development Data storage methods and systems
US11748197B2 (en) 2019-01-31 2023-09-05 Qatar Foundation For Education, Science And Community Development Data storage methods and systems
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
US11102328B2 (en) * 2019-05-09 2021-08-24 Sap Se Provisioning multi-tenant, microservice architecture-based integration service in a cloud computing environment
CN110191503B (zh) * 2019-06-04 2022-06-10 惠州Tcl移动通信有限公司 音频播放方法、系统、存储介质及移动终端
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
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
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11700278B2 (en) 2019-06-30 2023-07-11 Microsoft Technology Licensing, Llc Access management system with a multi-environment policy
US11119751B2 (en) * 2019-07-16 2021-09-14 International Business Machines Corporation Self-learning optimized patch orchestration
JP7177755B2 (ja) 2019-07-24 2022-11-24 株式会社日立製作所 サーバ、ソフトウェア更新システム、およびソフトウェア更新装置
CN110730095B (zh) * 2019-10-09 2022-11-15 北京华电天仁电力控制技术有限公司 一种面向云计算平台的数据安全应急演练方法和系统
EP3805922B1 (en) 2019-10-11 2024-04-03 Google LLC Extensible computing architecture for vehicles
CN111782930A (zh) * 2019-11-08 2020-10-16 北京京东尚科信息技术有限公司 多云管理方法及装置、计算机可存储介质
WO2021096347A1 (en) * 2019-11-15 2021-05-20 Mimos Berhad Method and system for dynamically managing access priority of virtual machine tenants to service or host
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11356317B2 (en) * 2019-12-24 2022-06-07 Vmware, Inc. Alarm prioritization in a 5G telco network
US11663544B2 (en) * 2020-01-28 2023-05-30 Salesforce.Com, Inc. System and methods for risk assessment in a multi-tenant cloud environment
US11372634B1 (en) * 2020-01-29 2022-06-28 Amazon Technologies, Inc. Specialized cloud provider regions for availability-sensitive workloads
CN113312068B (zh) * 2020-02-27 2024-05-28 伊姆西Ip控股有限责任公司 用于升级系统的方法、电子设备和计算机程序产品
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
US11194566B1 (en) * 2020-03-16 2021-12-07 Amazon Technologies, Inc. Decentralized, cluster-managed deployment of software updates in a multi-cluster environment
CN111221327B (zh) * 2020-03-17 2021-04-20 北京汽车股份有限公司 车辆故障检测方法、装置、存储介质以及车辆
US10915379B1 (en) * 2020-05-13 2021-02-09 Microsoft Technology Licensing, Llc Predictable distribution of program instructions
US11221839B2 (en) * 2020-06-15 2022-01-11 Sap Se Early software updates for multi-tenant integration service
US20220100766A1 (en) * 2020-09-28 2022-03-31 Red Hat, Inc. Platform and service disruption avoidance using deployment metadata
US11593095B2 (en) * 2020-10-30 2023-02-28 Vmware, Inc. Upgrade of a distributed service in a virtualized computing system
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
CN112653758B (zh) * 2020-12-21 2023-04-07 北京百度网讯科技有限公司 边缘节点的更新方法、装置、设备和介质
US11388231B1 (en) * 2021-01-28 2022-07-12 Salesforce, Inc. Multi-substrate fault tolerant continuous delivery of datacenter builds on cloud computing platforms
US11853100B2 (en) * 2021-04-12 2023-12-26 EMC IP Holding Company LLC Automated delivery of cloud native application updates using one or more user-connection gateways
US20220407820A1 (en) * 2021-06-18 2022-12-22 Vmware, Inc. Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
CN115617468A (zh) * 2021-07-14 2023-01-17 华为技术有限公司 一种租户的资源管理方法及租户管理系统
US11412040B1 (en) * 2021-07-23 2022-08-09 Vmware, Inc. Using maintenance mode to upgrade a distributed system
CN115878310A (zh) * 2021-09-30 2023-03-31 中兴通讯股份有限公司 虚拟资源信息的同步方法、编排器、电子设备、可读介质
US20230106414A1 (en) * 2021-10-06 2023-04-06 Vmware, Inc. Managing updates to hosts in a computing environment based on fault domain host groups
US11709845B2 (en) * 2021-11-22 2023-07-25 Microsoft Technology Licensing, Llc Federation of data during query time in computing systems
WO2023113976A1 (en) * 2021-12-14 2023-06-22 Vmware, Inc. Desired state management of software-defined data center
US11722372B2 (en) 2021-12-14 2023-08-08 Vmware, Inc. Desired state management of software-defined data center
US11829234B2 (en) 2022-01-19 2023-11-28 Dell Products L.P. Automatically classifying cloud infrastructure components for prioritized multi-tenant cloud environment resolution using artificial intelligence techniques
US11799822B2 (en) * 2022-01-21 2023-10-24 Google Llc Proxyless network address translation with dynamic port allocation
US20240069886A1 (en) * 2022-08-31 2024-02-29 Microsoft Technology Licensing, Llc Targeted release for cloud service deployments
CN115145736B (zh) * 2022-09-05 2022-12-06 中国人寿保险股份有限公司上海数据中心 基于Spark分布式计算的云平台配额智能分配系统
US20240121292A1 (en) * 2022-10-07 2024-04-11 Sap Se Object-based transportation across tenants
US11902094B1 (en) 2023-07-31 2024-02-13 Bank Of America Corporation Systems and methods for end-to-end automation of network infrastructure development changes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819538A (zh) * 2009-01-30 2010-09-01 惠普开发有限公司 管理执行在虚拟机中的操作系统的请求
CN104092565A (zh) * 2014-06-24 2014-10-08 复旦大学 一种面向云数据中心的多租户策略驱动型软件定义网络方法
CN105577499A (zh) * 2014-10-10 2016-05-11 华为技术有限公司 决策协调方法、执行装置和决策协调器

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738766B2 (en) * 2000-02-02 2004-05-18 Doongo Technologies, Inc. Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
US20020152305A1 (en) * 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US7877518B2 (en) 2000-11-30 2011-01-25 Access Systems Americas, Inc. Method and apparatus for updating applications on a mobile device via device synchronization
US7165250B2 (en) 2002-01-15 2007-01-16 International Business Machines Corporation System and method for priority based application server updates
IL150911A0 (en) * 2002-07-25 2003-02-12 Sphera Technologies Ltd A method and apparatus for dynamically allocating and managing resources in a computerized system having multiple consumers
SE0401737D0 (sv) 2004-07-03 2004-07-03 Tomas Hultgren Verktyg för kompetenssökning och utökad lösningsmängd vid utvecklings- och produktionstillämpningar
GB0502842D0 (en) 2005-02-11 2005-03-16 Ibm Coordinating software upgrades in distributed systems
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US7464126B2 (en) 2005-07-21 2008-12-09 International Business Machines Corporation Method for creating an application-consistent remote copy of data using remote mirroring
US7480817B2 (en) 2006-03-31 2009-01-20 International Business Machines Corporation Method for replicating data based on probability of concurrent failure
US8291409B2 (en) * 2006-05-22 2012-10-16 Microsoft Corporation Updating virtual machine with patch on host that does not have network access
US8799218B2 (en) 2006-12-01 2014-08-05 Ebay Inc. Business channel synchronization
US8776041B2 (en) 2007-02-05 2014-07-08 Microsoft Corporation Updating a virtual machine monitor from a guest partition
US20120210310A1 (en) 2007-03-23 2012-08-16 Zenzui, Inc. Systems and methods for coordinating the updating of applications on a computing device
US8161479B2 (en) 2008-06-13 2012-04-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
WO2010102084A2 (en) 2009-03-05 2010-09-10 Coach Wei System and method for performance acceleration, data protection, disaster recovery and on-demand scaling of computer applications
US20110083179A1 (en) * 2009-10-07 2011-04-07 Jeffrey Lawson System and method for mitigating a denial of service attack using cloud computing
US8074107B2 (en) 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
US8407689B2 (en) * 2010-06-25 2013-03-26 Microsoft Corporation Updating nodes considering service model constraints
US20120102480A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation High availability of machines during patching
US9753713B2 (en) 2010-10-22 2017-09-05 Microsoft Technology Licensing, Llc Coordinated upgrades in distributed systems
US8875122B2 (en) 2010-12-30 2014-10-28 Sap Se Tenant move upgrade
US9229777B2 (en) 2011-08-08 2016-01-05 International Business Machines Corporation Dynamically relocating workloads in a networked computing environment
US9781205B2 (en) 2011-09-12 2017-10-03 Microsoft Technology Licensing, Llc Coordination engine for cloud selection
US20130151688A1 (en) * 2011-12-07 2013-06-13 Alcatel-Lucent Usa Inc. Optimization mechanisms for latency reduction and elasticity improvement in geographically distributed data centers
US8935375B2 (en) * 2011-12-12 2015-01-13 Microsoft Corporation Increasing availability of stateful applications
US8713562B2 (en) * 2012-01-06 2014-04-29 International Business Machines Corporation Intelligent and automated code deployment
KR101373461B1 (ko) 2012-02-24 2014-03-11 주식회사 팬택 클라우드 서비스를 이용하기 위한 단말기 및 방법
US20130339203A1 (en) 2012-06-18 2013-12-19 International Business Machines Corporation Risk-based dynamic geo-location based replication of services in cloud computing
US20140068595A1 (en) 2012-08-28 2014-03-06 Ofer Belinsky Automatic mobile application updates
JP6213053B2 (ja) * 2012-09-04 2017-10-18 富士通株式会社 プログラム、情報処理装置およびスケジュール決定方法
US8769701B2 (en) * 2012-09-05 2014-07-01 International Business Machines Corporation Single tenant audit view in a multi-tenant environment
US8606938B1 (en) 2012-09-27 2013-12-10 Ringcentral, Inc. High availability for cloud-based services
US8838535B2 (en) 2012-10-05 2014-09-16 Oracle International Corporation Providing services across systems that manage distributed replicas
US9710250B2 (en) 2013-03-15 2017-07-18 Microsoft Technology Licensing, Llc Mechanism for safe and reversible rolling upgrades
US9716746B2 (en) 2013-07-29 2017-07-25 Sanovi Technologies Pvt. Ltd. System and method using software defined continuity (SDC) and application defined continuity (ADC) for achieving business continuity and application continuity on massively scalable entities like entire datacenters, entire clouds etc. in a computing system environment
US9195702B2 (en) 2013-08-20 2015-11-24 International Business Machines Corporation Management and synchronization of batch workloads with active/active sites OLTP workloads
US10110501B2 (en) 2014-07-07 2018-10-23 Microsoft Technology Licensing, Llc Tenant control in initiating atomic platform tasks
US9619371B2 (en) * 2015-04-16 2017-04-11 International Business Machines Corporation Customized application performance testing of upgraded software
CN106302623B (zh) 2015-06-12 2020-03-03 微软技术许可有限责任公司 承租人控制的云更新
US9612865B2 (en) * 2015-06-15 2017-04-04 International Business Machines Corporation Managed services coordinator
US9792110B2 (en) * 2015-12-21 2017-10-17 International Business Machines Corporation Automatic online system upgrade

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819538A (zh) * 2009-01-30 2010-09-01 惠普开发有限公司 管理执行在虚拟机中的操作系统的请求
CN104092565A (zh) * 2014-06-24 2014-10-08 复旦大学 一种面向云数据中心的多租户策略驱动型软件定义网络方法
CN105577499A (zh) * 2014-10-10 2016-05-11 华为技术有限公司 决策协调方法、执行装置和决策协调器

Also Published As

Publication number Publication date
US10768920B2 (en) 2020-09-08
EP3472707B1 (en) 2021-08-04
CN109416651A (zh) 2019-03-01
EP3472707A1 (en) 2019-04-24
US20170364345A1 (en) 2017-12-21
WO2017218274A1 (en) 2017-12-21

Similar Documents

Publication Publication Date Title
CN109416651B (zh) 多租户云计算环境中的更新协调
US10664348B2 (en) Fault recovery management in a cloud computing environment
US11726830B2 (en) Techniques for detecting drift in a deployment orchestrator
US10924347B1 (en) Networking device configuration value persistence
US10169035B1 (en) Customized static source code analysis
US11755337B2 (en) Techniques for managing dependencies of an orchestration service
US10908948B2 (en) Multiple application instances in operating systems that utilize a single process for application execution
US20180246916A1 (en) Scalable object service data and metadata overflow
CN114846447A (zh) 用于使用声明性供应工具部署基础设施资源的技术
EP3566150B1 (en) Data consistency check in distributed system
WO2021150306A1 (en) Techniques for detecting drift in a deployment orchestrator
US11734032B1 (en) Virtual desktop switching and communications
Data Cloud
US20220114023A1 (en) Infrastructure as code deployment mechanism
US20150207661A1 (en) System and method for providing priority based access to resources for applications
US20230401332A1 (en) Controlling application access to sensitive data
US20240118937A1 (en) Cloud-based resource throttling prediction
Murn Crucial Software‐related Terms to Understand
Rahman et al. Cloud Computing Tools And Techniques
WO2023191928A1 (en) Virtual desktop switching and communications

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
GR01 Patent grant
GR01 Patent grant