CN114391136A - 增强的虚拟机镜像管理系统 - Google Patents

增强的虚拟机镜像管理系统 Download PDF

Info

Publication number
CN114391136A
CN114391136A CN202080061825.8A CN202080061825A CN114391136A CN 114391136 A CN114391136 A CN 114391136A CN 202080061825 A CN202080061825 A CN 202080061825A CN 114391136 A CN114391136 A CN 114391136A
Authority
CN
China
Prior art keywords
image
product image
updated
updated product
risk level
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
CN202080061825.8A
Other languages
English (en)
Inventor
J·丁
蔡剑枫
P·K·哈伍德
N·G·阿尔费奥
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 CN114391136A publication Critical patent/CN114391136A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

本公开提供了用于在数据管道内使对更新的VM产品镜像的构建和验证自动化的方法、系统和计算设备。所公开的系统也能够基于更新数据针对所述更新的VM产品镜像的功能的风险来确定是否应当通过测试所述更新的VM产品镜像来验证所述更新的VM产品镜像。通过在数据管道内使构建和验证VM产品镜像的过程自动化,系统能够缓解由常规过程导致的时间迟滞,所述常规过程在创建VM镜像过程中使用人工启动的步骤并且单独地使用人工启动的工具来验证VM镜像。

Description

增强的虚拟机镜像管理系统
背景技术
云服务提供商(CSP)在云中提供网络服务、基础设施和/或应用。可以在能够由公司或个体使用网络连接而访问的数据中心中托管云服务。CSP越来越多地使用虚拟机(VM)镜像(image)来向用户提供这些云服务的很大一部分。例如,当用户访问所述云中的应用时,用户最可能访问包含该特定应用的VM镜像。因此,对于CSP而言,VM镜像是主要资源,并且对VM镜像的构建和验证是CSP的关键功能。
常规地,构建和验证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产品镜像的过程自动化,系统能够提供使所述构建和验证产生在相同数据管道内的益处。此外,在数据管道内构建和验证VM产品镜像的过程中,所述数据管道能够提供统一的方案来管理对运行产品所需的前提条件(prerequisite)的安装。
在本文中所公开的技术能够带来对计算系统资源的更有效率的使用。具体地,当通过对更新的VM产品镜像进行测试而以常规方式验证所述更新的VM产品镜像时使用计算机资源,诸如存储器使用、网络使用和处理器使用。然而,通过基于所述更新对于所述更新的VM产品镜像的功能的风险来确定是否应当通过对所述更新的VM产品镜像进行测试而验证所述更新的VM产品镜像,能够减少对被用于将更新的VM产品镜像递送到云的计算资源的使用。例如,通过因为所述更新对于更新的VM产品镜像的功能的风险低而不对所述更新的VM产品镜像进行测试,将导致将所述更新的VM产品镜像递送到云所需的较少的计算机资源使用。
通过阅读下文的具体实施方式部分以及回顾附图,除了上文明确描述的那些以外的特征和技术收益将变得显而易见。提供本发明内容是为了以简化形式介绍一系列概念,这些概念在下文的具体实施方式中将得到进一步描述。本发明内容并非意在标识所要求保护的主题的关键特征或基本特征,也并不意在用作确定所要求保护的主题的范围的辅助手段。例如,“技术”一词可以指代上文以及本文档通篇所描述的上下文所允许的系统、方法、计算机可读指令、模块、算法、硬件逻辑和/或操作。
附图说明
将参考附图来描述具体实施方式。在附图中,附图标记的(一个或多个)最左侧位表示该附图标记首次出现的附图。在不同附图中使用相同的附图标记指示相似或等同项目。对多个项目中的各个项目的引述能够使用参考数字连同包含在附带说明内的另一数字,以指代每个个体项目。对所述项目的一般引述可以使用具体的参考数字而无需字母序列。
图1A和图1B图示了构建和验证VM产品镜像环境,其能够在数据管道内使对更新的VM产品镜像的构建和验证自动化。
图2是图示了构建和验证更新的VM产品镜像的方法的一个示例的流程图。
图3是图示了能够构建和验证更新的VM产品镜像的系统的一个示例的流程图。
图4是图示了能够构建和验证更新的VM产品镜像的计算设备的一个示例的流程图。
图5示出了能够运行在本文中所公开的技术的计算机设备的示例性计算机架构。
具体实施方式
图1A和图1B图示了VM产品镜像环境100,其能够在数据管道102内使用于生成和验证更新的VM产品镜像150的过程自动化。图1A和图1B也图示了对VM产品镜像环境100进行构建和验证,其能够基于更新数据152对更新的VM产品镜像150的功能的风险来确定是否应当通过测试更新的VM产品镜像150来验证所述更新的VM产品镜像150。
在构建和验证VM产品镜像环境100的一种实施方式中,数据管道102能够产生在计算设备、计算设备的网络或者计算设备的数据中心内。数据管道102是串联连接的一组数据处理元件,其中,一个元件的输出和/或所述元件是下一个元件的输入。例如,更新的产品镜像150是对更新的产品镜像验证器160的输入。所述输入能够是自动地或人工地输入的。
所述实施方式包括接收基本镜像110。基本镜像110是基本操作系统112的镜像。镜像能够是任务、功能、特征、应用、VM和/或安装有应用的VM的软件实施方式的副本。
基本镜像110能够由操作系统提供商来提供。基本镜像110由基本镜像验证器120自动地验证。如果基本镜像110通过了验证,那么基本镜像110被自动地发送至前提条件镜像130,如果基本镜像110未通过验证,那么生成基本镜像错误报告122。
响应于基本镜像110通过了验证,根据定义操作系统功能性和运行基本产品156所需的组件的输入数据132来自动地生成前提条件镜像130。输入数据132包括前提条件134和基本镜像110。前提条件134是运行基本产品156所需的非产品组件。前提条件134能够包括配置组件、基本组件、服务基本组件、SQL、信息服务、库、被应用于所述镜像的设置、ASP.NET和/或.NET。
响应于前提条件镜像130的生成,由前提条件镜像验证器140自动地验证前提条件镜像130。如果前提条件镜像130通过了验证,那么前提条件镜像130被自动地发送至更新的产品镜像150,如果前提条件镜像130未通过验证,那么生成前提条件镜像错误报告142。
响应于前提条件镜像130通过了验证,根据更新数据152来自动地生成更新的产品镜像150,更新数据152包括一个或多个参数154、基本产品156和前提条件镜像130。所述一个或多个参数154能够增加、减少或者修改基本产品156的一个特征或多个特征。例如,所述一个或多个参数154能够是设置更新或者配置代码设置。所述一个或多个参数154能够被称为提交(commit)。
基本产品156可以是应用。例如,基本产品156能够是从云提供的在线应用。基本产品156也可以是作为一个单元被打包用于销售的特征和服务的集合,所述集合为使用一个或多个计算机程序的相似购买者的市场解决明确定义的问题。基本产品156也可以是作为一个单元被打包用于销售的特征和服务的集合,所述集合被设计为执行一组协作的功能、任务或活动,从而使采用一个或多个计算机程序的用户获得益处。基本产品156也可以是被提供用于销售的、由计算机程序构成的商品。
在另一实施方式中,基本产品156也能够是所述产品加上所述产品的被开启或关闭的特征。例如,基本产品156能够是在线应用连同被开启或关闭的电子邮件特征。这允许通过基本产品156加上基本产品156的被开启或关闭的一个特征或多个特征的多种组合中的一种组合来表示基本产品156。这还允许基于基本产品156加上基本产品156的被开启或关闭的一个特征或多个特征的多种组合使多个更新的产品镜像可用。这允许针对具有不同特征的产品来测量更新数据152对更新的产品镜像150的功能的风险。
在另一实施方式中,根据先前生成的更新的产品镜像以及所述一个或多个参数154来自动地生成更新的产品镜像150。所述一个或多个参数154能够在先前生成的更新的产品镜像中增加、减少或者修改基本产品156的一个特征或多个特征。这允许更新的产品镜像150是对先前生成的更新的产品镜像的更新。
响应于更新的产品镜像150的生成,由更新的产品镜像验证器160来自动地验证更新的产品镜像150。更新的产品镜像验证器160包括风险水平模块162、镜像测试过程164和非镜像测试过程166。在一种实施方式中,风险水平模块162确定更新数据152对更新的产品镜像150的功能的风险水平。例如,风险水平模块162能够通过从外部来源、内部来源、历史数据或用户接收风险水平来确定更新数据152对更新的产品镜像(150)的功能的风险水平。响应于风险水平超过阈值,基于所述风险水平选择来自镜像测试过程(164)和/或非镜像测试过程(166)的测试子集。例如,如果所接收到的风险水平超过阈值,那么所选择的测试子集包括来自镜像测试过程(164)的至少一项测试。然而,如果所接收到的风险水平未超过阈值,那么所选择的测试子集包括来自非镜像测试过程(166)的至少一项测试。
在另一实施方式中,风险水平模块162确定更新数据152对更新的产品镜像150的功能的风险水平。更新数据152对更新的产品镜像150的功能的风险水平是基于在应用更新数据152的情况下由来自镜像测试过程164的测试对更新的产品镜像150进行测试所需的时间的长度的。例如,在从1到100的风险标度上,或者在任何相似标度上,如果来自镜像测试过程164的测试所需的时间长度处在数秒之内,那么所述风险水平将处在所述风险标度的较低部分中。然而,如果来自镜像测试过程164的测试所需的时间长度处在数小时之内,那么所述风险水平将处在所述风险标度的较高部分中。在应用更新数据152的情况下由一项测试对更新的产品镜像150进行测试的时间长度能够从外部来源、内部来源、历史数据或用户来接收。
在另一实施方式中,更新数据152对更新的产品镜像150的功能的风险水平是在应用了更新数据152的情况下针对更新的产品镜像150的更新数据152的类型的。例如,在从1到100的风险标度上,或者在任何相似标度上,每月更新、.NET更新、对操作系统版本号的更新或者对.NET版本号的更新全都是高风险更新,并且所述风险水平将处在所述该风险标度的较高部分中。然而,将像素移到另一位置的更新可以被视为低风险更新,并且所述风险水平将处在该风险标度的较低部分中。针对更新的数据152的类型对应用了更新数据152的更新的产品镜像150的功能的风险水平能够通过外部来源、内部来源、历史数据或用户来接收。
如果由风险水平模块162确定的所确定风险水平超过阈值,那么基于使用来自镜像测试过程164的一项或多项测试对更新的产品镜像150的测试对更新的产品镜像150进行测试来验证更新的产品镜像150。如果所述风险水平不超过阈值,那么基于使用非镜像测试过程166中的一个或多个非镜像测试过程对更新的产品镜像150的测试对更新的产品镜像150进行测试来验证更新的产品镜像150。例如,仅测试更新数据152的语法能够被视为非镜像测试过程。同样地,所述阈值能够从外部来源、内部来源、历史数据或用户来接收。
如果更新的产品镜像150通过了验证,那么更新的产品镜像150被自动地发送至发布的环境170,如果更新的产品镜像150未通过验证,那么生成更新的产品镜像错误报告168并且将其发送至更新数据152的创建者。发布的环境170能够是数据中心。
在另一实施方式中,发布的环境170能够是测试实验室。在所述测试实验室中,更新的产品镜像150被测试以用于验证。如果更新的产品镜像150通过了验证,那么更新的产品镜像150被自动地发布给数据中心的私有部分或者发布给数据中心,如果更新的产品镜像150未通过验证,那么生成发布的环境错误报告。例如,发布可以是对更新的产品镜像150的预定义的用户群组的授权许可。
在另一实施方式中,发布的环境170可以是数据中心的私有部分。在数据中心的私有部分中,更新的产品镜像150被测试以用于验证。如果更新的产品镜像150通过了验证,那么更新的产品镜像150被自动地发布给所述数据中心,如果更新的产品镜像150未通过验证,那么生成发布的环境错误报告。
图2、图3和图4是图示了能够构建和验证更新的VM产品镜像150的方法200、系统300或计算设备400的示例的流程图。本领域技术人员应当理解,在本文中所公开的方法200、系统300或计算设备400的操作未必一定要按照任何特定次序来介绍,并且可能并且设想到了以(一个或多个)替代次序执行这些操作中的一些或全部操作。出于简化描述和例示的目的,已经按照所展示的次序介绍了所述操作。操作可以被增加、省略、一起执行和/或同时执行,而不脱离随附的权利要求的范围。
还应当理解,所例示的操作可以在任何时间结束,而未必完整地执行。一些或全部操作和/或基本等价的操作可以是通过运行如在本文中所定义的、被包含在计算机存储介质上的计算机可读指令来执行的。如在说明书和权利要求书中所使用的术语“计算机可读指令”以及其变型在本文中被宽泛地用于包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以是在各种系统配置上实施的,包括单处理器或多处理器系统、微型计算机、大型计算机、个人计算机、手提式计算设备、基于微处理器的可编程消费电子产品以及其组合等。
因此,应当意识到,在本文中所描述的逻辑操作可以被实施为:(1)在诸如在本文中所描述的那些的计算系统上运行的计算机实施的动作或程序模块的序列,和/或(2)所述计算系统内的互连的机器逻辑电路或电路模块。所述实施方式是一种取决于所述计算系统的性能和其他要求的选取问题。相应地,所述逻辑操作可以是通过软件、固件、专用数字逻辑单元以及其任意组合来实施的。
图2是图示了对更新的VM产品镜像150的构建和验证的方法200的一个示例的流程图。方法200在数据管道102内可以是自动的,其中,数据管道102至少产生在计算设备、计算设备的网络或者计算设备的数据中心内。
方法200开始于操作202处,其中,根据定义操作系统功能性和基本产品所需的组件的输入数据来生成前提条件镜像。
接下来,在操作204处,其中接收定义基本产品的一个或多个参数的更新数据。所述一个或多个参数可以是所述基本产品和/或对所述基本产品的更新。例如,MicrosoftSharePoint是一种产品。
接下来,在操作206处,其中,根据前提条件镜像和更新数据来生成更新的产品镜像。根据前提条件镜像和更新数据生成更新的产品镜像包括通过对所述前提条件镜像应用所述产品的所述一个或多个参数而生成的所述更新的产品镜像。
接下来,在操作208处,其中,确定所述更新数据针对更新的产品镜像的功能的风险水平。所述更新数据针对所述更新的产品镜像的功能的所述风险水平能够通过从外部来源、内部来源、历史数据或用户接收所述风险水平来确定。
接下来,在操作210处,响应于所述风险水平超过阈值,从包括镜像测试过程或非镜像测试过程的多项测试中选择测试子集,其中,对所述测试子集的选择是基于所述风险水平的。
接下来,在操作212处,使用来自镜像测试过程和/或非镜像测试过程的测试子集来测试所述更新的产品镜像。
接下来,在操作214处,响应于所述更新的产品镜像通过了对所述更新的产品镜像的测试,而发布所述更新的产品镜像。
然而,响应于所述更新的产品镜像未通过对所述更新的产品镜像的测试,所述自动操作停止,生成错误报告,并且将所述错误报告提供给更新数据的创建者。
图3是图示了能够构建和验证更新的VM产品镜像150的系统300的一个示例的流程图。系统300在数据管道102内能够是自动的,其中,数据管道102至少产生在计算设备、计算设备的网络或者计算设备的数据中心内。
系统300开始于操作302处,其中,根据定义操作系统功能性和基本产品所需的组件的输入数据来生成前提条件镜像。
接下来,在操作304处,接收定义基本产品的一个或多个参数的更新数据。所述一个或多个参数可以是所述基本产品和/或对所述基本产品的更新。例如,MicrosoftSharePoint是一种产品。
接下来,在操作306处,根据前提条件镜像和更新数据来生成更新的产品镜像。根据前提条件镜像和更新数据生成所述更新的产品镜像包括通过对前提条件镜像应用所述产品的所述一个或多个参数来生成所述更新的产品镜像。
接下来,在操作308处,确定所述更新数据针对所述更新的产品镜像的功能的风险水平。例如,所述风险水平能够基于用于验证所述更新的产品镜像的测试的时间长度,所述风险水平能够基于所述更新的产品镜像的更新数据的类型,所述风险水平能够至少基于所述产品的所述一个或多个参数中的一个参数的类型,并且/或者所述风险水平能够至少基于所述产品的所述一个或多个参数中的一个参数的值。
接下来,在操作310处,响应于所述风险水平超过阈值,通过使用镜像测试过程测试所述更新的产品镜像来验证所述更新的产品镜像。
接下来,在操作312处,响应于所述更新的产品镜像通过了对所述更新的产品镜像的测试,而发布所述更新的产品镜像。
然而,响应于所述更新的产品镜像未通过对所述更新的产品镜像的测试,所述自动操作停止,生成错误报告,并且将所述错误报告提供给更新数据的创建者。
系统300在数据管道102内能够是自动的,其中,数据管道102至少产生在计算设备、计算设备的网络或者计算设备的数据中心内。
图4是图示了能够构建和验证更新的VM产品镜像150的计算设备400的一个示例的流程图。对更新的VM产品镜像150的构建和验证在数据管道内能够是自动的,其中,所述数据管道产生在计算设备400内。
系统400开始于操作402处,其中,根据定义操作系统功能性和基本产品所需的组件的输入数据来生成前提条件镜像。
接下来,在操作404处,接收定义所述基本产品的一个或多个参数的更新数据。所述一个或多个参数能够是所述基本产品和/或对所述基本产品的更新。例如,MicrosoftSharePoint是一种产品。
接下来,在操作406处,根据前提条件镜像和更新数据来生成更新的产品镜像。根据前提条件镜像和更新数据生成更新的产品镜像包括通过对前提条件镜像应用所述产品的所述一个或多个参数来生成更新的产品镜像。
接下来,在操作408处,确定所述更新数据针对所述更新的产品镜像的功能的风险水平。例如,所述风险水平能够基于用于验证所述更新的产品镜像的测试的时间长度,所述风险水平能够基于所述更新的产品镜像的更新数据的类型,所述风险水平能够至少基于所述产品的所述一个或多个参数中的一个参数的类型,并且/或者所述风险水平能够至少基于所述产品的所述一个或多个参数中的一个参数的值。
接下来,在操作410处,响应于所述风险水平超过阈值,通过使用镜像测试过程测试所述更新的产品镜像来验证所述更新的产品镜像。
接下来,在操作412处,响应于所述更新的产品镜像通过了对所述更新的产品镜像的测试,发布所述更新的产品镜像。
然而,响应于所述更新的产品镜像未通过对所述更新的产品镜像的测试,所述自动操作停止,生成错误报告,并且将所述错误报告提供给更新数据的创建者。
图5示出了能够执行在本文中所公开的技术的计算机的示例性计算机架构的细节。因此,图5中所示的计算机架构500图示了客户端设备、服务器计算机或者服务器计算机的网络或者任何其他类型的适于实施在本文中所描述的功能的计算设备的架构。计算机架构500可以用于执行在本文中所介绍的计算机可读指令的任意方面。
图5中所示的计算机架构500包括中央处理单元502(CPU)、系统存储器504(包括随机存取存储器506(RAM)和只读存储器(ROM)508)以及将存储器504耦合至CPU 502的系统总线510。包含有助于在计算机架构500内的元件之间传递信息(例如,在启动期间)的基本例程的基本输入/输出系统被存储到ROM 508内。
通信媒介包括计算机可读指令、数据结构、程序模块或者调制数据信号(例如,载波)或者其他传输机制中的其他数据,并可以包括任何递送媒介。“经调制的数据信号”一词指代一种信号,所述信号使其特征中的一者或多者按照某种方式受到了设置或改变,从而能够将信息编码到该信号中。作为示例而非限制,通信媒介包括诸如有线网络或直接有线连接的有线媒介以及诸如声、RF、红外及其他无线媒介的无线媒介。以上选项中的任何选项的组合也应当包含在计算机可读媒介的范围之内。
作为示例而非限制,计算机存储介质可以包括通过用于存储诸如计算机可读指令、数据结构、程序模块或者其他数据的信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪速存储器或者其他固态存储器技术;CD-ROM、数字通用盘(DVD)、HD-DVD、BLU-RAY或者其他光学存储设备;磁带盒、磁带、磁盘存储设备或者其他磁存储设备;或者任何其他能够用于存储预期信息并且能够被计算机架构500访问的介质。出于权利要求的目的,“计算机存储介质”、“计算机可读存储介质”或者“计算机可读介质”以及其变型本身不包括波、信号和/或其他暂态和/或无形通信媒介。
根据各种技术,计算机架构500可以在使用经由网络518和/或其他网络(未示出)与远程计算机的逻辑连接的联网环境中工作。计算机架构500可以通过连接至总线510的网络接口单元514连接至网络518。应当认识到,还可以利用网络接口单元514连接至其他类型的网络和远程计算机系统。计算机架构500还可以包括用于接收和处理来自包括键盘、鼠标或电子触控笔在内的若干其他设备(图5中未示出)的输入的输入/输出控制器516。类似地,输入/输出控制器516可以向显示屏、打印机或者其他类型的输出设备(图5中也未示出)提供输出。
应当认识到,在本文中所描述的计算机可读指令在被加载到CPU 502内并执行时,将CPU 502和总的计算机架构500从通用计算系统转化成了被定制为促进在本文中所介绍的功能的专用计算系统。CPU 502可以由任何数量的晶体管或者其他分立电路元件(其可以各个地或者集合地呈现任何数量的状态)构建而成。更具体而言,CPU 502可以响应于在本文中所公开的计算机可读指令作为有限状态机工作。这些计算机可读指令可以通过指定CPU 502如何在状态之间转变,由此使构成CPU 502的晶体管或者其他分立硬件元件发生变换而使CPU 502发生变换。
对在本文中介绍的计算机可读指令进行编码还可以使在本文中所介绍的计算机可读介质的物理状态发生变换。在本说明书的不同实施方式中,物理结构的具体变换可以取决于各种因素。这样的因素的示例可以包括但不限于用于实施计算机可读介质的技术、计算机可读介质被表征为初级还是次级等等。例如,如果计算机可读介质被实施为基于半导体的存储器,那么在本文中所公开的计算机可读指令可以被通过变换该半导体存储器的物理状态而编码到该计算机可读介质上例如,计算机可读指令可以变换构成该半导体存储器的晶体管、电容器或者其他分立电路元件的状态。计算机可读指令还可以变换此类组件的物理状态,从而将数据存储于其上。
作为另一示例,在本文中所公开的计算可读介质可以是使用磁或光学技术实施的。在这样的实施方式中,在本文中所介绍的计算机可读指令在被编码到磁或光学介质中时可以变换所述磁或光学介质的物理状态。这些变换可以包括改变给定磁介质内的特定位置的磁特性。这些变换还可以包括更改给定光学介质内的特定位置的物理特征或特性,以改变这些位置的光学特性。其他物理介质变换也是可能的,而不脱离本说明书的范围和实质,其中,提供前文的示例只是为了有助于这一讨论。
鉴于上文所述,应当认识到,在计算机架构500中可以发生很多类型的物理变换,以存储和执行在本文中所介绍的计算机可读指令。还应当认识到计算机架构500可以包括其他类型的计算设备,包括手提式计算机、嵌入式计算机系统、个人数字助理和本领域技术人员已知的其他类型的计算设备。还可以设想,计算机架构500可以不包括图5所示的所有组件,可以包括图5中未明确示出的其他组件,或者可以利用与图5所示的完全不同的架构。

Claims (15)

1.一种方法,包括:
根据定义操作系统功能性和基本产品所需的组件的输入数据来生成前提条件镜像;
接收定义所述基本产品的一个或多个参数的更新数据;
根据所述前提条件镜像和所述更新数据来生成更新的产品镜像;
确定所述更新数据针对所述更新的产品镜像的功能的风险水平;
响应于所述风险水平超过阈值,从包括镜像测试过程或非镜像测试过程的多项测试中选择测试子集,其中,对所述测试子集的所述选择是基于所述风险水平的;
使用所述测试子集来测试所述更新的产品镜像;以及
响应于所述更新的产品镜像通过了对所述更新的产品镜像的所述测试,发布所述更新的产品镜像。
2.根据权利要求1所述的方法,还包括:
结合数据管道,根据定义所述操作系统功能性和所述基本产品所需的所述组件的所述输入数据来生成所述前提条件镜像;
接收定义所述基本产品的所述一个或多个参数的所述更新数据;
根据所述前提条件镜像和所述更新数据来生成所述更新的产品镜像;
确定所述更新数据针对所述更新的产品镜像的所述功能的所述风险水平;
响应于所述风险水平超过阈值,从包括所述镜像测试过程或所述非镜像测试过程的所述多项测试中选择所述测试子集,其中,对所述测试子集的所述选择是基于所述风险水平的;
使用所述测试子集来测试所述更新的产品镜像;以及
响应于所述更新的产品镜像通过了对所述更新的产品镜像的所述测试,发布所述更新的产品镜像。
3.根据权利要求2所述的方法,其中,所述数据管道至少产生在计算设备、计算设备的网络或者计算设备的数据中心内。
4.根据权利要求2所述的方法,还包括:
响应于所述更新的产品镜像未通过所述测试,生成错误报告,并且所述错误报告被提供给所述更新数据的创建者。
5.根据权利要求1所述的方法,其中,根据所述前提条件镜像和所述更新数据生成所述更新的产品镜像包括通过对所述前提条件镜像应用所述产品的所述一个或多个参数而生成的所述更新的产品镜像。
6.根据权利要求1所述的方法,其中,所述风险水平是基于用于验证所述更新的产品镜像的测试的时间长度的。
7.根据权利要求1所述的方法,其中,所述风险水平是基于所述更新的产品镜像的所述更新数据的类型的。
8.根据权利要求1所述的方法,其中,所述风险水平是至少基于所述产品的所述一个或多个参数中的一个参数的类型的。
9.根据权利要求1所述的方法,其中,所述风险水平是至少基于所述产品的所述一个或多个参数中的一个参数的值的。
10.根据权利要求1所述的方法,还包括:
响应于所述更新的产品镜像未通过对所述更新的产品镜像的所述测试,生成错误报告并且所述错误报告被提供给所述更新数据的创建者。
11.一种系统,包括:
一个或多个处理单元;以及
在其上编码有计算机可读指令的计算机可读介质,所述计算机可读指令使得所述一个或多个处理单元运行包括以下的指令:
根据定义操作系统功能性和基本产品所需的组件的输入数据来生成前提条件镜像;
接收定义所述基本产品的一个或多个参数的更新数据;
根据所述前提条件镜像和所述更新数据来生成更新的产品镜像;
确定所述更新数据针对所述更新的产品镜像的功能的风险水平;
响应于所述风险水平超过阈值,通过使用镜像测试过程测试所述更新的产品镜像来验证所述更新的产品镜像;以及
响应于所述更新的产品镜像通过了对所述更新的产品镜像的所述测试,发布所述更新的产品镜像。
12.根据权利要求11所述的系统,还包括:
在数据管道内根据定义所述操作系统功能性和所述基本产品所需的所述组件的所述输入数据来生成所述前提条件镜像;
接收定义所述基本产品的所述一个或多个参数的所述更新数据;
在所述数据管道内根据所述前提条件镜像和所述更新数据来生成所述更新的产品镜像;
确定所述更新数据针对所述更新的产品镜像的所述功能的所述风险水平;
响应于所述风险水平超过阈值,通过使用镜像测试过程测试所述更新的产品镜像来验证所述更新的产品镜像;以及
响应于所述更新的产品镜像通过了对所述更新的产品镜像的所述测试,发布所述更新的产品镜像。
13.根据权利要求11所述的系统,其中,所述风险水平是基于用于验证所述更新的产品镜像的测试的时间长度的。
14.根据权利要求11所述的系统,其中,所述风险水平是基于所述更新的产品镜像的所述更新数据的类型的。
15.根据权利要求11所述的系统,其中,所述风险水平是至少基于所述产品的所述一个或多个参数中的一个参数的类型的。
CN202080061825.8A 2019-09-06 2020-06-18 增强的虚拟机镜像管理系统 Pending CN114391136A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/563,589 US11347533B2 (en) 2019-09-06 2019-09-06 Enhanced virtual machine image management system
US16/563,589 2019-09-06
PCT/US2020/038269 WO2021045833A1 (en) 2019-09-06 2020-06-18 Enhanced virtual machine image management system

Publications (1)

Publication Number Publication Date
CN114391136A true CN114391136A (zh) 2022-04-22

Family

ID=71465465

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080061825.8A Pending CN114391136A (zh) 2019-09-06 2020-06-18 增强的虚拟机镜像管理系统

Country Status (4)

Country Link
US (1) US11347533B2 (zh)
EP (1) EP4025994A1 (zh)
CN (1) CN114391136A (zh)
WO (1) WO2021045833A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11822947B2 (en) * 2019-11-27 2023-11-21 Amazon Technologies, Inc. Automated management of machine images

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546506B1 (en) * 1999-09-10 2003-04-08 International Business Machines Corporation Technique for automatically generating a software test plan
US8639787B2 (en) 2009-06-01 2014-01-28 Oracle International Corporation System and method for creating or reconfiguring a virtual server image for cloud deployment
US20110126197A1 (en) 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US20120089972A1 (en) 2010-10-08 2012-04-12 Microsoft Corporation Image Based Servicing Of A Virtual Machine
US8677357B2 (en) 2011-01-26 2014-03-18 International Business Machines Corporation Method and apparatus for distributing a composite software stack as a virtual machine image
US9459856B2 (en) 2013-01-02 2016-10-04 International Business Machines Corporation Effective migration and upgrade of virtual machines in cloud environments
US10411961B2 (en) 2013-08-22 2019-09-10 Red Hat, Inc. Image management in cloud environments
US9727330B2 (en) * 2015-11-25 2017-08-08 Red Hat, Inc. Source to image transformation pipeline for a platform-as-a-service system
US10073974B2 (en) * 2016-07-21 2018-09-11 International Business Machines Corporation Generating containers for applications utilizing reduced sets of libraries based on risk analysis
US10324830B2 (en) 2017-11-03 2019-06-18 Terrance HOLBROOK Conditional upgrade and installation of software based on risk-based validation
US10671368B2 (en) 2017-11-03 2020-06-02 International Business Machines Corporation Automatic creation of delivery pipelines
US11080027B2 (en) * 2019-01-10 2021-08-03 Vmware, Inc. Curated image management in a FaaS infrastructure

Also Published As

Publication number Publication date
WO2021045833A1 (en) 2021-03-11
US11347533B2 (en) 2022-05-31
US20210073018A1 (en) 2021-03-11
EP4025994A1 (en) 2022-07-13

Similar Documents

Publication Publication Date Title
US10656936B2 (en) Systems and methods for software integrity validation using blockchain
US9858177B2 (en) Automated test generation for multi-interface enterprise virtualization management environment
CN102521081B (zh) 修复遭破坏的软件
US11093232B2 (en) Microservice update system
CN103646082B (zh) 一种文件校验的方法及装置
CN109491763B (zh) 一种系统部署方法、装置及电子设备
US8311794B2 (en) Testing executable logic
CA2999662C (en) Cloud resource provisioning using blueprint chaining
US9384020B2 (en) Domain scripting language framework for service and system integration
US20140208169A1 (en) Domain scripting language framework for service and system integration
US10552306B2 (en) Automated test generation for multi-interface and multi-platform enterprise virtualization management environment
US10678626B2 (en) Distributed product deployment validation
US20170177316A1 (en) Mobile application deployment for distributed computing environments
CN114461262A (zh) 数据处理方法、系统、装置、设备,及计算机存储介质
CN111813379A (zh) 应用部署方法及装置、电子设备、计算机可读存储介质
CN114237754A (zh) 一种数据加载方法、装置、电子设备以及存储介质
CN114391136A (zh) 增强的虚拟机镜像管理系统
CN110008108B (zh) 回归范围确定方法、装置、设备及计算机可读存储介质
CN110806935B (zh) 应用程序构建方法、装置和系统
US20230259347A1 (en) Container based generation of inputs for generic functions
US20230208744A1 (en) Consensus driven service promotion
US20240020389A1 (en) Fuzzing guided binary hardening
US10740205B2 (en) Calculation of a software usage metric
CN117271309A (zh) 业务测试方法、系统、电子设备和存储介质
CN117472724A (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