CN117015759A - Vm集的自动更新 - Google Patents

Vm集的自动更新 Download PDF

Info

Publication number
CN117015759A
CN117015759A CN202280021298.7A CN202280021298A CN117015759A CN 117015759 A CN117015759 A CN 117015759A CN 202280021298 A CN202280021298 A CN 202280021298A CN 117015759 A CN117015759 A CN 117015759A
Authority
CN
China
Prior art keywords
tag
existing
software
metadata
new
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280021298.7A
Other languages
English (en)
Inventor
U·K·班达鲁
R·N·巴蒂亚
S·古普塔
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 CN117015759A publication Critical patent/CN117015759A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

当包括用于供应VM规模集的已有VM的OS或其他软件映像的原始标签不再可用或已改变时,云服务智能地为VM规模集供应新VM。分析已有VM的元数据,以标识用于供应已有VM的OS映像或其他软件映像。元数据还显示在新VM上运行的更新。这些更新包括不属于用于供应已有VM的原始标签的软件,并且用于在标签数据库中查找第二标签。第二标签包括已有VM的OS或软件(或其更新版本)以及更新中的部分更新。VM供应服务使用第二标签来供应新VM。

Description

VM集的自动更新
背景技术
云计算基础设施的一个服务是虚拟机(VM)的供应(Provision)。为了供应冗余和改进的性能,在云中运行的应用通常分布在多个VM上。负载均衡器将应用请求分布到被供应为运行应用的VM实例中的一个。为了满足额外的客户需求,客户经常需要增加运行应用的VM的数量。如今,客户能够创建和管理一组VM来支持大量应用,从而扩大或缩小VM的数量,以支持必要的处理、存储和网络资源。
发明内容
下面参考后文列出的附图对所公开的示例进行详细描述。供应以下发明内容来说明本文中公开的一些示例。然而,这并不意味着将所有示例限制为任何特定的配置或操作顺序。
本文中公开的示例和实施涉及当包括用于供应已有VM的软件映像的原始标签不再可用或已经改变时,为VM规模集智能地供应新VM。VM元数据服务分析VM规模集的已有VM的元数据。OS映像或其他软件从元数据以及已有VM上已安装或正在运行的其他软件更新来标识。这些更新包括不属于用于供应已有VM的原始标签的一部分的软件,但是这些更新供应额外的功能,可以搜索这些功能来标识用于供应新VM的合适的第二标签。例如,软件更新可以包括安装在已有VM上的特定安全补丁或注册表键。这些更新用于在标签数据库中查找第二标签。第二标签包括已有VM的软件——或其之后的版本——以及更新的某些部分(例如,安全补丁、注册表键等)。VM供应服务使用所标识的第二标签来供应新VM。
附图说明
下面结合后文列出的附图对所公开的示例进行详细描述:
图1示出了用于实施本文中公开的方面的示例计算设备的框图;
图2示出了用于机器学习新VM的正确软件映像以供应VM规模集的网络环境的框图;
图3示出了为VM规模最初创建已有VM的VM供应服务的框图;
图4示出了更新服务在VM规模集的已有VM上传输和安装更新的框图;
图5示出了示出包括从云环境中的标签数据库中删除的各种软件的软件标签的框图;
图6示出了示出通过添加新VM来扩大VM规模集的请求的框图;
图7示出了示出VM元数据服务分析在已有VM上运行的软件的元数据以标识标签数据库中的新标签用于供应新VM的框图;
图8示出了VM元数据服务定位不同标签以用于基于在已有VM上运行的当前软件供应新VM的框图;
图9是利用已有VM的元数据标识的新标签来供应新VM的VM供应服务的框图;
图10是示出使用OS映像和对已有VM的更新的一部分来供应新VM的操作的流程图;
图11是示出使用软件映像和对已有VM的更新的一部分来供应新VM的操作的流程图;以及
图12示出了示例云计算环境的框图。
具体实施方式
将参考附图详细描述各种实施和示例。只要有可能,贯穿附图中,将使用相同的附图标记来指代相同或相似的部分。贯穿本公开作出的与具体示例和实施相关的参考仅出于说明性目的而提供,但是除非有相反指示,否则并不意味着限制所有示例。
供应平台(Provisioning Platforms)允许系统管理员选择、配置一组软件并且将其推送到网络上的新机器。现有的供应平台必须手动选择并且手动执行其他任务,以安装新VM。对于VM集来说,由于不同虚拟机集可以被配置为使用不同的可用资源集,和/或可以使用来自不同供应商的可能完全兼容或可能不完全兼容的管理工具来实例化,因此安装的困难性更加复杂。
当需要多个VM来运行应用时,在整个VM集上保持一致的VM软件配置是非常重要的。特别是,当供应服务稍后尝试创建另一个VM时,当前在一个VM上运行的OS的软件映像可能不可用或可能已改变。例如,如果在2020年12月创建了十个VM来运行782版本的OS(由总部位于华盛顿州雷蒙德的MICROSOFT公司/>开发),但是需要在2021年7月创建一个新VM,则782版本的/>(即,2020年12月版本)可能已过时、改变或不再可供VM供应服务使用。因此,VM供应服务无法使用旧的782版本的OS创建新VM,从而产生需要想要VM的客户联系客户支持的错误。换句话说,供应服务用于创建新VM的映像会不断变化以堵塞安全漏洞,或者随着软件和硬件的演化而被逐步淘汰。需要客户获取客户支持是将更多VM添加到特定VM规模集的低效方法。因此,当需要为运行过时或改变的软件的当前VM规模集创建新VM时,已知的供应服务和平台不供应完全自动化的体验。
公开的实施和示例涉及用于自动且智能地为VM规模集供应新VM的系统、方法和计算机可执行指令。公开的实施在包括VM供应服务和VM元数据服务的云计算基础设施(本文中一般称为“云”、“云计算环境”或“云基础设施”)中操作。VM供应服务为VM规模集供应新VM实例,使得客户端能够在云中添加处理资源。VM元数据服务分析在VM规模集中现有操作VM的元数据,标识VM上运行的特定软件(例如,操作系统(OS)),并且还标识已从更新服务下载的所标识软件的最新配置。更新服务自动更新已有VM的虚拟化软件和硬件,并且这些更新例如但不限于包括指示关于已有VM的OS或其他软件的细节的可标识元数据。
云基础设施包括用于安装在VM上的诸如OS的软件的映像。供应新VM涉及许多步骤,其中包括将这些软件映像复制到分配用于支持新VM的存储空间。但是这些用于OS或其他软件的云存储映像可能与用于供应VM规模集中的已有VM的映像发生改变。例如,已有VM可能已供应了包括10 2004版的OS和2020年10月安全补丁的映像;然而,在供应新VM时云中的映像可能包括2004版的OS和2004年12月(或其他)安全补丁。因为新VM与已有VM不同——由于安全补丁的差异,所以为新VM供应不同的安全补丁可能会导致意想不到的后果,。
传统上,这会产生云客户将需要获取客户支持来解决的错误。但是现在,使用公开的实施和示例,通过分析已有VM的元数据来机器学习在供应新VM时使用的正确映像。并且,新VM能够自动供应,以匹配VM规模集的已有VM。这消除了尝试用已改变或变得过时的软件供应新VM时出现的错误。此外,也许更重要的是,公开的示例减少了客户端联系客户支持以在软件改变或变得过时时获得他们的VM的需要。
为了帮助读者,“已有”VM意味着当前作为VM规模集的一部分运行的VM,并且“新”VM是计划添加到VM规模集的VM。换句话说,VM规模集包括当前正在运行的一个或多个已有VM,并且新VM由VM供应服务添加到VM规模集。可以为了多种原因添加新VM。例如,在已有VM上运行的应用可能需要备份、需要冗余或需要额外的处理能力。使用本文中讨论的技术来供应新VM还存在无数其他原因。
“VM规模集”指的是可以自动扩大或缩小的一个或多个VM的集合。换句话说,VM的数量可以在规模集中手动增加或减少,或者基于资源使用情况(例如,中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC)等);内存需求;和/或网络要求,通过应用定义的用于自动调整的规则自动增加或减少。
已经供应了公开的一些实施和示例的概述并且澄清了一些术语,现在关注附图以进一步说明附加细节。供应图示的配置和操作序列以帮助读者理解公开的实施和示例的各个方面。附图并不意味着限制所有示例,因此在不脱离本文中公开的示例的范围的情况下,一些示例可以包括不同的组件、设备或操作。换句话说,一些实施和示例可以以与所示的方式不同的方式来体现或起作用。
图1是用于实施本文中公开的方面的示例计算设备100的框图,并且通常被指定为计算设备100。计算设备100只是合适的计算环境的一个示例并且不意在建议对本文中公开的示例的用途或功能的范围的任何限制。计算设备100也不应当被解释为具有与所示的任何一个组件/模块或其组合相关的任何依赖性或要求。
本文中公开的示例可以在由计算机或其他机器执行的计算机代码或机器可执行指令或计算机可执行指令(诸如程序组件)的一般上下文中进行描述。一般而言,程序组件包括引用代码、执行特定任务或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等。公开的示例可以在各种系统配置中实践,这些系统配置包括个人计算机、膝上型电脑、智能电话、服务器、VM、移动平板电脑、手持设备、消费电子产品、专业计算设备等。当任务由通过通信网络链接的远程处理设备执行时,公开的示例也可以被实践在分布式计算环境中。
计算设备100包括直接或间接耦合以下设备的总线110:计算机存储存储器112、一个或多个处理器114、一个或多个呈现组件116、I/O端口118、I/O组件120、电源122和网络组件124。虽然计算设备100被描述为看似单个设备,但是多个计算设备100可以一起工作并且共享所描述的设备资源。例如,存储器112分布在多个设备上,并且处理器114与不同的设备一起被容纳。总线110表示可以是一个或多个总线(诸如地址总线、数据总线或其组合)。尽管为了清楚起见,图1的各个块用线示出,从而可以用替代的表示来完成对各个组件的描绘。例如,诸如显示设备的呈现组件在一些示例中是I/O组件,并且处理器的一些示例具有它们自己的存储器。在诸如“工作站”、“服务器”、“膝上型电脑”、“手持设备”等这样的类别之间不进行区分,因为所有类别都被设想在图1以及本文中对“计算设备”的引用的范围内。
存储器112可以采用下面提到的计算机存储存储器设备的形式,并且可操作地为计算设备100供应计算机可读指令、数据结构、程序模块和其他数据的存储。在一些示例中,存储器112存储OS、通用应用平台或其他程序模块和程序数据中的一个或多个。因此,存储器112能够存储和访问数据112a和指令112b,数据112a和指令112b可由处理器114执行并且被配置为执行本文中公开的各种操作。在一些示例中,存储器112存储用于OS和各种软件应用的可执行计算机指令。OS可以是被设计为控制计算设备100的功能的任何OS,包括例如但不限于:由MICROSOFT公司开发的/>由加利福尼亚州库比蒂诺的APPLE股份有限公司/>开发的MAC/>由加利福尼亚州山景城的GOOGLE股份有限公司/>开发的ANDROIDTM、开源的/>等。
作为示例而非限制,计算机可读介质包括计算机存储存储器设备和通信介质。计算机存储存储器设备可以包括以任何方法或技术实施的易失性、非易失性、可移动、不可移动或其他存储器,用于存储诸如计算机可读指令、数据结构、程序模块等的信息。计算机存储存储器设备是有形的并且与通信介质互斥。计算机存储存储器设备以硬件实施并且排除载波和传播信号。出于本公开的目的,计算机存储存储器设备本身不是信号。示例计算机存储存储器设备包括硬盘、闪存驱动器、固态存储器、相变随机存取存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储技术、光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光存储、盒式磁带、磁带、磁盘存储或其他磁存储设备,或可以用于存储供计算设备访问的信息的任何其他非传输介质。相比之下,通信介质通常将计算机可读指令、数据结构、程序模块等体现在诸如载波或其他传输机制的调制数据信号中,并且包括任何信息传递介质。
计算机可执行指令可以被组织成一个或多个计算机可执行组件或模块。一般而言,程序模块包括但不限于执行特定任务或实施特定抽象数据类型的例程、程序、对象、组件和数据结构。本公开的方面可以用任意数量的这样的组件或模块的组织来实施。例如,本公开的方面不限于附图中所示和本文中描述的特定计算机可执行指令或特定组件或模块。本公开的其他示例可以包括具有比本文中所示和描述的更多或更少的功能的不同计算机可执行指令或组件。在涉及通用计算机的示例中,本公开的方面将通用计算机转换为专用计算设备、CPU、GPU、ASIC、片上系统(SoC)等,以用于在被配置为执行本文中描述的指令时供应新VM。
处理器114可以包括从诸如存储器112或I/O组件120的各种实体读取数据的任意数量的处理单元。具体地,处理器114被编程为执行用于实施本公开的方面的计算机可执行指令。指令可以由处理器、由计算设备100内的多个处理器、或者由客户端计算设备100外部的处理器来执行。在一些示例中,处理器114被编程为执行诸如在下面讨论并在附图中描述的流程图。此外,在一些示例中,处理器114表示用于执行本文中描述的操作的模拟技术的实施。例如,操作由模拟客户端计算设备100和/或数字客户端计算设备100执行。
呈现组件116向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等。本领域技术人员将理解并且领会计算机数据可以以多种方式呈现,诸如在图形用户界面(GUI)中可视地呈现、通过扬声器可听地、在计算设备100之间无线地、通过有线连接或以其他方式呈现。I/O端口118允许计算设备100逻辑地耦合到包括I/O组件120的其他设备,其中的一些可以是内置的。示例I/O组件120包括例如但不限于麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、打印机、无线设备等。
计算设备100可以使用到一个或多个远程计算机的逻辑连接经由网络组件124通过网络130通信。在一些示例中,网络组件124包括网络接口卡和/或用于操作网络接口卡的计算机可执行指令(例如,驱动器)。计算设备100和其他设备之间的通信可以通过任何有线或无线连接使用任何协议或机制来发生。在一些示例中,网络组件124可操作为在无线地使用短程通信技术(例如,近场通信(NFC)、BluetoothTM区域通信等)或其组合的设备之间使用传输协议在公共、私有或混合(公共和私有)上传送数据。网络组件124通过在网络130上的无线通信链路126和/或有线通信链路126a与云环境128(诸如图12中描绘的云计算环境)通信。通信链路126和126a的各种不同示例包括无线连接、有线连接和/或专用链路,并且在一些示例中,至少一部分通过互联网路由。
网络130可以包括任何计算机网络或其组合。可配置为作为网络130操作的计算机网络的示例包括但不限于无线网络;固定电话;电缆线;数字用户线路(DSL):光纤线路;蜂窝网络(例如,3G、4G、5G等);局域网(LAN);广域网(WAN):城域网(MAN);等。然而,网络130不限于耦合单独的计算机单元的连接。相比之下,网络130还可以包括在服务器或计算设备之间传输数据的子系统。例如,网络130还可以包括点对点连接、互联网、以太网、电气总线、神经网络或其他内部系统。这样的网络架构是公知的并且不需要在本文中深入讨论。
图2示出了用于机器学习用于正在针对VM规模集进行供应的新VM的正确软件映像的网络环境的框图。描绘的网络环境涉及通过网络230通信的客户端计算设备200和云环境228。参考图1,计算设备200表示任何数量的计算设备100,云环境228表示类似于云环境128或1200(下面在图12中提到)的云基础设施,并且网络230表示网络130。
计算设备200表示被配置为访问诸如网页、基于云的应用或其他这样资源的在线资源的任何类型的客户端计算设备100。例如,计算设备200可以是具有能够通过万维网访问网页的网络浏览器的智能电话。存在无数其他示例,并且除了一般性地声明计算设备200能够访问云环境228中的各种资源之外,不需要在本文中详细讨论。
云环境228包括各种服务器201,服务器201可以是作为专用的、关系的、虚拟的、私有的、公共的、混合的或其他基于云的资源的任何类型的服务器或远程计算设备。如所描绘的,服务器201包括物理服务器201a和虚拟服务器201n的混合,它们中的后者被设置为在云环境228内运行的VM。为了清楚起见,除非另有说明,否则这些物理服务器201a和虚拟服务器201n统称为“服务器201”。
与上述计算设备100类似,服务器201包括或能访问一个或多个处理器202、I/O端口204、通信接口206、计算机存储存储器208、I/O组件210和通信路径212。除了所述的任何服务器配置可以用于执行本文中引用的VM供应、VM元数据和更新服务之外,服务器拓扑和处理资源对于本领域技术人员来说通常是公知的,并且不需要在本文中详细讨论。
存储器208表示一定数量的计算机存储存储器和存储器设备,其存储用于机器学习在供应新VM时要使用的正确的OS和软件的可执行指令和数据。在一些示例中,存储器208存储标签数据库214、VM供应服务216、VM元数据服务218和更新服务220。这些组件一起操作,以供应新VM 222,以供添加到已经包括多个已有VM(被示出为已有VM 226a-c)的VM规模集224。为此,实施和示例分析已有VM 226a-c的元数据,以机器学习在供应新VM 222时要使用的OS或其他软件的正确标签,使得新VM 222与已有VM 226a-c匹配。在操作上,该机器学习由VM元数据服务218使用下面讨论的操作来执行,并且VM供应服务216使用从在已有VM226a-c上运行的当前的OS或软件的元数据机器学习的OS或软件来供应新VM 222。
标签数据库214是存储不同版本的软件(例如,OS)、这样的软件的安全补丁以及用于VM使用该软件的操作设置(例如,注册表键)的仓库。用于新VM的OS和其他软件的映像被存储为标签数据库214中的不同“标签”。为了说明这点,示出了两个标签A 230和B 232。然而,在操作中,许多不同的标签可以被存储并且是可用的。
在描绘的示例中,标签A 230和B 232包括相同的OS映像(OS映像A 234)以及不同的安全补丁和操作设置。如所示的,标签A 230是OS映像A 234、安全补丁A 236和注册表键A238的组合。标签B是OS映像A 234、安全补丁B 242和注册表键B 244的组合。例如,OS映像A234可以是MICROSOFTOS的特定版本(例如,/>版本2004)。然而,两个标签A 230和B 232包括它们各自的安全补丁(安全补丁A 236和B 234)以及特定的操作设置(被示出为注册表键A 238和注册表键B 244)。安全补丁A 236是用于特定版本的OS映像A 234(例如,/>版本2004)的一个安全补丁(例如,2020年10月安全补丁),并且安全补丁B 242是与安全补丁A 236不同的安全补丁(例如,2020年12月安全补丁)。
附加地或备选地,在附图中示出为注册表键的操作设置在两个标签A 230和B 232之间不同。如所示的,标签A 230包括OS映像A 234、安全补丁A 236以及一个或多个操作设置(被描述为注册表键A238)。例如,OS映像A 234可以是特定版本的OS(例如,/>版本2004),安全补丁A 236可以是特定版本的/>OS的特定的月安全补丁(例如,2020年10月安全补丁),并且注册表键A 238可以是由特定版本的OS和/或特定安全补丁使用的特定字母数字项。标签B 232包括相同的OS映像A234,但是包括不同的安全补丁B 242和操作设置244。描绘的示例示出了分别包括在不同标签A 230和B 232中的两个不同的注册表键A238和注册表键B 244。不同的操作参数可以被使用并且对于存储的标签来说是唯一的,包括例如但不限于注册表键、活动或禁用的服务器角色的集合、传输层安全性(TLS)设置、容器版本、特定的SQL服务器补丁、特定的软件补丁(例如,MICROSOFT/>SQL/>等),或用于在供应的VM中安装、运行和/或操作所公开的软件的任何其他操作设置。
随着时间的推移,标签改变、变得过时和/或被从标签数据库214中删除。标签A230上的大的点线“X”表示标签A 230已被从标签数据库214中删除——而标签B 232保留。该删除可能是安全补丁A236或操作设置(注册表键238)变得过时的结果。标签B 232被创建并且被保存在标签数据库214中以替换标签A 230,例如,因为标签B 232包括最新的或新的安全补丁或操作参数。这仅是标签被删除的一个示例。删除标签的另一个原因是OS映像A234或特定软件映像被新的OS(或软件)映像替换。例如,版本2004可以被新版本的/>OS(例如,/>版本20H2)替换。这个新的OS或软件映像可以由字母数字的库存单位(socket-keeping unit,SKU)来引用。例如,版本20H2具有与/>版本2004SKU(例如,123.43.1.1110)不同的SKU(例如,123.43.1.1111)。因此,标签数据库214的各种标签中的特定OS和软件映像与它们自己的SKU相关联。
所公开的操作系统、安全补丁和操作参数仅作为示例供应,并且不意味着限制所有实施。此外,虽然在标签数据库214中仅示出了两个标签,但是事实上,标签数据库214实际上存储可用于提高VM的不同软件映像、安全补丁和/或操作设置的许多不同标签。
VM规模集224包括一个或多个已有VM,被示出为已有VM 226a-c。由于多种原因,新VM 222被安排为被供应并添加到VM规模集224。为了正常工作,新VM 222可能需要被供应有与已有VM 226a-c相同的OS和软件。然而,如所示的,VM规模集224的已有VM 226a-c利用在供应新VM 222之前已从标签数据库214中删除的标签A 230软件而被创建(或供应)。已有VM226a-c(也被供应有现已删除的标签A 230)包括由更新服务220供应的一个或多个更新。具体地,更新服务220是自动更新在VM上运行的软件的服务。更新服务220的示例包括但不限于服务器更新服务(或“WSUS”);不过,可以使用任何其他更新服务。为了表示最初供应的标签A 230已被更新,被示出为“U1”的更新块被示出在每个已有VM 226a-c上。这表示标签A 230已经以某种方式更新,诸如用新的安全补丁B 242、新的操作设置244(例如,注册表键)等。总之,已有VM 226a-c最初利用标签A 230而被设置,但是此后已利用更新U1进行了更新。
为了清楚起见,在本公开中仅描述了一个更新,但是实施和示例可以在机器学习要用于新VM 222的正确的标签B 232中搜索、分析和使用对已有VM 226a-c的多个更新。因此,本文中引用的更新U1考虑了任何数量的更新(例如,U2、U3、U4等)。来自任何这些更新(或其组合)的软件可以按照与U1中描述的软件相同的方式使用。
在一些实施和示例中,VM元数据服务218分析在要添加新VM 222的VM规模集224的已有VM 226a-c上运行的软件,并且标识已添加的更新Ul。VM元数据服务218使用这些更新来标识不同的标签,以在供应新VM 222时使用,从而在操作上匹配已有VM 226a-c。例如,U1可以指示已有VM 226a-c正在用OS映像A 234和安全补丁B242进行操作。当到标签A 230的链接被断开时,VM元数据服务218在标签数据库214中搜索具有与U1更新相同的配置的另一个标签,在这种情况下是不同的安全补丁B 242。该搜索揭示了除了更新的安全补丁B 242和新的操作设置244之外,标签B 232对标签A 230镜像。VM元数据服务218可以认为标签B232是现在删除的标签A 230的操作替代,从而有效地机器学习新标签,以用于基于更新U1的内容供应新VM 222。
因此,当已有VM 226a-c的标签A 230被断开或删除时,VM供应服务216在尝试创建新VM 222之后不再返回错误。相比之下,VM供应服务216被设置有标签B 232并且能够创建新VM 222以供添加到VM规模集224。在一些实施中,所公开的对新VM 222的等效标签的机器学习和供应新VM 222被自动执行,而无需用户干预。这种自动化极大地减少了用户在供应新VM时的麻烦,减少了因生成无法正确供应的VM而造成的浪费处理,并且几乎无需获取客户服务来供应新VM。
用于机器学习适当标签以使用并相应地供应新VM 222的附加细节和操作在图3-6中进一步示出。这些图3-6以顺序的方式呈现,以示出不同顺序时间处的不同操作,其被示出为假设时间1-7。虽然这些图3-6共同展示了顺序步骤,但是本文中讨论的实施和示例不限于任何特定的操作顺序。例如,公开的操作可以不按所描述的顺序、并行地或其组合来执行。
图3示出了VM供应服务216在第一时间(时间1)最初创建VM规模集224的已有VM226a-c的框图。在时间1,VM供应服务216通过访问标签数据库214并且检索标签A 230来执行创建具有三个VM 226a-c的VM规模集224的请求。VM供应服务216创建(例如,实例化)具有标签A 230的三个VM 226a-c。在时间1期间,到标签A 230的连接是起作用的,并且标签230尚未被删除或以其他方式改变。
图4示出了更新服务220在时间1之后的第二时间(时间2)在VM规模集224的已有VM226a-c上传输和安装更新UI的框图。更新服务220在已有VM 226a-c上安装安全补丁B 242。例如,更新服务WSUS可以为在已有VM 226a-c上运行的OS安装特定的安全补丁。这样的更新可以自动执行并且更新最初用于供应已有VM 236a-c的标签A 230的软件。因此,在时间2,VM规模集224包括由更新的U1修改的具有标签A 230的已有VM 226a-c。
图5示出了示出从云环境228中的标签数据库214中删除或移除标签A 230的框图。如所描绘的,标签A 230在时间3处被删除,时间3在先前讨论的时间1和2之后。在所示的示例中,因为标签A 230包括过时的安全补丁A 236和/或操作设置238(例如,注册表键),所以标签A 230被删除。并且标签B 232被生成并且被存储在标签数据库214中。标签B 232包括与标签A 230相同的OS映像A 234,以及不同的安全补丁B 242和操作设置244(例如,注册表键)。这仅是一个示例。标签可能因多种原因而被删除,例如,用于软件映像的新SKU、新安全补丁、新操作设置等。
图6示出了示出通过添加新VM 222来扩大VM规模集224的请求600的框图。在一些实施和示例中,该请求在时间4处接收,时间4在先前讨论的时间1-3之后。针对新VM的请求600可以由客户端手动请求或自动生成以扩大VM规模集224——例如,基于需要增加资源使用(例如CPU、GPU、ASIC、存储器或网络流量)的应用。VM供应服务216接收请求600并且尝试检索用于供应VM规模集224的已有VM 226a-c的标签A 230。同样,标签A 230已从标签数据库214中删除或以其他方式移除,这在传统上会产生需要提示给客户端的错误——客户端又可能必须手动供应新VM 222或寻求客户支持。在标签A 230被删除的情况下,实施和示例期望自动地(无需用户干预)机器学习正确的标签B 232,以在供应新VM 222时使用。
图7示出了示出VM元数据服务218分析在已有VM 226a-c上运行的标签A 230和更新U1的软件的元数据以便随后在标签数据库214中找到新标签以用于供应所请求的新VM222的框图。在一些实施和示例中,该分析在时间5处执行,时间5在先前讨论的时间1-4之后。在操作中,VM元数据服务218分析与更新U1相关联的元数据,以标识安全补丁B 242正在运行,并且分析与标签A 230相关联的元数据,以标识其也在已有VM 226a-c上运行。该元数据可以指示与安全补丁B 242和标签A 230的各个部分(例如,OS映像234、安全补丁236、操作设置238)相关联的特定SKU或其他字母数字标识符。这样的元数据的其他示例包括但不限于OS的特定构建号、构建的修订、构建的更新、构建版本、版本号、容器标签等。这些仅是元数据的一些示例,这些元数据可以指示标签的不同软件、更新和操作设置。任何更新的软件可以类似地由VM元数据服务218从其相关联的元数据中标识。一旦标识出更新U1和原始标签A 230——以及其组成软件,VM元数据服务218则使用该信息来定位标签数据库214中在操作上等效的标签。
图8示出了VM元数据服务218基于正在VM规模集的已有VM 226a-c上运行的当前软件(标签A 230和更新U1)要用于供应新VM 222的不同标签B 232的框图224。在一些实施和示例中,该操作在时间6执行,时间6在先前讨论的时间1-5之后。VM元数据服务218在标签数据库214中搜索或提交搜索请求,以寻找在操作上等效于标签A 230的软件标签以及根据其分析的元数据在已有VM 226a-c上标识的更新U1。因为标签B 232包括也在标签A 230中的OS映像A 234以及作为更新U1的一部分被包括的安全补丁B 242,所以这将VM元数据服务218引导至标签B 232。因此,VM元数据服务218使用已有VM 226a-c的元数据来标识标签B232,标签B 232然后可以用于供应所请求的新VM 222。
一些实施通过仅搜索更新U1的软件来定位标签B 232。例如,更新U1包括安全补丁B 242,其在标签B 232中被标识。其他实施和示例搜索(1)更新U1中的软件和(2)最初在已有VM 226a-c的供应中所使用的标签A 230的软件的组合。例如,因为标签B 232具有更新U1的安全补丁B 242和标签A 230的OS映像A 234二者,所以更新U1的安全补丁B 242和标签A230的OS映像A 234可以用于标识标签B 232。
在又一示例中,多个更新U1、U2和U3可能已被下载到已有VM 226a-c,其中两个包括OS映像A 234,其中的后者包括用于OS映像的新SKU(例如,OS映像B)。这些更新U1-U3还可能包括不同的安全补丁。在这种情况下,VM元数据服务218从其各自的元数据标识不同的OS映像和安全补丁,并且在标签数据库214中定位包括最新OS映像(例如,未示出的OS映像B)和安全补丁的标签,然后使用该标签(例如,未示出的标签C)来供应新VM 222。换句话说,尽管已有VM 226a-c最初供应有先前的OS映像A 234,但是VM元数据服务218机器学习OS映像B和来自更新的最新安全补丁将被用于新VM 222。
已经描述了一些替代示例,注意力回到标识标签B 232的VM元数据服务218的运行示例。
图9示出了VM供应服务216向新VM 222供应使用已有VM 226a-c的元数据标识的新标签B 232的框图。在一些实施和示例中,该操作在时间7处执行,时间7在先前讨论的时间1-6之后。VM供应服务216被配置为使用机器学习的标签B 232来创建新VM 222的实例,机器学习的标签B 232被确定为在操作上等效于在已有VM 226a-c上运行的实例。如所示的,新VM 222被供应有标签B 232,与标签A 230相比,标签B 232包括OS映像A 234和安全补丁B242二者。因此,新VM 222和已有VM 226a-c二者包括OS映像A 234和最新的安全补丁B 242,从而使新VM 222与VM规模集224的已有VM 226a-c兼容。
图10是示出用于使用OS映像和对已有VM的更新的一部分来供应用于VM规模集的新VM的操作1000的流程图。如1002处所示,接收将新VM添加到VM规模集的请求。该请求可以由用户手动发起,或者由规定扩大或缩小VM规模集的规则自动发起,以适应云资源需求的激增。如1004处所示,先前讨论的VM元数据服务分析在已有VM上运行的软件的元数据。这样做是为了标识指定由已有VM执行的OS映像的第一标签。通过分析已有VM的元数据,VM元数据服务能够标识用于创建已有VM的第一标签(如1006处所示)以及已经安装在已有VM上的任何更新软件(例如,安全补丁、操作设置等)(如1008处所示)。
如1010处所示,VM元数据服务检查标签数据库,以确定用于创建已有VM的第一标签是否仍然可用。如果是,则如1012处所示,利用该标签来供应新VM。如果否,则如1014处所示,VM元数据服务定位包括软件更新的至少一部分和第一标签的OS映像的第二标签。例如,如果软件更新包括特定安全补丁,则VM元数据服务搜索具有该特定软件更新的标签。如1016处所示,然后向新VM供应第二标签,其包括第一标签的OS映像和在已有VM上运行的软件更新的一部分。
图11是示出用于使用软件映像和对已有VM的更新的一部分来供应用于VM规模集的新VM的操作1100的流程图。如1102处所示,接收将新VM添加到VM规模集的请求。如1104处所示,VM元数据服务分析在已有VM上运行的软件的元数据。这样做是为了标识指定由已有VM执行的特定软件(例如,特定应用)的第一标签。通过分析已有VM的元数据,VM元数据服务能够标识用于创建已有VM的第一标签(如1106处所示)以及已经安装在已有VM上的任何更新软件(例如,安全补丁、操作设置等)(如1105处所示)。
如1010处所示,VM元数据服务检查标签数据库以确定用于创建已有VM的第一标签是否仍然可用。如果是,则如1012处所示,利用该标签来供应新VM。如果否,则如1114处所示,VM元数据服务定位包括软件更新的至少一部分和第一标签的软件映像的第二标签。例如,如果软件更新包括特定安全补丁,则VM元数据服务搜索具有该特定软件更新的标签。如1116处所示,然后向新VM供应第二标签,其包括第一标签的软件映像和在已有VM上运行的软件更新的一部分。
云计算环境示例
图12示出了根据一些所公开的实施和示例的云计算环境1200的一个示例的框图。云计算环境1200包括公共网络1202、私有网络1204和专用网络1206。公共网络1202可以是例如计算资源的基于公共云的网络。私有网络804可以是计算资源的私有企业网络或基于私有云的网络。专用网络1206可以是计算资源的第三方网络或专用的基于云的网络。
混合云1208可以包括公共网络1202、私有网络1204和专用网络1206的任意组合。例如,专用网络1206可以是可选的,并且混合云1208由公共网络1202和私有网络1204组成。
公共网络1202可以包括被配置为根据结构控制器1218托管和支持操作(包括分布式应用的任务)的数据中心。应当理解和领会的是,图12中所示的数据中心1214和数据中心1216可以仅仅是用于容纳一个或多个分布式应用的合适实施的示例,并且并不意在暗示对本文中公开的示例的使用或功能的范围的任何限制。数据中心1214和数据中心1216也不应被解释为具有与任何单个资源、资源组合、服务器(例如,服务器1220和1224)组合、节点(例如,节点1232和1234)组合或一组应用程序编程接口(API)相关的任何依赖性或要求,以访问资源、服务器和/或节点。
数据中心1214示出了包括诸如服务器1220和1224的多个服务器的数据中心。结构控制器1218负责自动管理服务器1220和1224并且在数据中心1214内分配任务和其他资源。举例来说,结构控制器1218可以依赖于服务模型(例如,由拥有分布式应用的客户设计)来供应关于如何、在何处以及何时配置服务器1222以及如何、在何处以及何时放置应用1226和其上的申请1228的指导。分布式应用的一个或多个角色实例可以被放置在数据中心1214的服务器1220和1224中的一个或多个上,其中一个或多个角色实例可以表示在分布式应用中参与的软件、组件程序或角色实例中的部分。在其他示例中,角色实例中的一个或多个可以表示分布式应用可访问的存储数据。
数据中心1216示出了包括诸如节点1232和节点1234的多个节点的数据中心。一个或多个虚拟机可以在数据中心1216的节点上运行,诸如以节点1234的虚拟机1236为例。尽管图12描绘了数据中心1216的单个节点上的单个虚拟节点,但是根据本公开的说明性实现方式和示例,可以在数据中心的任意数量的节点上实现任意数量的虚拟节点。一般而言,基于放置在分布式应用上的需求(例如,处理负载量),将虚拟机1236分配给分布式应用或服务应用的角色实例。如本文中使用的,短语“虚拟机”或VM并不意味着限制,并且可以指代由处理单元执行以构成分配到其的角色实例的功能的任何软件、应用、操作系统或程序。此外,VM 1236可以包括数据中心1216内的处理能力、存储位置和其他资产,以适当地支持所分配的角色实例。
在操作中,虚拟机被动态地在数据中心的第一节点和第二节点上分配资源,并且端点(例如,角色实例)被动态地放置在虚拟机上,以满足当前处理负载。在一种情况下,结构控制器1230负责自动管理在数据中心1216的节点上运行的虚拟机,并且负责将角色实例和其他资源(例如,软件组件)放置在数据中心1216内。举例来说,结构控制器1230可以依赖于服务模型(例如,由拥有服务应用的客户设计的服务模型)来供应关于如何、在何处以及何时配置诸如VM 1236的虚拟机以及如何、在何处以及何时放置在其上的角色实例的指导。
如上所述,虚拟机可以在数据中心的一个或多个节点内动态地建立和配置。如本文中所示的,节点1232和节点1234可以是任何形式的计算设备,诸如以个人计算机、台式计算机、膝上型计算机、移动设备、消费电子设备、服务器等为例。VM机器1236,同时托管为支持数据中心1216的其他租户而划分的其他虚拟机,诸如内部服务1238、托管服务1240和存储器1242。通常,角色实例可以包括不同客户拥有的不同服务应用的端点。
在实施和示例中,标签数据库214被存储在存储器1242中。备选地,标签数据库214可以被存储在私有网络1204或专用网络1206中,如所示的虚线描绘所指示的。
在一些实施和示例中,托管服务1240包括先前讨论的VM供应服务216和VM元数据服务218。这些服务操作为创建、维护和查询代码数据库1228,代码数据库1228可以被存储和托管在公共网络1202、私有网络1204、或专用网络1206、以及它们的任何组合中。
通常,节点中的每个包括或链接到某种形式的计算单元(例如,CPU、GPU、ASIC等),以支持在其上运行的组件的操作。如本文中所使用的,短语“计算单元”通常指的是具有处理能力和存储存储器的专用计算设备,其支持作为其上的软件、应用和计算机程序的执行基础的操作软件。在一种情况下,计算单元配置有有形的硬件元件或机器,它们是集成的或可操作地耦合到节点,以使每个设备能够执行各种过程和操作。在另一种情况下,计算单元可以包括耦合到节点中的每个所容纳的计算机可读介质(例如,计算机存储介质和通信介质)的处理器(未示出)。
驻留在节点上的实例的角色可以是支持服务应用的操作,并且因此它们可以经由API互连。在一种情况下,这些互连中的一个或多个可以经由诸如公共网络1202的网络云建立。网络云用于互连诸如角色实例的资源,这些资源可以分布在各种物理主机上,诸如节点1232和1234。此外,网络云促进通过连接在数据中心1216中运行的服务应用的角色实例的通道上的通信。举例来说,网络云可以包括但不限于一个或多个通信网络,诸如LAN和/或广域网WAN。这样的通信网络在办公室、企业范围的计算机网络、内联网和互联网中是常见的,因此不需要在本文中详细讨论。
其他示例
一些示例涉及一种用于供应新VM以添加到包括一个或多个已有VM的VM规模集的方法,诸如由操作1000和1100所示。该方法包括:分析在一个或多个已有VM上运行的软件的元数据,以标识第一标签,该第一标签指定由一个或多个已有VM正在执行的OS的软件映像的第一标签(1004和1104);根据元数据标识安装在一个或多个已有VM上的软件更新(1008和1108);定位包括软件更新和在第一标签中被指定的OS的映像的第二标签(1014和1114);基于根据元数据定位的第二标签,利用第二标签供应新VM(1016和1116)。即使需要与用于供应一个或多个已有VM的原始标签不同的标签,这种方法也会在无需用户干预的情况下自动供应新VM。
在一些示例中,软件更新包括OS映像234的安全补丁B 242。使用安全补丁提供在没有用户干预的情况下定位第二标签的方式。
在一些示例中,软件更新B 242不同于作为第一标签230的一部分的另一软件更新(安全补丁A 2362)。这提供了灵活性,因为该方法能够机器学习要使用的正确的第二标签。
在一些示例中,第二标签234包括与第一标签234的安全更新(安全补丁A 236)不同的安全更新(安全补丁B 242)。该安全更新提供了一种在没有用户干预的情况下定位第二标签的方式。
其他示例还包括用于以下的操作:确定具有OS(234)的软件映像的第一标签A 230已被从标签数据库214中删除;在OS(234)的软件映像已被删除的情况下执行对与第一标签230相关的第二标签B232的定位(例如,图6中的虚线)。即使在第一标签被删除的情况下,这也允许自动设置新VM。
其他示例还包括用于以下的操作:基于第二标签B 232的安全补丁B 242比与第一标签A 230相关联的另一个安全补丁A 236新,选择第二标签B 232来供应新VM 222。
在一些示例中,一个或多个已有VM 226a-c的元数据指示一个或多个已有VM226a-c的操作设置(例如,注册表键B 244)。该操作设置提供了另一种在无需用户干预的情况下定位第二标签的方式。
在一些示例中,操作设置包括由一个或多个已有VM 226a-c使用的一个或多个注册表键B 244。注册表键提供了另一种在无需用户干预的情况下定位第二标签的方式。
在一些示例中,操作设置包括激活或禁用的一个或多个服务器角色。服务器角色供应了另一种在无需用户干预的情况下定位第二标签的方式。
在一些示例中,一个或多个已有VM的元数据包括指示OS的库存单元(SKU)。SKU提供了另一种在无需用户干预的情况下定位第二标签的方式。
又一示例涉及一个或多个服务器201,服务器被配置为通过新虚拟机(VM)以添加到包括至少一个已有VM的VM规模集。一个或多个服务器201包括:存储器208,包括可执行指令(VM元数据服务218),可执行指令用于标识用于供应一个或多个已有VM的软件映像的第一标签,并且机器学习软件映像的第二标签;至少一个处理器202被编程为:分析在一个或多个已有VM上运行的软件的元数据,以标识指定由一个或多个已有VM正在执行的软件映像的第一标签(1004和1104);确定具有软件映像的第一标签已被从标签数据库中删除(1010和1110);从元数据中标识安装在一个或多个已有VM上的软件更新(1008和1108);定位第二标签,第二标签包括软件更新和第一标签中指定的软件映像,以用于供应新VM(1014和1114);基于从元数据中定位的第二标签,为新VM供应第二标签。即使需要与用于供应一个或多个已有VM的原始标签不同的标签,这样的服务器也会在无需用户干预的情况下自动供应新VM。
在一些示例中,至少一个处理器202还被编程为:标识从标签数据库中删除的第一标签(例如,图6和图8中所示的虚线),并且至少部分地基于从标签数据库中删除的第一标签来定位第二标签(例如,图8中的“定位标签B”)。当已有VM上使用的标签被删除时,这允许服务器通过机器学习正确的标签以用于新VM。
在一些示例中,一个或多个已有VM的元数据指示包括由一个或多个已有VM使用的一个或多个注册表键的操作设置。操作设置供应了另一种在无需用户干预的情况下定位第二标签的方式。
在一些示例中,第二标签包括与一个或多个注册表键A 238不同的注册表键B244。注册表键供应另一种在无需用户干预的情况下定位第二标签的方式。
又一示例涉及一个或多个计算机存储存储器208设备,所述计算机存储存储器设备包括有可执行操作,当由一个或多个处理器202执行时,可执行操作被配置为执行用于为包括一个或多个已有VM 226a-c的VM规模234以供应新VM 222的操作。指令可执行,以用于执行包括以下的操作:分析在一个或多个已有VM上运行的软件的元数据,以标识指定由一个或多个已有VM执行的软件映像的第一标签(1004和1104);确定到具有软件映像的第一标签的路径被断开(例如,图6和图8中的被破坏的路径);从元数据中标识安装在一个或多个已有VM上的软件更新(1008和1108);基于从元数据标识的第二标签来定位包括软件更新和在第一标签中指定的软件映像的第二标签,以用于供应新VM(1014和1114);基于从元数据定位的第二标签向新VM供应第二标签(1016和1118)。即使需要与用于供应一个或多个已有VM的原始标签不同的标签,这样的操作也会在无需用户干预的情况下自动供应新VM。
在一些示例中,软件更新包括不在第一标签A 230中的安全补丁B 242。安全补丁是在无需用户干预的情况下定位第二标签的另一种方式。
在一些示例中,软件更新包括不在第一标签A 230中的操作设置(例如,注册表键B244)。操作设置提供了在无需用户干预的情况下定位第二标签的另一种方式。
在一些示例中,到具有软件映像的第一标签A 230(例如,标签A 230)的路径由于第一标签已被改变而被破坏。这允许当已有VM 226a-c上使用的标签被删除时为新VM 222机器学习正确的标签。
其他示例包括用于基于第二标签的安全补丁比与第一标签相关联的另一个安全补丁新来选择第二标签,以供应新VM的操作。
在一些示例中,一个或多个已有VM 222的元数据指示包括由一个或多个已有VM226a-c使用的一个或多个注册表键A 238的操作设置,并且其中第二标签B 232包括与一个或多个注册表键A 238不同的注册表键B 244。操作设置提供另一种在无需用户干预的情况下定位第二标签的方式。
虽然已经根据各种示例及其相关操作描述了本公开的各方面,但是本领域技术人员将理解,来自任何数量的不同示例的操作的组合也在本公开的各方面的范围内。
本文中所示和描述的本公开的示例中的操作的执行或性能的顺序不是必需的,并且可以在各种示例中以不同的顺序方式来执行。例如,预期的是,在另一操作之前、同时或之后执行或进行特定操作在本公开的各方面的范围内。
当介绍本公开的各方面或其示例的要素时,单数形式意在表示存在一个或多个要素。术语“包括”、“包括”和“具有”意在是包容性的,并且意味着可以存在除了所列出的要素之外的另外的要素。术语“示例性”意在表示“……的示例”。短语“以下中的一个或多个:A、B和C”意味着“A的至少一个和/或B的至少一个和/或C的至少一个”。
已经详细描述了本公开的各方面,显然,在不脱离如所附权利要求中限定的本公开的各方面的范围的情况下,修改和变化是可能的。由于在不脱离本公开的各方面的范围的情况下可以对以上构造、产品和方法进行各种改变,因此意在于,以上描述中包括的以及附图中示出的所有内容应被解释为说明性的而非限制性的意义。

Claims (15)

1.一种用于供应新虚拟机(VM)的方法,所述新VM用于添加到包括至少一个已有VM的VM规模集,所述方法包括:
分析在所述已有VM上运行的软件的元数据,以标识第一标签,所述第一标签指定由所述已有VM正在执行的操作系统(OS)的软件映像;
根据所述元数据标识被安装在所述已有VM上的软件更新;
根据所述元数据定位第二标签,所述第二标签包括所述软件更新和在所述第一标签中被指定的所述OS的所述映像;以及
基于根据所述元数据定位的所述第二标签,利用所述第二标签供应所述新VM。
2.根据权利要求1所述的方法,其中所述软件更新包括对所述OS的安全补丁。
3.根据权利要求2所述的方法,其中所述软件更新不同于作为所述第一标签的部分的另一软件更新。
4.根据权利要求1至3中任一项所述的方法,其中所述第二标签包括与所述第一标签的安全更新不同的安全更新。
5.根据权利要求1至4中任一项所述的方法,还包括:
确定具有所述OS的所述软件镜像的所述第一标签已被从标签数据库中删除;以及
在具有所述OS的所述软件映像的所述第一标签已被删除的情况下,执行对所述第二标签的所述定位。
6.根据权利要求1至5中任一项所述的方法,还包括:基于所述第二标签的所述安全补丁比与所述第一标签相关联的另一安全补丁更新,选择所述第二标签来供应所述新VM。
7.根据权利要求1至6中任一项所述的方法,其中所述已有VM的所述元数据指示所述已有VM的操作设置。
8.根据权利要求1至7中任一项所述的方法,其中所述操作设置包括由所述已有VM使用的一个或多个注册表键。
9.根据权利要求1至8中任一项所述的方法,其中所述操作设置包括一个或多个服务器角色是激活的或被禁用的。
10.根据权利要求1至9中任一项所述的方法,其中所述已有VM的所述元数据包括指示所述OS的库存单元(SKU)。
11.一个或多个服务器,被配置为供应新虚拟机(VM)以添加到包括至少一个已有VM的VM规模集,所述一个或多个服务器包括:
存储器,被实现为具有可执行指令,所述可执行指令用于标识用于供应所述已有VM的软件映像的第一标签,并且用于机器学习所述软件映像的第二标签;以及
至少一个处理器,被编程为:
分析在所述已有VM上运行的软件的元数据,以标识第一标签,所述第一标签指定由所述已有VM正在执行的软件映像,
确定具有所述软件映像的所述第一标签已被从标签数据库中删除,
根据所述元数据标识安装在所述一个或多个已有VM上的软件更新,
定位用于供应所述新VM的第二标签,所述第二标签包括所述软件更新和在所述第一标签中被指定的软件映像,
基于根据所述元数据定位的所述第二标签,利用为所述第二标签供应所述新VM。
12.根据权利要求11所述的一个或多个服务器,其中所述至少一个处理器还被编程为:
标识被从标签数据库中删除的所述第一标签,以及
至少部分地基于从所述标签数据库中被删除的所述第一标签来定位所述第二标签。
13.根据权利要求11所述的一个或多个服务器,其中所述已有VM的元数据指示包括由所述已有VM使用的一个或多个注册表键的操作设置。
14.根据权利要求12至13中的任一项所述的一个或多个服务器,其中所述第二标签包括与所述一个或多个注册表键不同的注册表键。
15.一个或多个计算机存储存储器设备,被实现为具有可执行操作,当由一个或多个处理器执行时,所述可执行操作被配置为执行用于针对包括至少一个已有VM的VM规模供应新VM的操作,所述操作包括:
分析在所述已有VM上运行的软件的元数据,以标识第一标签,所述第一标签指定由所述已有VM执行的软件映像;
确定到具有所述软件映像的第一标签的路径断开;
根据所述元数据标识安装在所述一个或多个已有VM上的软件更新;
在确定到具有所述软件映像的所述第一标签的路径断开的情况下,定位包括所述软件更新和在所述第一标签中被指定的所述软件映像的第二标签,以用于基于根据所述元数据标识的第二标签来供应所述新VM;以及
基于根据所述元数据定位的所述第二标签,利用所述第二标签来供应所述新VM。
CN202280021298.7A 2021-03-14 2022-03-02 Vm集的自动更新 Pending CN117015759A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/200,902 US11941125B2 (en) 2021-03-14 2021-03-14 Automatic update of VM sets
US17/200,902 2021-03-14
PCT/US2022/018408 WO2022197440A1 (en) 2021-03-14 2022-03-02 Automatic update of vm sets

Publications (1)

Publication Number Publication Date
CN117015759A true CN117015759A (zh) 2023-11-07

Family

ID=80933174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280021298.7A Pending CN117015759A (zh) 2021-03-14 2022-03-02 Vm集的自动更新

Country Status (4)

Country Link
US (1) US11941125B2 (zh)
EP (1) EP4309032A1 (zh)
CN (1) CN117015759A (zh)
WO (1) WO2022197440A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12111828B2 (en) * 2021-10-15 2024-10-08 Oracle International Corporation Method and system to implement error handling with fine-grained SQL hints

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9697019B1 (en) * 2006-10-17 2017-07-04 Manageiq, Inc. Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine
US8458695B2 (en) * 2006-10-17 2013-06-04 Manageiq, Inc. Automatic optimization for virtual systems
US20170070563A1 (en) * 2008-08-11 2017-03-09 Ken Sundermeyer Data model for home automation
US9141381B2 (en) 2008-10-27 2015-09-22 Vmware, Inc. Version control environment for virtual machines
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
CN103988177B (zh) * 2011-12-12 2017-02-22 国际商业机器公司 基于维护寄存器的离线虚拟机的维护
US8893147B2 (en) * 2012-01-13 2014-11-18 Ca, Inc. Providing a virtualized replication and high availability environment including a replication and high availability engine
US9507586B2 (en) * 2012-10-05 2016-11-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virtual machine based controller and upgrade mechanism
US9170834B2 (en) 2012-10-31 2015-10-27 Google Inc. Metadata-based virtual machine configuration
US9600262B2 (en) 2013-09-19 2017-03-21 International Business Machines Corporation System, method and program product for updating virtual machine images
CN104679527B (zh) * 2013-11-26 2017-12-01 中国银联股份有限公司 虚拟机镜像离线升级方法
US9641406B1 (en) 2013-12-18 2017-05-02 Amazon Technologies, Inc. Updating virtual machine images
US9740472B1 (en) 2014-05-15 2017-08-22 Nutanix, Inc. Mechanism for performing rolling upgrades in a networked virtualization environment
JP5904514B1 (ja) * 2014-10-28 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
US9710253B2 (en) * 2015-04-16 2017-07-18 Commvault Systems, Inc. Managing a software-patch submission queue
US9996381B1 (en) 2016-03-29 2018-06-12 Amazon Technologies, Inc. Live application management workflow using metadata capture
US11385919B1 (en) * 2016-07-12 2022-07-12 Amazon Technologies, Inc. Machine image launch system
US11086874B2 (en) * 2016-08-29 2021-08-10 Vmware, Inc. Management of a virtual infrastructure via an object query language
US11025483B1 (en) * 2016-09-27 2021-06-01 Amazon Technologies, Inc. Fault tolerant virtual private network endpoint node
US10083059B1 (en) 2018-03-19 2018-09-25 Capital One Services, Llc Method and system of hydrating of virtual machines
US11461082B2 (en) * 2018-08-02 2022-10-04 Citrix Systems, Inc. Systems and methods for managing releases of global services in a controlled manner
US11429454B2 (en) * 2020-03-30 2022-08-30 Citrix Systems, Inc. Cloud resource utilization management

Also Published As

Publication number Publication date
EP4309032A1 (en) 2024-01-24
US11941125B2 (en) 2024-03-26
US20220292197A1 (en) 2022-09-15
WO2022197440A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
CN107967159B (zh) 一种配置文件应用的方法以及服务器
US8443361B2 (en) Systems and methods for tracking a history of changes associated with software packages in a computing system
US8316224B2 (en) Systems and methods for tracking a history of changes associated with software packages and configuration management in a computing system
US10715594B2 (en) Systems and methods for update propagation between nodes in a distributed system
US10305731B2 (en) System and method for provisioning cloud services across heterogeneous environments using partitioned provisioning instructions stored on a configuration management server
US10673944B2 (en) Synchronization of components in heterogeneous systems
EP1788493A1 (en) Detecting changes in data
US7774771B2 (en) Method and system for managing and organizing software package installations
US11586430B2 (en) Distribution and execution of instructions in a distributed computing environment
US10452387B2 (en) System and method for partition-scoped patching in an application server environment
US10338910B2 (en) Multi-tenant upgrading
US12056015B2 (en) Application template for application consistent backup and restore of database applications in kubernetes
US11907708B2 (en) Application and infrastructure template management to easily create secure applications for enterprises
CN110134489A (zh) 应用迁移方法及装置、系统、存储介质、应用上云工具
US10768961B2 (en) Virtual machine seed image replication through parallel deployment
CN117015759A (zh) Vm集的自动更新
US11474845B2 (en) System and method for versioned script management
CN113296891A (zh) 基于平台的多场景知识图谱处理方法及装置
CN112667259A (zh) 一种sdn控制器版本升级方法、设备及介质
KR20160025282A (ko) 클라이언트 단말에 대한 사용자 맞춤형 동기화 서비스 제공 방법 및 시스템
US11748211B2 (en) Automatic update of network assets using gold images
US20150019698A1 (en) Non-invasive upgrades of server components in cloud deployments
US9760585B2 (en) Objectclass versioning
US20230236860A1 (en) Automatic management of application specific agents in a virtual machine using an application management agent
CN109101253A (zh) 云计算系统中主机的管理方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination