CN108369534B - 代码执行请求路由 - Google Patents
代码执行请求路由 Download PDFInfo
- Publication number
- CN108369534B CN108369534B CN201680072794.XA CN201680072794A CN108369534B CN 108369534 B CN108369534 B CN 108369534B CN 201680072794 A CN201680072794 A CN 201680072794A CN 108369534 B CN108369534 B CN 108369534B
- Authority
- CN
- China
- Prior art keywords
- container
- request
- program code
- execution
- virtual
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
提供了一种用于提供低延时计算容量的系统。所述系统可以被配置成基于使用在多个虚拟机实例上运行的特定容器的用户指示来路由传入的代码执行请求。所述系统可以被配置成处理代码执行请求,基于先前用于处理类似类型的请求的特定容器将用于处理所述代码执行请求的用户指示来识别,并且致使使用所述特定容器来处理所述代码执行请求。
Description
背景技术
一般来说,计算装置利用一个通信网络或一系列通信网络来交换数据。公司和组织操作计算机网络,所述计算机网络互连多个计算装置以支持运营或向第三方提供服务。计算系统可以位于单个地理位置或位于多个不同的地理位置(例如,经由私人或公共通信网络互连)。具体而言,本文统称为“数据中心”的数据中心或数据处理中心可以包括多个互连的计算系统以向数据中心的用户提供计算资源。数据中心可以是代表组织运营的私人数据中心,或者可以是代表公众或出于公众利益运营的公共数据中心。
为了促进数据中心资源的加大利用,虚拟化技术可以允许单个物理计算装置托管虚拟机的一个或多个实例,所述虚拟机实例向数据中心的用户表现并操作为独立计算装置。利用虚拟化,单个物理计算装置可以以动态方式创建、维护、删除或以其他方式管理虚拟机。继而,用户可以从数据中心请求计算机资源,包括单个计算装置或联网计算装置的配置,并且可以具备不同数量的虚拟机资源。
在一些情境下,虚拟机实例可以根据多种虚拟机实例类型来配置以提供特定功能。例如,各种计算装置可以与操作系统或操作系统配置、虚拟化硬件资源和软件应用程序的不同组合相关联,以使得计算装置能够提供不同的期望功能,或者更有效地提供类似的功能。这些虚拟机实例类型配置通常包含在装置图像内,所述装置图像包括包含虚拟机一旦启动就运行的软件(例如,OS和应用程序及其配置和数据文件等)的静态数据。装置图像通常存储在用于创建或初始化实例的磁盘上。因此,计算装置可以处理装置图像以便实施期望的软件配置。
附图说明
通过结合附图参考以下具体实施方式,可以更好地理解本公开的上述方面和许多伴随的优点,因此将更易于了解所述方面和优点,其中:
图1是描绘根据示例性方面的用于提供低延时计算容量的说明性环境的框图;
图2描绘了根据示例性方面的提供用于路由代码执行请求的路由管理器的计算装置的通用架构;
图3是示出根据示例性方面的由路由管理器实施的代码执行请求路由例程的流程图;
图4描绘了根据示例性方面的示出将请求路由到容器的示例性映射表;
图5是示出根据示例性方面的由路由管理器实施的代码执行结果高速缓存例程的流程图;以及
图6是示出根据示例性方面的由路由管理器实施的容器生命周期管理例程的流程图。
具体实施方式
公司和组织不再需要为了执行计算操作(例如,执行代码,包括线程、程序、函数、软件、例程、子例程、过程等),来获取和管理它们自己的数据中心。随着云计算的出现,传统上由硬件计算装置提供的存储空间和计算能力现在可以通过互联网在几分钟内获得并配置。因此,开发人员可以快速购买期望数量的计算资源,而不必为获取物理机而担忧。这些计算资源通常以虚拟计算资源或虚拟机实例的形式购买。虚拟机的这些实例是物理机(例如,计算机)的软件实现,其托管在物理计算装置上,并且可能包含传统上提供在物理机上的操作系统和应用程序。使用一组计算资源(例如,存储器、CPU、磁盘、网络等)对这些虚拟机实例进行配置,在虚拟机实例上运行的应用程序可以请求该组计算资源并且可以以与物理计算机相同的方式利用该组计算资源。
然而,即使在购买虚拟计算资源时,开发人员也仍然必须决定要购买多少和什么类型的虚拟机实例,以及将它们保留多长时间。例如,使用虚拟机实例的成本可以根据它们的租用类型和小时数而变化。另外,虚拟机可以租用的最短时间通常为约几小时。此外,开发人员必须指定要安装在虚拟机上的硬件和软件资源(例如,操作系统的类型和语言运行时等)。它们可能会遇到的其他问题包括过度利用(例如,获取太少的计算资源和遭受性能问题)、利用不足(例如,获取比运行代码所需的更多的计算资源并因此支付过多)、流量变化预测(例如,使得他们知道何时按比例增加或减少)以及实例和语言运行时启动延迟,这可能需要3-10分钟或更长时间,即使用户可能期望约几秒或甚至几毫秒的计算容量。
根据本公开的各方面,通过维护一旦接收到用户请求就准备好使用的预先初始化的虚拟机实例池,并自动管理池中可用的容量的量以服务于传入的请求,可以显著缩短与执行用户代码(例如,实例和语言运行时启动时间)相关联的延迟(有时称为延时),并且可以提高利用率。
一般来说,公开了促进管理虚拟计算系统中的虚拟机实例的系统和方法。虚拟计算系统维护其上加载有一个或多个软件部件(例如,操作系统、语言运行时、库等)的虚拟机实例池。维护虚拟机实例池可以涉及创建新实例,从外部实例供应服务获取新实例,销毁实例,向用户分配/再分配实例,修改实例(例如,其中的容器或资源)等等。池中的虚拟机实例可以被指定为服务于执行程序代码的用户请求。在本公开中,短语“程序代码”、“用户代码”和“云函数”有时可以互换使用。程序代码可以在虚拟机实例上创建的独立容器中执行。由于池中的虚拟机实例在接收到请求时早已被启动并加载了特定的操作系统和语言运行时,所以显著缩短了与查找可以处理请求的计算容量(例如,通过在虚拟机实例上创建的一个或多个容器中执行用户代码)相关联的延迟。
在另一方面,虚拟计算系统可以创建和管理在由虚拟计算系统接收的传入的代码执行请求与用于处理那些代码执行请求的计算容量之间的映射。所述映射可以促进多个请求使用和再使用某些容器特定资源。例如,给定的容器可以与存储代码执行结果的高速缓存相关联,并且可以由在给定的容器中执行的任何程序代码访问。因此,一旦将与请求相关联的代码执行结果存储在高速缓存中,则在相同类型的后续请求被路由到给定的容器的情况下,可以使用存储在高速缓存中的代码执行结果更高效地处理所述后续请求。因此,通过将请求路由到在虚拟计算系统上运行的适当容器,可以实现延时增益。
现在将参考附图描述本公开的特定实施方案和示例性应用。这些实施方案和示例性应用旨在说明而不是限制本公开。
包括虚拟计算系统的说明性环境
参考图1,将描述示出虚拟环境100的实施方案的框图。图1所示的示例包括虚拟环境100,其中用户计算装置102的用户(例如,开发人员等)可以使用由虚拟计算系统110提供的虚拟计算资源来运行各种程序代码。
通过说明,各种示例性用户计算装置102(包括台式计算机、膝上型计算机和移动电话)被示出为与虚拟计算系统110通信。通常,用户计算装置102可以是任何计算装置,诸如台式计算机、膝上型计算机、移动电话(或智能电话)、平板电脑、自助服务终端、无线装置和其他电子装置。另外,用户计算装置102可以包括在相同或不同数据中心上运行的web服务,其中例如,不同web服务可以以编程方式彼此通信以执行本文描述的一种或多种技术。此外,用户计算装置102可以包括物联网(IoT)装置,诸如互联网设备和连接的装置。虚拟计算系统110可以向用户计算装置102提供一个或多个用户接口、命令行接口(CLI)、应用程序编程接口(API)和/或其他编程接口,以上接口均用于生成和上传用户代码,调用用户代码(例如,提交在虚拟计算系统110上执行用户代码的请求),调度基于事件的工作或定时工作,跟踪用户代码,和/或查看与其请求和/或用户代码有关的其他日志或监控信息。虽然本文可以将一个或多个实施方案描述为使用用户接口,但是应当理解,这些实施方案可以另外或另选地使用任何CLI、API或其他编程接口。
用户计算装置102通过网络104访问虚拟计算系统110。网络104可以是任何有线网络、无线网络或其组合。另外,网络104可以是个人区域网络、局域网、广域网、空中广播网络(例如,用于无线电或电视)、有线网络、卫星网络、蜂窝电话网络或其组合。例如,网络104可以是链接网络的可公开访问的网络,可能由各个不同方(诸如互联网)操作。在一些实施方案中,网络104可以是私人或半私人网络,诸如公司或大学内联网。网络104可以包括一个或多个无线网络,诸如全球移动通信系统(GSM)网络、码分多址(CDMA)网络、长期演进(LTE)网络或任何其他类型的无线网络。网络104可以使用协议和部件来经由互联网或任何其他上述类型的网络进行通信。例如,网络104使用的协议可以包括超文本传输协议(HTTP)、HTTP安全(HTTPS)、消息队列遥测传输(MQTT)、受约束的应用协议(CoAP)等。用于经由互联网或任何其他上述类型的通信网络进行通信的协议和部件是本领域技术人员所熟知的,因此本文不再详细描述。
虚拟计算系统110在图1中被描绘成在包括若干计算机系统的分布式计算环境中操作,所述若干计算机系统使用一个或多个计算机网络互连。虚拟计算系统110还可以在具有比图1中所示的更少或更多数量的装置的计算环境内操作。因此,图1中的虚拟计算系统110的描述应被认为是说明而不是限制本公开。例如,虚拟计算系统110或其各个组成部分可以实施各种web服务部件、托管的或“云”计算环境和/或对等网络配置,以实施本文描述的过程的至少一部分。
此外,虚拟计算系统110可以在硬件和/或软件中实施,并且可以例如包括在物理计算机硬件上实施的一个或多个物理或虚拟服务器,所述物理计算机硬件被配置成执行用于执行本文将描述的各种特征的计算机可执行指令。一个或多个服务器可以在地理上分散或地理上共同位于例如一个或多个数据中心中。
在图1所示的环境中,虚拟环境100包括虚拟计算系统110,所述虚拟计算系统包括前端120、预热池管理器130、工作者管理器140和路由管理器150。在所描绘的示例中,虚拟机实例(“实例”)152、154被示出为在由预热池管理器130管理的预热池130A中,并且实例156、157、158、159被示出为在由工作者管理器140管理的活动池140A中。在一些实施方案中,术语“虚拟机实例”可以指代模拟硬件以提供可以在其上执行软件的环境或平台(“执行环境”)的软件或其他可执行代码的执行。虚拟机实例通常由物理硬件装置执行,所述物理硬件装置可能与由虚拟机实例模拟的硬件不同。例如,虚拟机可以在第二类型的处理器和存储器上执行时模拟第一类型的处理器和存储器。因此,可以利用虚拟机以在执行第二执行环境(例如,第二操作系统)的物理装置上执行旨在用于第一执行环境(例如,第一操作系统)的软件。在一些情况下,由虚拟机实例模拟的硬件可能与底层装置的硬件相同或类似。例如,具有第一类型处理器的装置可以实施多个虚拟机实例,每个虚拟机实例模拟该第一类型的处理器的实例。因此,可以使用虚拟机实例将单个装置分成多个逻辑子装置(每个逻辑子装置称为“虚拟机实例”)。虽然虚拟机实例通常可以提供远离底层物理装置硬件的抽象级别,但是并不需要这种抽象。例如,假定装置实施多个虚拟机实例,其中每个虚拟机实例都模拟与装置提供的硬件相同的硬件。在这种情境下,每个虚拟机实例都可以允许软件应用程序在底层硬件上执行代码而无需转译,同时保持在其他虚拟机实例上运行的软件应用程序之间的逻辑分离。这个通常被称为“原生执行”的过程可以用来提高虚拟机实例的速度或性能。在本领域中已知允许直接利用底层硬件的其他技术,诸如硬件直通技术。
虚拟计算系统110内的各种部件的图示本质上是逻辑的,并且一个或多个部件可以由单个计算装置或多个计算装置来实施。例如,实例152、154、156、157、158、159可以在位于各个不同的地理区域中的一个或多个物理计算装置上实施。类似地,前端120、预热池管理器130、工作者管理器140和路由管理器150中的每一个都可以在多个物理计算装置上实施。另选地,可以在单个物理计算装置上实施前端120、预热池管理器130、工作者管理器140和路由管理器150中的一个或多个。在一些实施方案中,虚拟计算系统110可以包括多个前端、多个预热池管理器、多个工作者管理器和/或多个容量管理器。虽然在图1的示例中示出了六个虚拟机实例,但是本文描述的实施方案不限于此,并且本领域技术人员将明白,虚拟计算系统110可以包括使用任何数量的物理计算装置实施的任何数量的虚拟机实例。相似地,尽管在图1的示例中示出了单个预热池和单个活动池,但是本文描述的实施方案不限于此,并且本领域技术人员将明白,虚拟计算系统110可以包括任何数量的预热池和活动池。
在图1的示例中,虚拟计算系统110被示出为连接到网络104。在一些实施方案中,虚拟计算系统110内的任何部件可以经由网络104与虚拟环境100的其他部件(例如,用户计算装置102和辅助服务106,其可以包括监控/日志/计费服务107、存储服务108、实例供应服务109和/或可以与虚拟计算系统110通信的其他服务)通信。在其他实施方案中,并非虚拟计算系统110的所有部件都能够与虚拟环境100的其他部件进行通信。在一个示例中,只有前端120可以连接到网络104,并且虚拟计算系统110的其他部件可以经由前端120与虚拟环境100的其他部件进行通信。
用户可以使用虚拟计算系统110以在其上执行用户代码。例如,用户可能希望结合用户已经开发的web或移动应用程序来运行一段代码。运行代码的一种方式将是从提供基础设施即服务的服务提供商获取虚拟机实例,配置虚拟机实例以满足用户需求,并使用配置的虚拟机实例来运行代码。另选地,用户可以向虚拟计算系统110发送代码执行请求。虚拟计算系统110可以基于代码执行请求来处理计算容量(例如,容器、实例等,其在下文进行更详细描述)的获取和配置,并且使用计算容量来执行代码。虚拟计算系统110可以基于量自动按比例增加和减少,从而减轻用户不得不为过度利用(例如获取太少的计算资源和遭受性能问题)或利用不足(例如,获取比运行代码所需的更多的计算资源,并且因此致使支付过多)担忧的负担。
前端
前端120处理在虚拟计算系统110上执行用户代码的所有请求。在一个实施方案中,前端120充当由虚拟计算系统110提供的所有其他服务的前门。前端120处理请求并确保对请求进行适当授权。例如,前端120可以确定与请求相关联的用户是否被授权访问请求中指定的用户代码。
如本文使用的用户代码可以指代以特定程序语言编写的任何程序代码(例如,程序、例程、子例程、线程等)。在本公开中,术语“代码”、“用户代码”和“程序代码”可以互换使用。可以执行这样的用户代码以实现特定的任务,例如,结合用户开发的特定的web应用程序或移动应用程序。例如,用户代码可以用JavaScript(node.js)、Java、Python和/或Ruby编写。所述请求可以包括用户代码(或其位置)以及将用于执行用户代码的一个或多个参量。例如,用户可以提供用户代码以及执行用户代码的请求。在另一个示例中,所述请求可以通过名称或唯一ID来识别先前上传的程序代码(例如,使用API来上传代码)。在又一示例中,代码可以包括在请求中,并且在请求被虚拟计算机系统110接收之前被上传到单独的位置(例如,存储服务108或在虚拟计算系统110内部的存储系统)。虚拟计算系统110可以基于处理请求时代码可用的位置来改变其代码执行策略。
前端120可以响应于来自用户的超文本传输协议安全(HTTPS)请求,接收执行这种用户代码的请求。而且,也可以在执行用户代码时处理和利用包括在HTTPS请求中的任何信息(例如,标头和参数)。如上所讨论,包括例如HTTP、MQTT和CoAP的任何其他协议可以用于将包含代码执行请求的消息传送到前端120。当检测到事件时,前端120还可以接收执行这些用户代码的请求,诸如用户已经注册以触发自动请求生成的事件。例如,用户可能已经向辅助服务106注册了用户代码并且指定无论何时特定事件发生(例如,上传新文件),都将执行用户代码的请求发送到前端120。另选地,用户可能已经注册了定时工作(例如,每24小时执行一次用户代码)。在这样的示例中,当调度的时间到达定时工作时,可以将执行用户代码的请求发送到前端120。在又一示例中,前端120可以具有传入的代码执行请求队列,并且当用户的批量工作从虚拟计算系统的工作队列中移除时,前端120可以处理用户请求。在又一示例中,所述请求可以源自虚拟计算系统110内的另一个部件或者图1中未示出的其他服务器或服务。
用户请求可以指定将与用户代码一起使用的一个或多个第三方库(包括原生库)。在一个实施方案中,用户请求是包含用户代码和任何库(和/或其存储位置的标识)的ZIP文件。在一些实施方案中,用户请求包括元数据,所述元数据指示要执行的程序代码、编写程序代码所用的语言、与请求相关联的用户、和/或被保留用于执行程序代码的计算资源(例如,存储器等)。例如,可以向程序代码提供先前由用户上传的请求、由虚拟计算系统110提供的请求(例如,标准例程)和/或由第三方提供的请求。在一些实施方案中,针对特定用户代码指定这样的资源级别约束(例如,将分配多少内存来执行特定用户代码),并且可能不会随着用户代码的每次执行而变化。在这样的情况下,虚拟计算系统110可以在接收到每个单独的请求之前访问这样的资源级别约束,并且单独的请求可以不指定这样的资源级别约束。在一些实施方案中,用户请求可以指定其他约束,诸如许可数据,其指示请求必须执行用户代码的许可类型。虚拟计算系统110可以使用这种许可数据来访问私人资源(例如,在私人网络上)。
在一些实施方案中,用户请求可以指定应该被采用来处理用户请求的行为。在这样的实施方案中,用户请求可以包括用于启用一个或多个执行模式的指示符,在所述执行模式下将执行与用户请求相关联的用户代码。例如,所述请求可以包括用于指示用户代码是否应当以调试模式执行的标志或标头,在调试模式中结合用户代码的执行而生成的调试和/或日志输出被提供回给用户(例如,经由控制台用户接口)。在这样的示例中,虚拟计算系统110可以检查请求并查找标志或标头,并且如果存在,则虚拟计算系统110可以修改其中执行用户代码的容器的行为(例如,记录设施),并且致使将输出数据提供回给用户。在一些实施方案中,通过由虚拟计算系统110提供给用户的用户接口将行为/模式指示符添加到请求中。基于请求中提供的指示,还可以启用或禁用其他特征,诸如源代码分析、远程调试等。
在一些实施方案中,虚拟计算系统110可以包括多个前端120。在这样的实施方案中,可以提供负载平衡器以例如以循环方式将传入的请求分发到多个前端120。在一些实施方案中,负载平衡器将传入的请求分发给多个前端120所用的方式可以基于预热池130A和/或活动池140A的状态。例如,如果预热池130A中的容量被认为是足够的,则可以基于前端120的各个容量(例如,基于一个或多个负载平衡限制)将请求分发给多个前端120。另一方面,如果预热池130A中的容量小于阈值量,则可以移除一个或多个这样的负载平衡限制,使得可以以减少或最小化从预热池130A获取的虚拟机实例的数量的方式将请求分发给多个前端120。例如,即使根据负载平衡限制将请求路由到前端A,如果前端A需要从预热池130A中取出实例来服务于请求,但是前端B可以使用其活动池中的一个实例来服务于相同的请求,则可以将所述请求路由到前端B。
预热池管理器
当虚拟计算系统110接收到在虚拟计算系统110上执行用户代码的请求时,预热池管理器130确保虚拟机实例准备好被工作者管理器140使用。在图1所示的示例中,预热池管理器130管理预热池130A,所述预热池是可以用来服务于传入的用户代码执行请求的预先初始化和预先配置的虚拟机实例的组(有时被称为池)。在一些实施方案中,预热池管理器130致使虚拟机实例在虚拟计算系统110内的一个或多个物理计算机上被启动并被添加到预热池130A。在其他实施方案中,预热池管理器130与辅助虚拟机实例服务(例如,图1的实例供应服务109)通信以创建新的实例并将其添加到预热池130A。在一些实施方案中,预热池管理器130可以利用虚拟计算系统110内的物理计算装置和一个或多个虚拟机实例服务来获取和维护可以用于服务于由前端120接收的代码执行请求的计算容量。在一些实施方案中,虚拟计算系统110可以包括用于控制(例如,增大或减小)预热池130A中的可用容量的一个或多个逻辑旋钮或开关。例如,系统管理员可以使用这种旋钮或开关来在高峰时段期间增加预热池130A中的可用容量(例如,预启动实例的数量)。在一些实施方案中,可以基于与执行用户代码的特定用户请求无关的一组预定配置来配置预热池130A中的虚拟机实例。该组预定配置可以对应于执行用户代码的各种类型的虚拟机实例。预热池管理器130可以基于与当前或先前的用户代码执行相关的一个或多个度量来优化预热池130A中的虚拟机实例的类型和数量。
如图1所示,实例可以在其上加载有操作系统(OS)和/或语言运行时。例如,由预热池管理器130管理的预热池130A包括实例152、154。实例152包括OS 152A和运行时152B。实例154包括OS 154A。在一些实施方案中,预热池130A中的实例还可以包括容器(其还可以包含操作系统、运行时、用户代码等的副本),所述容器将在下文进行更详细描述。虽然实例152在图1中示出为包括单个运行时,但是在其他实施方案中,图1中描绘的实例也包括两个或更多个运行时,其中每个运行时可以用于运行不同的用户代码。在一些实施方案中,预热池管理器130可以维护预热池130A中的实例的列表。实例列表还可以指定实例的配置(例如,OS、运行时、容器等)。
在一些实施方案中,预热池130A中的虚拟机实例可以用于服务于任何用户的请求。在一个实施方案中,预热池130A中的所有虚拟机实例都以相同或基本类似的方式配置。在另一个实施方案中,预热池130A中的虚拟机实例可以用不同方式配置以适应不同用户的需求。例如,虚拟机实例可以在其上加载有不同的操作系统、不同的语言运行时和/或不同的库。在又一个实施方案中,预热池130A中的虚拟机实例可以以相同或基本类似的方式来配置(例如,具有相同的OS、语言运行时和/或库),但是那些实例中的一些可能具有不同的容器配置。例如,两个实例可能具有Python和Ruby两者的运行时,但一个实例可能具有配置成运行Python代码的容器,而另一个实例可能具有配置成运行Ruby代码的容器。在一些实施方案中,提供多个预热池130A,每个预热池具有以相同方式配置的虚拟机实例。
预热池管理器130可以预先配置预热池130A中的虚拟机实例,使得每个虚拟机实例被配置成满足可以由在虚拟计算系统110上执行程序代码的用户请求所请求或指定的操作条件中的至少一个。在一个实施方案中,操作条件可以包括编写潜在用户代码可以使用的程序语言。例如,这样的语言可以包括Java、JavaScript、Python、Ruby等等。在一些实施方案中,编写用户代码可以使用的该语言集合可以限于预定的语言集合(例如,4种语言的集合,尽管在一些实施方案中提供了多于或少于四种语言的集合)以便促进预先初始化可以满足执行用户代码的请求的虚拟机实例。例如,当用户正在经由由虚拟计算系统110提供的用户接口配置请求时,用户接口可以提示用户指定用于执行用户代码的预定操作条件中的一个。在另一个示例中,用于利用由虚拟计算系统110提供的服务的服务级别协议(SLA)可以指定用户请求应当满足的一组条件(例如,编程语言、计算资源等),并且虚拟计算系统110可以假定在处理请求时请求满足该组条件。在另一个示例中,请求中指定的操作条件可以包括:将用于处理请求的计算能力的量;请求的类型(例如,HTTP与触发事件);请求的超时(例如,请求可能终止之后的阈值时间);安全策略(例如,可以控制预热池130A中的哪些实例可由哪个用户使用);调度信息(例如,请求虚拟计算系统执行程序代码的时间、请求虚拟计算系统执行程序代码之后的时间、请求虚拟计算系统执行程序代码的时间窗口等)等。
工作者管理器
工作者管理器140管理用于服务于传入的代码执行请求的实例。在图1所示的示例中,工作者管理器140管理活动池140A,所述活动池是当前分配给一个或多个用户的虚拟机实例的组(有时称为池)。虽然本文将虚拟机实例描述为分配给特定用户,但是在一些实施方案中,实例可以分配给一组用户,使得实例与该组用户绑定,并且该组中的任何成员可以利用实例上的资源。例如,同一组中的用户可以属于相同的安全组(例如,基于它们的安全凭证),使得在另一个成员的代码已经在相同实例上的另一个容器中执行之后,在特定实例上的容器中执行一个成员的代码不会带来安全风险。类似地,工作者管理器140可以根据一个或多个策略分配实例和容器,所述一个或多个策略规定哪些请求可以在哪些容器中执行以及哪些实例可以分配给哪些用户。示例性策略可以指定实例被分配给共享相同账户(例如,用于访问由虚拟计算系统110提供的服务的账户)的用户集合。在一些实施方案中,与相同用户组相关联的请求可以共享相同的容器(例如,如果与其相关联的用户代码相同)。在一些实施方案中,请求不区分组的不同用户并且简单地指示与请求相关联的用户所属的组。
在图1所示的示例中,用户代码在被称为容器的独立计算系统中执行。容器是使用该实例上的可用资源在虚拟机实例内创建的逻辑单元。例如,工作者管理器140可以基于在执行用户代码的请求中指定的信息,创建新的容器或在活动池140A中的实例中的一个中定位现有容器,并将所述容器分配给处理与请求相关的用户代码的执行的请求。在一个实施方案中,这样的容器被实施为Linux容器。活动池140A中的虚拟机实例可以在其上创建一个或多个容器,并且可以在其上加载与用户相关联的一个或多个程序代码(例如,在所述容器中的一个中或在实例的本地高速缓存中)。
如图1所示,实例可能具有操作系统(OS)、语言运行时和容器。这些容器可以在其上加载OS和语言运行时和用户代码的单独副本。在图1的示例中,由工作者管理器140管理的活动池140A包括实例156、157、158、159。实例156具有容器156A、156B。容器156A在其上加载了OS 156A-1、运行时156A-2和代码156A-3。在所描绘的示例中,容器156A将其自己的OS、运行时和代码加载在其中。在一个实施方案中,在容器156A,156B(以及图1中未示出的任何其他容器)之间共享OS 156A-1(例如其内核)、运行时156A-2和/或代码156A-3。在另一个实施方案中,OS 156A-1(例如,在内核外运行的任何代码)、运行时156A-2和/或代码156A-3是为容器156A创建的独立副本,并且不与实例156上的其他容器共享。在又一个实施方案中,OS 156A-1、运行时156A-2和/或代码156A-3的一些部分在实例156上的容器之间共享,并且其其他部分是容器156A特有的独立副本。实例157包括容器157A、157B、157C。实例158包括容器158A、158B和资源158C。实例159包括容器159A和资源159A-1。资源158C可以是实例特定资源,诸如可由其上创建的任何容器(或其中执行的任何代码)访问的存储器、磁盘存储装置、数据库等。资源159A-1可以是容器特定资源,诸如可由其中执行的任何代码访问的存储器、磁盘存储装置、数据库等。
在图1的示例中,图1中所描绘的容器的大小可能与容器的实际大小成正比。例如,容器156A在实例156上占用的空间比容器156B占用的空间更大。类似地,容器157A、157B、157C可以具有相同的大小,并且容器158A和158B可以具有相同的大小。实例158、159中示出的标记为“C”的虚线框指示实例上剩余的可以用于创建新实例的空间。在一些实施方案中,容器的大小可以是64MB或其任何倍数。在其他实施方案中,容器的大小可以是小于或等于其中创建容器的实例的大小的任何任意大小。在一些实施方案中,容器的大小可以是小于、等于或大于其中创建容器的实例的大小的任何任意大小。容器的大小可以超过实例的大小多少可以基于那些容器可能超出实例提供的容量来利用的可能性来确定。
虽然容器156B、157A、157B、157C、158A、158B、159A内部的部件未在图1的示例中示出,但是这些容器中的每一个可以具有各种操作系统、语言运行时、库和/或用户代码。在一些实施方案中,实例可以在其上加载有用户代码(例如,在诸如资源158C等的实例级别高速缓存中),并且那些实例内的容器也可以在其中加载用户代码。在一些实施方案中,工作者管理器140可以维护活动池140A中的实例的列表。实例列表还可以指定实例的配置(例如,OS、运行时、容器等)。在一些实施方案中,工作者管理器140可以访问预热池130A中的实例列表(例如,包括实例的数量和类型)。在其他实施方案中,工作者管理器140在不知道预热池130A中的虚拟机实例的情况下从预热池管理器130请求计算容量。
在前端120已成功处理请求之后,工作者管理器140找到容量来服务于在虚拟计算系统110上执行用户代码的请求。例如,如果活动池140A中存在具有其中加载有相同用户代码(例如,容器156A中示出的代码156A-3)的容器的特定虚拟机实例,则工作者管理器140可以将容器分配给请求并致使用户代码在容器中执行。另选地,如果用户代码在虚拟机实例之一的本地高速缓存中可用(例如,存储在实例158上但不属于任何单独的容器),则工作者管理器140可以在这样的实例上创建新的容器,将容器分配给请求,并致使用户代码在容器中加载并执行。
如果工作者管理器140确定在活动池140A中的任何实例(例如,在实例的容器或本地高速缓存中)上未发现与请求相关联的用户代码,则工作者管理器140可以确定活动池140A中的任何实例当前被分配给与请求相关联的用户,并且具有处理当前请求的计算容量。如果存在这样的实例,则工作者管理器140可以在实例上创建新的容器并将容器分配给请求。另选地,工作者管理器140还可以配置分配给用户的实例上的现有容器,并将容器分配给请求。例如,工作者管理器140可以确定如果当前用户请求所要求的特定库被加载于现有容器上,则现有容器可以用于执行用户代码。在这种情况下,工作者管理器140可以将特定的库和用户代码加载到容器上并使用容器来执行用户代码。
如果活动池140A不包含当前分配给用户的任何实例,则工作者管理器140从预热池130A中拉取新的虚拟机实例,将所述实例分配给与请求相关联的用户,在实例上创建新的容器,将容器分配给请求,并致使用户代码被下载并在容器上执行。
在一些实施方案中,虚拟计算系统110适于在接收到用户代码(例如,由前端120)之后不久开始执行用户代码。可以将时间段确定为发起执行用户代码(例如,在与用户相关联的虚拟机实例上的容器中)和接收执行用户代码的请求(例如,由前端接收)之间的时间差。虚拟计算系统110适于在小于预定持续时间的时间段内开始执行用户代码。在一个实施方案中,预定持续时间是500ms。在另一个实施方案中,预定持续时间是300ms。在另一个实施方案中,预定持续时间是100ms。在另一个实施方案中,预定持续时间是50ms。在另一个实施方案中,预定持续时间是10ms。在另一个实施方案中,预定持续时间可以是从10ms到500ms的范围中选择的任何值。在一些实施方案中,虚拟计算系统110适于在满足一个或多个条件的情况下,开始在小于预定持续时间的时间段内执行用户代码。例如,一个或多个条件可以包括以下中的任何一个:(1)在接收到请求时,用户代码被加载到活动池140A中的容器上;(2)在接收到请求时,用户代码被存储在活动池140A中的实例的代码高速缓存中;(3)活动池140A包含在接收到请求时分配给与请求相关联的用户的实例;或者(4)预热池130A具有在收到请求时处理请求的容量。在一些实施方案中,代替在接收到代码执行请求时启动所请求的代码执行,虚拟计算系统110可以根据请求提供的调度信息来调度代码执行。例如,请求可以指定虚拟计算系统110被请求执行代码执行的时间窗口(例如,在下周一凌晨3:00AM到4:00AM之间),并且虚拟计算系统110可以基于某些性能考虑(例如,工作负载、延时等)调度代码执行。
用户代码可以从诸如图1的存储服务108等的辅助服务106下载。图1所示的数据108A可以包括由一个或多个用户上传的用户代码、与这样的用户代码相关联的元数据或由虚拟计算系统110用来执行本文描述的一种或多种技术的任何其他数据。尽管在图1的示例中仅示出了存储服务108,但是虚拟环境100可以包括用户代码可以从其下载的其他级别的存储系统。例如,每个实例可以具有一个或多个存储系统,物理地(例如,驻留在其上运行实例的物理计算系统上的本地存储装置)或逻辑地(例如,与实例网络通信并提供虚拟计算系统110内或外的网络附属的存储系统)与其上创建有容器的实例相关联。另选地,代码可以从存储服务108提供的基于web的数据存储中下载。
一旦工作者管理器140在预热池130A中查找到可以用于服务于用户代码执行请求的虚拟机实例之一,则预热池管理器130或工作者管理器140将所述实例从预热池130A中取出并将其分配给与请求相关联的用户。将所分配的虚拟机实例从预热池130A中取出并放置在活动池140A中。在一些实施方案中,一旦已经将虚拟机实例分配给特定用户,相同的虚拟机实例就不能用于服务于任何其他用户的请求。这通过防止可能的用户资源混合来向用户提供安全益处。另选地,在一些实施方案中,属于不同用户(或分配给与不同用户相关联的请求)的多个容器可以共存于单个虚拟机实例上。这种方法可以提高可用计算容量的利用率。在一些实施方案中,虚拟计算系统110可以维护单独的高速缓存,其中存储用户代码以充当虚拟机实例的本地高速缓存与基于网络的网络存储(例如,可经由网络104访问)之间的高速缓存系统的中间级别。
在已经执行用户代码之后,工作者管理器140可以卸除用于执行用户代码的容器以释放其占用的资源以用于实例中的其他容器。另选地,工作者管理器140可以保持容器运行以使用其来服务于来自相同用户的额外请求。例如,如果接收到与已经加载在容器中的相同用户代码相关联的另一个请求,则可以将请求分配给相同容器,从而消除与创建新容器和将用户代码加载到容器中相关联的延迟。在一些实施方案中,工作者管理器140可以卸除其中创建用于执行用户代码的容器的实例。另选地,工作者管理器140可以保持实例运行以使用其来服务于来自相同用户的额外请求。对在用户代码完成执行之后是否保持容器和/或实例的运行的确定可以基于阈值时间、用户的类型、用户的平均请求量、周期性信息(例如,活动池140A中其上当前未执行用户代码的容器/实例可以(i)在周期性信息指示预期额外的请求很快到达的情况下,保持活动,或者(ii)在周期性信息指示额外的请求不可能足够快得到达以证明保持容器/实例活动的情况下,保持终止)和/或其他操作条件。例如,在没有任何活动(例如,代码的运行)下阈值时间过去之后(例如,5分钟、30分钟、1小时、24小时、30天等),关闭容器和/或虚拟机实例(例如,删除、终止等),并且释放分配给它的资源。在一些实施方案中,在容器被卸除之前经过的阈值时间短于在实例被卸除之前经过的阈值时间。
在一些实施方案中,虚拟计算系统110可以在其服务于传入的代码执行请求时将数据提供给一个或多个辅助服务106。例如,虚拟计算系统110可以与监控/日志/计费服务107进行通信。监控/日志/计费服务107可以包括:监控服务,其用于管理从虚拟计算系统110接收的监控信息,诸如虚拟计算系统110上的容器和实例的状态;日志服务,其用于管理从虚拟计算系统110接收的日志信息,诸如由虚拟计算系统110上的容器和的实例执行的活动;以及计费服务,其用于生成与在虚拟计算系统110上执行用户代码相关联的计费信息(例如,基于由监控服务和日志服务管理的监控信息和/或日志信息)。除了如上所述可以由监控/日志/计费服务107(例如,代表虚拟计算系统110)执行的系统级别活动之外,监控/日志/计费服务107可以代表在虚拟计算系统110上执行的用户代码提供应用级别服务。例如,监控/日志/计费服务107可以代表在虚拟计算系统110上执行的用户代码监控和/或记录各种输入、输出或其他数据和参数。虽然示出为单个框,但是监控、日志和计费服务107可以作为单独的服务来提供。
在一些实施方案中,工作者管理器140可以对由工作者管理器140管理的实例和容器(例如,活动池140A中的那些实例和容器)执行健康检查。例如,由工作者管理器140执行的健康检查可以包括确定由工作者管理器140管理的实例和容器是否具有以下中的任何问题:(1)错误配置的联网和/或启动配置,(2)耗尽的存储器,(3)损坏的文件系统,(4)不兼容的内核,和/或可能损害实例和容器的性能的任何其他问题。在一个实施方案中,工作者管理器140周期性地执行健康检查(例如,每5分钟、每30分钟、每小时、每24小时等)。在一些实施方案中,可以基于健康检查的结果自动调整健康检查的频率。在其他实施方案中,可以基于用户请求来调整健康检查的频率。在一些实施方案中,工作者管理器140可以对预热池130A中的实例和/或容器执行类似的健康检查。预热池130A中的实例和/或容器可以与活动池140A中的那些实例和容器一起或单独管理。在一些实施方案中,在预热池130A中的实例和/或容器的健康与活动池140A分开管理的情况下,预热池管理器130取代工作者管理器140可以对预热池130A中的实例和/或容器执行上述健康检查。
路由管理器
路由管理器150创建并管理在由虚拟计算系统110接收的传入的代码执行请求与用于处理那些代码执行请求的计算容量之间的映射。所述映射可以促进多个请求使用和再使用某些容器特定资源。例如,给定的容器可以与存储代码执行结果的高速缓存相关联,并且可以由在给定的容器中执行的任何程序代码访问。因此,一旦将与请求相关联的代码执行结果存储在高速缓存中,则在相同类型的后续请求被路由到给定的容器的情况下,可以使用存储在高速缓存中的代码执行结果更高效地处理所述后续请求。虽然路由管理器150被示出为虚拟计算系统110内的不同部件,但是路由管理器150的部分或全部功能可由前端120、预热池管理器130和/或工作者管理器140执行。例如,路由管理器150可以完全在虚拟计算系统110的其他部件之一内或以分布式方式在虚拟计算系统110的其他部件上实施。在图1的示例中,路由管理器150包括映射数据150A。映射数据150A可以包括指示应当如何将传入的代码执行请求路由到在虚拟计算系统110上运行的容器的数据。映射数据150A还可以包括由用户指定或由路由管理器150确定的用于路由由虚拟计算系统110接收的传入的请求的任何容器/路由策略。映射数据150A可以存储在虚拟计算系统110内部的存储装置中和/或存储在外部存储装置(例如,存储服务108)中并周期性地备份。
路由管理器150可以包括:路由参数确定单元,其用于确定与给定的代码执行请求相关联的路由参数,以及容器查找单元,其用于基于确定的路由参数来确定将用于处理给定的代码执行请求的适当容器。下文参考图2更详细地描述路由管理器150的示例性配置。
维护与容器相关联的资源
在一些实施方案中,在虚拟计算系统110上运行的容器可以与容器特定资源(诸如可由在容器中执行的任何程序代码访问的存储器、磁盘存储装置、数据库等)相关联。例如,在容器中执行的程序代码的代码执行结果可以高速缓存在与容器相关联的本地存储器中。虚拟计算系统110可以利用高速缓存的结果来促进相同类型的其他代码执行请求(例如,与相同程序代码和相同参量集相关联的请求)。在一个示例中,用户可能希望提供天气服务,所述天气服务允许人们键入邮政编码并查看与那些邮政编码相关联的天气信息。每次输入邮政编码时,都可以使用所输入的邮政编码向虚拟计算系统110发送请求以执行天气信息查找功能(例如,在分配给用户的虚拟机实例上创建的容器中)。查找功能可以使用邮政编码从天气数据库中检索天气信息并输出检索到的天气信息。检索到的天气信息也可以存储在与容器相关联的存储器中,使得任何未来的代码执行请求都可以利用存储的信息。例如,如果接收到具有相同邮政编码的另一个请求(例如,在阈值时间段内),则天气信息查找功能可以简单地返回高速缓存的结果而不去到天气数据库,从而实现一些延时增益。即使当前的天气信息被缓存,如果后续请求被路由到无法访问高速缓存的信息的不同容器,则高速缓存的信息将不可用于天气信息查找功能,并且无法实现延时增益。另外或另选地,虚拟计算系统110可以具有其他资源,诸如存储器、磁盘存储装置、数据库等,其可以以实例级别访问(例如,可由在特定实例上或其上的任何容器上执行的任何程序代码访问)和/或以账户级别访问(例如,可由在与用户相关联的实例上执行的任何程序代码访问)。
在请求与特定容器之间的映射
在一些实施方案中,路由管理器150处理传入的代码执行请求并确定应当将请求路由到哪些容器。例如,当虚拟计算系统110第一次接收到与给定的程序代码相关联的请求时,可能不存在将请求路由到在虚拟计算系统110上运行的特定容器的映射。一旦接收到这样的请求,则实例可以从预热池130A移动到活动池140A并且分配给与请求相关联的用户。然后,虚拟计算系统110可以在实例上创建容器,将程序代码加载到容器上,并且在容器中执行程序代码。在执行程序代码时生成或获得的任何信息可以存储在与容器相关联的一个或多个计算资源中。计算资源可以包括仅容器可访问的本地存储器和/或磁盘存储装置。计算资源还可以包括保存在虚拟计算系统110上或在外部服务(例如,辅助服务106)上的数据库。在将执行程序代码时生成或获得的信息存储在一个或多个计算资源中时,路由管理器150可以更新映射数据150A,使得可以从利用所存储的容器特定信息受益的未来请求将被路由到此特定容器。
路由管理器150可以利用任何已知的散列方案或其他数据结构来更新和维护映射数据150A。例如,请求中所包括的执行参数可能被散列并映射到容器的ID。对于虚拟计算系统110上的每个程序代码执行,映射数据150A可以包括将执行参数的各种组合映射到特定容器的表。路由管理器150可以散列请求中所包括的一个或多个执行参数以确定路由参数,并且使用路由参数来确定映射数据150A将路由参数映射到的特定容器。例如,如果第一请求以参量“当前温度”和“90020”请求执行Function Foo,则路由管理器150可以将第一请求路由到第一容器,并且如果第二请求以参量“当前温度”和“10012”请求执行Function Foo,则路由管理器150可以将第二请求路由到第二容器。在另一个示例中,请求可以指定请求被配置成管理或修改的数据库的名称。在这样的示例中,数据库名称可以充当映射到特定容器的路由参数(例如,与映射到容器A的数据库A相关联的请求、与映射到容器B、C和D的数据库B相关联的请求、与映射到容器E的数据库C、D和E相关联的请求等)。
在其他实施方案中,在生成路由参数时仅考虑参数的子集。在这样的示例中,无论其他参量值如何,与Function Foo和参量“当前温度”相关联的每个请求都可以被路由到相同的容器。在又一个示例中,映射数据150A可以使得与Function Foo相关联的所有请求将被路由到特定容器。虽然在本公开的一些实施方案中使用路由到特定容器的示例,但是本文讨论的技术可以适用于提供将请求映射到特定实例、特定前端、特定地理位置、特定工作者管理器等的映射数据150A,使得相关的粒度级别的计算资源(例如,实例特定资源、账户特定资源、位置特定资源等)可以被请求利用。
映射数据150A可以由用户例如经由一个或多个UI、CLI、API和/或其他编程接口来提供。例如,当容器被创建或终止时,虚拟计算系统110可以向用户提供某些容器信息,使得用户可以提供关于特定容器的映射数据。在一些实施方案中,映射数据150A可以指定第一组请求(例如,与Function Foo相关联的请求、包含由用户指定的特定参数的请求、在特定小时期间接收到的请求等)应当被路由到一个容器并且第二组请求应该被路由到另一个容器。通过在请求中提供将使用特定容器处理请求的指示,和/或通过提供参数值(例如,散列值)与特定容器之间的映射,用户可以控制使用哪些容器处理哪些请求(并因此访问哪些容器特定资源),并且通过使用容器特定资源(例如,本地存储在容器内的数据)省略昂贵的操作来实现与请求相关联的延时缩短。映射数据150A可以基于用户账户(例如,与路由到不同容器的不同用户账户相关联的请求)、程序代码(例如,与路由到不同容器的不同程序代码相关联的请求)、当日时间(例如,在不同的小时、天、月、年等接收的被路由到不同的容器的请求)、地理区域(例如,与被路由到不同容器的不同地理区域相关联的请求)、函数参量(例如,具有不同参数或参量组合被路由到不同容器的请求)、其他请求参数或元数据等。在一些实施方案中,映射数据150A的将致使这类请求被路由到此特定容器的部分在容器终止时被删除(例如由于缺乏使用)。
管理后端资源
在一些实施方案中,路由管理器150可以监控结合传入的代码执行请求利用的后端资源。在一些情况下,在虚拟计算系统110上执行的程序代码可以使用第三方或用户拥有的资源(例如,磁盘存储装置、数据库、网络等),并且这样的资源可以不扩展以及那些资源由虚拟计算系统110管理(例如,处理大的突发流量),从而产生阻抗失配。在这种情况下,虚拟计算系统110可以允许用户指定请求和容器之间的映射,使得后端资源以更受控制的方式进行利用。例如,映射数据150A可以规定,利用第一后端资源的所有请求应当路由到第一容器,并且利用第二后端资源的所有请求应当路由到一组十个容器中的任何容器。在这样的示例中,当在第一容器中执行程序代码时,用户可以确定所述程序代码是唯一一个访问或管理第一后端资源的程序代码,并且第一后端资源不会因大量的同时请求而负担过重。
计算容量的用户定制
在一些实施方案中,虚拟计算系统110可以允许用户定制用于处理其请求的实例。例如,用户可以例如经由一个或多个UI、CLI、API和/或其他编程接口来指定在服务于与用户相关联的代码执行请求的实例上提供语言运行时(或其他软件部件)的特定版本。作为响应,当新实例被分配给用户时,虚拟计算系统110可以安装语言运行时的指定版本,使得其上创建的任何容器可以访问安装的语言运行时。在一些实施方案中,路由管理器150可以更新映射数据150A,使得与用户相关联的请求被路由到在这些定制实例上运行的一个或多个容器,使得在初始定制(以及相关联的延时命中)之后,在定制实例上创建的后续容器可以利用所述定制。
前端/路由管理器闲聊路由信息
在一些实施方案中,虚拟计算系统110可以具有与不同组的预热池管理器130和工作者管理器140相关联的多个前端120。在这样的实施方案中,路由管理器150可以与每个前端120通信以提供用于将传入的代码执行请求路由到特定容器(或实例)的路由信息。在其他实施方案中,每个前端120可以与不同的路由管理器150相关联。在这样的实施方案中,一旦新的路由信息(例如,映射数据150A)变得可用,前端120和/或路由管理器150就可以彼此闲聊信息,使得可以将传入的代码执行请求路由到适当的容器。例如,一旦前端120或路由管理器150中的一个获得或确定新的映射信息,映射信息就与虚拟计算系统110上的所有前端120或路由管理器150共享。
账户、实例、函数和容器级别资源(11)
在一些实施方案中,虚拟计算系统110以各种级别维护一个或多个计算资源。例如,虚拟计算系统110可以维护一个或多个账户级别资源(例如,可由与相同账户相关联的任何代码执行访问)、一个或多个实例级别资源(例如,可由相同实例上的任何代码执行访问)、一个或多个函数级别资源(例如,可由与相同函数或程序代码相关联的任何代码执行访问)、一个或多个容器级别资源(例如,可由相同容器中的任何代码执行访问)等等。计算资源可以包括可以在代码执行期间访问的存储器、磁盘存储装置、数据库、网络或任何其他资源。
控制容器生命周期的外部服务
在一些实施方案中,虚拟计算系统110可以允许第三方服务(例如,应用程序性能监控服务、日志服务等)对在虚拟计算系统110上创建的容器的生命周期进行一定量的控制。在一些情况下,这些服务可能具有仅以特定的速率摄取或仅摄取特定类型的数据的能力。在这样的情况下,虚拟计算系统110可以允许这些服务控制创建和/或终止容器的速度,例如通过允许这些服务在创建或终止容器之前/之后执行一个或多个操作。在一个示例中,日志服务可以在容器的生命周期结束时执行某些记录操作以执行记录和清理操作。在另一个示例中,外部服务可以指定仅特定类型的请求应当发送到由外部服务管理的容器。作为响应,路由管理器150可以更新映射数据150A,使得仅指定类型的请求被路由到由外部服务管理的容器。
容器生命周期管理
在一些实施方案中,路由管理器150可以通过避免在容器中的代码执行已经完成之后立即或者不久终止容器而保持一个或多个容器活动。例如,即使容器无法用于服务于任何现有的代码执行请求,路由管理器150也可以促使某些容器保持活动。是否保持这种容器活动的决定可以基于虚拟计算系统110接收将使用容器处理的请求的所预期的频率和/或已经与这些容器相关联地存储在容器特定计算资源中的信息量。下文参考图6更详细地描述使容器保持活动超出其正常调度的过程。
关于未来代码执行的信息
在一些实施方案中,路由管理器150可以维护关于虚拟计算系统110上的未来代码执行的执行信息。例如,这样的信息可以规定函数Y应当在成功执行函数X时执行,并且函数Z应当在执行函数X失败时执行。在这样的示例中,路由管理器150可以在每次尝试执行程序代码之后检查执行信息,以确定下一个动作过程。在另一个示例中,路由管理器150可以维护与其中执行程序代码的容器相关联的一个或多个计算资源中的执行信息,并且在请求已经被路由到容器之后检查执行信息(例如,正如路由管理器150将检查高速缓存的信息以确定是否应当或应当如何执行程序代码)。
本地计时器
在一些实施方案中,路由管理器150可以维护单个容器内的本地计时器。例如,第一容器可以维护与第一容器相关联的计算资源(例如,存储器、磁盘存储装置等)中的本地计时器,并且路由到第一容器的任何请求可以利用本地计时器来在第一容器中执行代码。通过维护路由到第一容器的请求可以利用的本地定时器,路由管理器150消除了访问某些外部服务(例如,在虚拟计算系统110外部的调度服务)以监控定时信息的需求(例如,请求可以简单地利用本地计时器),从而实现延时增益。
路由管理器的通用架构
图2描绘了管理虚拟计算系统110中的虚拟机实例的计算系统(称为路由管理器150)的通用架构。图2中描绘的路由管理器150的通用架构包括可以用于实施本公开的各方面的计算机硬件和软件模块的布置。路由管理器150可以包括比图2中示出的更多(或更少)的元件。然而,没有必要示出所有这些通常的传统元件以便提供可行的公开。如图所示,路由管理器150包括处理单元190、网络接口192、计算机可读介质驱动器194、输入/输出装置接口196,所有这些可以通过通信总线彼此通信。网络接口192可以提供与一个或多个网络或计算系统的连接性。处理单元190因此可以经由网络104从其他计算系统或服务接收信息和指令。处理单元190还可以与存储器180来回通信,并且还经由输入/输出装置接口196提供用于可选显示器(未示出)的输出信息。输入/输出装置接口196还可以接受来自可选输入装置(未示出)的输入。
存储器180可以包含处理单元190执行以便实施本公开的一个或多个方面的计算机程序指令(在一些实施方案中被分组成模块)。存储器180通常包括RAM、ROM和/或其他永久性的、辅助的或非暂时性的计算机可读介质。存储器180可以存储操作系统184,所述操作系统提供供处理单元190在路由管理器150的一般管理和操作中使用的计算机程序指令。存储器180还可以包括用于实施本公开的各方面的计算机程序指令和其他信息。例如,在一个实施方案中,存储器180包括用户界面单元182,所述用户界面单元例如经由导航和/或浏览界面(诸如安装在计算装置上的浏览器或应用程序)生成用于在计算装置上显示的用户界面(和/或其指令)。另外,存储器180可以包括一个或多个数据储存库(未示出)和/或可以与其通信,以例如访问用户程序代码和/或库。
除了用户界面单元182之外和/或与用户界面单元182结合,存储器180可以包括可以由处理单元190执行的路由参数确定单元186和容器查找单元188。在一个实施方案中,用户界面单元182、路由参数确定单元186和容器查找单元188单独地或共同地实施本公开的各个方面,例如维护用于将请求路由到适当的容器的路由信息,处理传入的代码执行请求,确定与请求相关联的路由参数,识别将用于处理请求的容器等,如下文另外描述。
路由参数确定单元186确定与给定的代码执行请求相关联的路由参数。例如,路由参数确定单元186处理代码执行请求并提取请求中所包括的路由参数。另外或另选地,路由参数确定单元186基于与请求相关联的账户、与请求相关联的程序代码、请求中所包括的执行参数、或与请求相关联的其他元数据(诸如接收时间等)中的一个或多个来确定路由参数。
容器查找单元188使用所确定的路由参数来查找请求应被路由到的适当容器。可以使用任何已知的散列和/或查找方案来将路由参数与特定容器关联,并基于路由参数确定适当的容器。
虽然路由参数确定单元186和容器查找单元188在图2中示出为路由管理器150的一部分,但是在其他实施方案中,路由参数确定单元186和容器查找单元188的全部或一部分可以作为单个单元、单独的单元或以分布式方式由虚拟计算系统110的其他部件和/或另一个计算装置实施。例如,在本公开的某些实施方案中,与虚拟计算系统110通信的另一个计算装置可以包括与示为路由管理器150的一部分的模块和部件类似地操作的若干模块或部件。
用于路由代码执行请求的示例性例程
现在参考图3,将描述由虚拟计算系统110的一个或多个部件(例如,路由管理器150)实施的例程300。虽然关于路由管理器150进行的实施来描述例程300,但是相关领域的技术人员将明白,替代部件可以实施例程300或者一个或多个框可以由不同的部件或以分布式方式来实施。
在说明性例程300的框302处,路由管理器150维护多个虚拟机实例。多个虚拟机实例可以包括预热池(例如,预热池130A),所述预热池包括其上加载有一个或多个软件部件并等待分配给用户的虚拟机实例;以及活动池(例如,活动池140A),所述活动池包括当前分配给一个或多个用户的虚拟机实例。活动池中的虚拟机实例可以在其上创建有用于在其中执行程序代码的一个或多个容器。
在框304处,路由管理器150处理在虚拟计算系统110上执行程序代码的请求。所述请求可以包括将基于通过程序代码的先前执行修改的一个或多个计算资源来执行程序代码的用户指示。例如,程序代码的先前执行可能已经致使某些数据(例如,存储在数据库中的键值对、函数返回值等)被检索(例如,从与虚拟计算系统110通信的外部数据库服务)或者被计算并本地存储在其中发生先前执行的容器内,并且可以从访问存储的数据中受益的任何后续请求或包括使用这种存储的数据的用户指示的任何后续请求可以被路由到其中发生先前执行的容器,使得后续执行可以访问本地存储的数据。所述请求还可以包括用户账户信息(例如,与用户相关联的账户的标识)、程序代码信息(例如,将执行的第一程序代码的标识)和将用于执行第一程序代码的一个或多个参数(例如,执行参数、函数参量等)。
在框306处,路由管理器150基于将基于通过程序代码的先前执行修改的一个或多个计算资源来执行程序代码的用户指示,识别所述多个虚拟机实例中的第一虚拟机实例上与一个或多个计算资源相关联的容器。例如,路由管理器150可以基于请求中提供的用户指示来计算散列值,并且在虚拟计算系统上所维护的映射表(例如,映射数据150A)中执行散列值的查找,所述映射表将散列值映射到特定的容器。例如,用户指示(或在虚拟计算系统110上维护的映射数据150A)还可以规定与相同参数(例如,将用于查找天气信息的邮政编码)相关联的请求应当被路由到相同的参数容器。虽然容器被用作示例性目的地,但是请求或映射数据150A可以指示请求应当被路由到多个容器或一组容器中的一个。
在框308处,路由管理器150致使程序代码在容器中执行。在一个示例中,路由管理器150(或虚拟计算系统110的另一个部件,诸如工作者管理器140)可以确定是否已经在容器中处理了相同类型的请求,并且如果是,则确定与容器相关联的一个或多个计算机资源是否包含可以促进程序代码的执行的信息。例如,与程序代码相关联的先前执行结果可能已经被存储在与容器相关联的存储器中。在这种情况下,程序代码的当前执行可以基于先前执行结果的可用性输出或返回先前执行结果或省略某些计算操作(例如,数据检索、函数调用、数据计算等),从而实现延时缩短。
虽然上文已经参考框302-308描述了图3的例程300,但是本文描述的实施方案不限于此,并且可以省略、修改或交换一个或多个框,而不脱离本公开的精神。
示例性映射表
现在参考图4,将描述由虚拟计算系统110或图1的辅助服务106维护的示例性映射表。如图4所示,表400包括标记为“请求A”、“请求B”、“请求C”和“请求D”的传入的代码执行请求,其中每个请求与路由参数和容器ID相关联。例如,请求A的路由参数值为X并且容器ID为2,请求B的路由参数值为Y并且容器ID为7,请求C的路由参数值为C并且容器ID为2,并且请求D的路由参数值为D并且容器ID为1。在图4的示例中,假定请求A-D被虚拟计算系统110依序接收(例如,A,然后B,然后C,然后D)。路由管理器150可以基于请求中所包括的路由参数或者基于请求的性质(例如,相关联的用户账户、函数等)来确定与请求A相关联的路由参数。路由管理器150确定请求A的路由参数为“X”,并且识别与路由参数X相关联的容器,所述容器是ID值为2的容器。在处理请求A之后,基于所确定的路由参数值“Y”,接收请求B并将其路由到ID值为7的容器。当接收到请求C时,路由管理器150确定请求C具有与先前处理的请求A相同的路由参数值。根据映射表400,也使用ID值为2的容器来处理请求C,如果请求C能够利用由请求A处理并与ID值为2的容器相关联地存储的信息,则潜在地实现一些延时增益。然后,基于所确定的路由参数值“Z”,接收到请求D并将其路由到ID值为1的容器。在一些实施方案中,路由参数值可以指示被请求用于执行程序代码的特定资源(例如,标识资源的资源ID,诸如图1的资源158C和资源159A-1)。例如,可以将请求使用相同资源的请求路由到相同容器或相同组的容器。
映射表(或映射数据150A)不限于图4的示例中所示的配置,并且可以包括可以用于确定应当如何将请求路由到哪些容器的任何数量的参数。
用于高速缓存代码执行结果的示例性例程
现在参考图5,将描述由虚拟计算系统110的一个或多个部件(例如,路由管理器150)实施的例程500。虽然关于路由管理器150进行的实施描述了例程500,但是相关领域的技术人员将明白,替代部件可以实施例程500或者一个或多个框可以由不同的部件或以分布式方式来实施。
在说明性例程500的框502处,路由管理器150将执行程序代码的请求路由到容器。可能已经根据参考图3描述的例程300识别请求所路由到的容器。
在框504处,路由管理器150确定在与容器相关联的资源(例如,存储器、磁盘存储装置、数据库等)之一中是否可利用可以被请求利用的先前代码执行数据。在一些示例中,路由管理器150可以确定与容器相关联的计算资源是否包含可用于结合当前请求使用的任何信息(例如,代码执行结果,或其他数据、确定和/或计算)。如果路由管理器150确定可以被请求利用的先前代码执行数据可用,则例程进行到框510,其中先前代码执行数据被呈现给程序代码。否则,例程500进行到框506。
在框506处,路由管理器150致使程序代码在容器中执行。程序代码可以使用请求中所包括的一个或多个参数来执行。在一些实施方案中,呈现给程序代码的高速缓存的数据致使程序代码以与程序代码在没有高速缓存的数据时具有的状态不同的状态开始。程序代码可以基于高速缓存的数据的可用性而省略某些计算操作(诸如数据检索或计算)。一旦代码执行完成,路由管理器150就可以存储任何信息,这些信息可以促进处理与容器相关联的一个或多个计算资源中的相同或类似类型的未来请求。在框508处,路由管理器150输出从执行程序代码获得的代码执行结果。在一些情况下,输出的代码执行结果可以与在框510处呈现给程序代码的高速缓存的数据相同。在其他情况下,程序代码还处理或修改高速缓存的数据以产生与高速缓存的数据不同的代码执行结果。
尽管上文已经参考框502-510描述了图5的例程500,但是本文描述的实施方案不限于此,并且可以省略、修改或交换一个或多个框,而不脱离本公开的精神。
用于管理容器生命周期的示例性例程
现在参考图6,将描述由虚拟计算系统110的一个或多个部件(例如,路由管理器150)实施的例程600。虽然关于路由管理器150进行的实施描述了例程600,但是相关领域的技术人员将明白,替代部件可以实施例程600或者一个或多个框可以由不同的部件或以分布式方式来实施。
在说明性例程600的框602处,路由管理器150完成在容器上执行程序代码。在框604处,路由管理器150基于完成的执行更新与容器相关联的一个或多个计算资源。更新的计算资源可以包括可以促进处理相同或类似类型的未来请求的信息,如参考图5所讨论。
在框606处,路由管理器150确定是否满足用于保持容器活动的一个或多个阈值标准。在一些情况下,即使虚拟计算系统110没有可以使用容器处理的任何请求,容器也可能不会立即关闭,预期这样的请求可能很快到达并且利用与容器相关联存储的信息。在这种情况下,如果通过保持容器活动并且使用容器处理未来请求来实现的性能增益超过保持容器活动的成本,则路由管理器150可以选择使容器保持活动达超过正常调度表的一段延长的时间段。阈值标准可以包括接收相同类型的请求的阈值频率等级。例如,如果容器具有在不久的将来可以被大量使用的高速缓存的信息(例如,预期以比阈值频率等级更高的频率接收),则路由管理器150可以保持容器活动。阈值标准可以包括与容器相关联存储的信息的阈值大小。如果容器具有存储在本地存储器或存储装置中的大量信息(例如,大于阈值量),则路由管理器150可以保持容器活动。如果路由管理器150确定不满足阈值标准,则例程600进行到610。否则,例程600进行到框608。
在框608处,路由管理器150保持容器运行以处理未来的代码执行请求。在一些实施方案中,容器保持活动超过其正常调度表的持续时间与存储在容器中的信息的大小或接收将使用存储在容器中的信息的请求的所预期的频率成比例。在其他实施方案中,容器保持活动达一段固定的持续时间,并且如果容器在所述固定持续时间内保持空闲,则容器关闭。
在框610处,路由管理器150致使与容器相关联的任何高速缓存的数据呈现给关闭程序代码(或关闭钩子),所述关闭程序代码被配置成在容器关闭时执行。关闭程序代码可以用于执行任何日志、监控、清理或与容器相关联的其他操作。在框612处,路由管理器150致使关闭程序代码在容器中执行。在框614处,路由管理器150致使容器关闭。在一些实施方案中,路由管理器150可以在执行关闭之前通知容器关闭,使得存储在容器特定计算资源中的任何数据即使在关闭容器之后,也可以存储在可用的永久存储装置中。
尽管上文已经参考框602-608描述了图6的例程600,但是本文描述的实施方案不限于此,并且可以省略、修改或交换一个或多个框,而不脱离本公开的精神。例如,在一些实施方案中,在框614处,容器不关闭,而是重置或清除。
其他考虑事项
本领域中的技术人员将明白,本公开中描述的所有功能可以在由所公开部件和移动通信装置的一个或多个物理处理器执行的软件中实施。所述软件可以持久存储在任何类型的非易失性存储装置中。
除非另外特别说明,或者在所用的上下文中理解,否则诸如“能够”、“可以”、“可能”或“可”等条件语言通常意图表示,尽管其他实施方案不包括,但某些实施方案包括某些特征、元件和/或步骤。因此,这样的条件语言通常不意图以任何方式暗指一个或多个实施方案需要特征、元件和/或步骤,或者一个或多个实施方案有必要包括用于在具有或不具有用户输入或提示的情况下决定这些特征、元件和/或步骤是否包括在任何特定实施方案中或将在其中执行。
本文所描述和/或附图所描绘的流程图中的任何过程说明、元件或框应当理解成潜在地代表包括用于实施过程中的特定逻辑功能或步骤的一个或多个可执行指令的代码模块、片段或部分。替代实施包括在本文描述的实施方案的范围内,其中元件或功能可以被删除,不按所示或所讨论的顺序执行,包括基本上同时或以相反的顺序执行,这取决于所涉及的功能,如本领域技术人员将理解。另外应当明白,可以将上述数据和/或部件存储在计算机可读介质上并且使用与存储计算机可执行部件的计算机可读存储介质(诸如CD-ROM、DVD-ROM或网络接口)相关联的驱动机构将其加载到计算装置的存储器中。此外,部件和/或数据可以包括在单个装置中或以任何方式分布。因此,通用计算装置可以被配置成通过处理和/或执行上述各种数据和/或部件来实施本公开的过程、算法和方法。
考虑到以下条款可以更好地理解上述内容:
1.一种用于提供低延时计算容量的系统,所述系统包括:
外部数据库服务,其被配置成存储多个键值对;
虚拟计算系统,其包括执行特定计算机可执行指令的一个或多个硬件计算装置,所述虚拟计算系统与所述外部数据库服务通信并且被配置成至少:
在一个或多个物理计算装置上维护多个虚拟机实例,其中所述多个虚拟机实例包括:
预热池,其包括虚拟机实例,所述虚拟机实例上加载有一个或多个软件部件并且等待被分配给用户;以及
活动池,其包括当前分配给一个或多个用户的虚拟机实例;
处理在所述虚拟计算系统上执行与第一用户相关联的第一程序代码的第一请求,所述第一请求包括所述第一用户的标识,以及将用于执行所述第一程序代码的一个或多个第一执行参数;
使用所述一个或多个第一执行参数在所述活动池中的第一虚拟机实例上创建的第一容器中执行所述第一程序代码,所述程序代码的所述执行致使从所述外部数据库服务中检索所述多个键值对中的一个或多个键值对并将其本地存储在所述第一容器内;
处理在所述虚拟计算系统上执行所述第一程序代码的第二请求,所述第二请求包括所述第一用户的所述标识、将用于执行所述第一程序代码的一个或多个第二执行参数以及使用先前用于处理所述第一请求的所述第一容器来处理所述第二请求的用户指示;并且
基于将使用所述第一容器来处理所述第二请求的所述用户指示,使用所述一个或多个第二执行参数在所述第一容器中执行所述第一程序代码,所述第一程序代码的所述执行访问本地存储在所述第一容器中的所述一个或多个键值对,使得与基于所述一个或多个第二执行参数执行所述第一程序代码相关联的延时缩短。
2.根据条款1所述的系统,其中所述虚拟计算系统被配置成通过计算与所述用户指示相关联的散列值并且在由所述虚拟计算系统维护的映射表中执行对所计算的散列值的查找来识别所述第一容器,所述映射表将一个或多个散列值映射到在所述多个虚拟机实例上运行的特定容器。
3.根据条款1所述的系统,其中使用所述一个或多个第二执行参数执行所述第一程序代码基于本地存储在所述第一容器内的所述一个或多个键值对来省略从所述外部数据库服务中的至少一次数据检索。
4.根据条款1所述的系统,其中所述虚拟计算系统还被配置成即使在已经完成使用所述一个或多个第二执行参数执行所述第一程序代码之后,仍保持所述第一容器运行,使得可以使用所述第一容器处理后续请求,所述后续请求提供使用所述第一容器的指示。
5.一种系统,包括:
虚拟计算系统,其包括执行特定计算机可执行指令的一个或多个硬件计算装置,并且被配置成至少:
在一个或多个物理计算装置上维护多个虚拟机实例;
处理在所述虚拟计算系统上执行第一程序代码的第一请求,所述第一请求包括用户账户信息、将用于执行所述第一程序代码的一个或多个参数以及将基于通过所述第一程序代码的先前执行修改的一个或多个计算资源来执行所述第一程序代码的用户指示;
基于将基于通过所述第一程序代码的先前执行修改的一个或多个计算资源来执行所述第一程序代码的所述用户指示,识别所述多个虚拟机实例中的第一虚拟机实例上与通过所述第一程序代码的先前执行修改的所述一个或多个计算资源相关联的第一容器;并且
致使基于与所述第一容器相关联的所述一个或多个计算资源在所述第一容器中执行所述第一程序代码。
6.根据条款5所述的系统,其中所述虚拟计算系统被配置成维护映射表,所述映射表将与传入的代码执行请求相关联的一个或多个值映射到在所述多个虚拟机实例上运行的特定容器。
7.根据条款5所述的系统,其中与所述第一容器相关联的所述一个或多个计算资源包括所述第一容器内的本地存储装置,所述本地存储装置存储结合所述第一程序代码的所述先前执行从与所述虚拟计算系统通信的外部服务中检索的数据。
8.根据条款5所述的系统,其中所述虚拟计算系统还被配置成:
确定与所述第一容器相关联的所述一个或多个计算资源包含与所述第一程序代码的所述先前执行相关联的高速缓存的数据;并且
致使向所述第一程序代码在所述第一容器中的所述执行呈现所述高速缓存的数据,其中所述第一程序代码的所述执行基于所述高速缓存的数据省略至少一个计算操作,从而实现缩短的延时。
9.根据条款5所述的系统,其中所述第一虚拟机实例具有可由在所述第一虚拟机实例上运行的一个或多个容器访问的一个或多个实例特定计算资源。
10.根据条款5所述的系统,其中所述用户指示指定致使所述虚拟计算系统将所述第一请求路由到用户选择的容器的参数。
11.根据条款5所述的系统,其中所述虚拟计算系统被配置成将包括相同用户指示的传入的代码执行请求路由到相同容器。
12.根据条款5所述的系统,其中所述虚拟计算系统还被配置成当所述第一容器关闭时自动执行与所述第一容器相关联的关闭程序代码。
13.一种计算机实施的方法,包括:
如由配置有特定可执行指令的一个或多个计算装置实施,
在一个或多个物理计算装置上维护多个虚拟机实例;
处理在所述虚拟计算系统上执行第一程序代码的第一请求,所述第一请求包括用户账户信息、将用于执行所述第一程序代码的一个或多个参数以及将基于通过所述第一程序代码的先前执行修改的一个或多个计算资源来执行所述第一程序代码的用户指示;
基于将基于通过所述第一程序代码的先前执行修改的一个或多个计算资源来执行所述第一程序代码的所述用户指示,识别所述多个虚拟机实例中的第一虚拟机实例上与通过所述第一程序代码的先前执行修改的所述一个或多个计算资源相关联的第一容器;以及
致使基于与所述第一容器相关联的所述一个或多个计算资源在所述第一容器中执行所述第一程序代码。
14.根据条款13所述的方法,其还包括维护映射表,所述映射表将与所述传入的代码执行请求相关联的一个或多个值映射到在所述多个虚拟机实例上运行的特定容器。
15.根据条款13所述的方法,其中与所述第一容器相关联的所述一个或多个计算资源包括所述第一容器内的本地存储装置,所述本地存储装置存储结合所述第一程序代码的所述先前执行从与所述虚拟计算系统通信的外部服务中检索的数据。
16.根据条款13所述的方法,其还包括:
确定与所述第一容器相关联的所述一个或多个计算资源包含与所述第一程序代码的所述先前执行相关联的高速缓存的数据;以及
致使向所述第一程序代码在所述第一容器中的所述执行呈现所述高速缓存的数据,其中所述第一程序代码的所述执行基于所述高速缓存的数据省略至少一个计算操作,从而实现缩短的延时。
17.根据条款13所述的方法,其中所述第一虚拟机实例具有可由在所述第一虚拟机实例上运行的一个或多个容器访问的一个或多个实例特定计算资源。
18.根据条款13所述的方法,其中所述用户指示指定致使所述虚拟计算系统将所述第一请求路由到用户选择的容器的参数。
19.根据条款13所述的方法,其还包括将包括相同用户指示的传入的代码执行请求路由到相同容器。
20.根据条款13所述的方法,其还包括当所述第一容器关闭时自动执行与所述第一容器相关联的关闭程序代码。
应当强调的是,可以对上述实施方案作出许多变化和修改,其中的元件将被理解为是其他可接受的示例。本文中所有这些修改和变化都旨在包括在本公开的范围内并且由以下权利要求保护。
Claims (15)
1.一种用于提供低延时计算容量的系统,所述系统包括:
外部数据库服务,其被配置成存储多个键值对;
虚拟计算系统,其包括执行特定计算机可执行指令的一个或多个硬件计算装置,所述虚拟计算系统与所述外部数据库服务通信并且被配置成至少:
在一个或多个物理计算装置上维护多个虚拟机实例,其中所述多个虚拟机实例包括:
预热池,其包括虚拟机实例,所述虚拟机实例上加载有一个或多个软件部件并且等待被分配给用户;以及
活动池,其包括当前分配给一个或多个用户的虚拟机实例;
处理在所述虚拟计算系统上执行与第一用户相关联的第一程序代码的第一请求,所述第一请求包括路由参数,所述路由参数可用于将所述第一请求路由到可用于执行所述第一程序代码的计算容量,以及将用于执行所述第一程序代码的一个或多个第一执行参数;
使用所述一个或多个第一执行参数在所述活动池中的第一虚拟机实例上创建的第一容器中执行所述第一程序代码,所述程序代码的所述执行致使从所述外部数据库服务中检索所述多个键值对中的一个或多个键值对并将其本地存储在所述第一容器内;
处理在所述虚拟计算系统上执行所述第一程序代码的第二请求,所述第二请求包括先前包括在所述第一请求中的相同的路由参数以及将用于执行所述第一程序代码的一个或多个第二执行参数;并且
基于包括在所述第二请求中的所述路由参数,致使所述第二请求被路由到所述第一容器,以使用所述一个或多个第二执行参数在所述第一容器中执行所述第一程序代码,所述第一程序代码的所述执行访问本地存储在所述第一容器内的所述一个或多个键值对,使得与基于所述一个或多个第二执行参数执行所述第一程序代码相关联的延时缩短。
2.根据权利要求1所述的系统,其中所述虚拟计算系统被配置成通过计算所述路由参数的散列值并且在由所述虚拟计算系统维护的映射表中执行对所计算的散列值的查找来识别所述第一容器,所述映射表将一个或多个散列值映射到在所述多个虚拟机实例上运行的特定容器。
3.根据权利要求1所述的系统,其中使用所述一个或多个第二执行参数执行所述第一程序代码基于本地存储在所述第一容器内的所述一个或多个键值对来省略从所述外部数据库服务中的至少一次数据检索。
4.根据权利要求1所述的系统,其中所述虚拟计算系统还被配置成即使在已经完成使用所述一个或多个第二执行参数执行所述第一程序代码之后,仍保持所述第一容器运行,使得可以使用所述第一容器处理后续请求,所述后续请求提供使用所述第一容器的指示。
5.一种计算机系统,包括:
虚拟计算系统,其包括执行特定计算机可执行指令的一个或多个硬件计算装置,并且被配置成至少:
在一个或多个物理计算装置上维护多个虚拟机实例;
处理在所述虚拟计算系统上执行第一程序代码的第一请求,所述第一请求包括路由参数,所述路由参数可用于将所述第一请求路由到可用于执行所述第一程序代码的计算容量;
基于包括在所述第一请求中的路由参数,确定所述第一请求被路由到第一容器,所述第一容器在所述多个虚拟机实例中的第一虚拟机实例上并且与在所述第一容器中通过所述第一程序代码的先前执行修改的一个或多个计算资源相关联;并且
致使所述第一请求被路由到所述第一容器,以基于与所述第一容器相关联的所述一个或多个计算资源在所述第一容器中执行所述第一程序代码。
6.根据权利要求5所述的系统,其中所述虚拟计算系统被配置成维护映射表,所述映射表将与传入的代码执行请求相关联的一个或多个值映射到在所述多个虚拟机实例上运行的特定容器。
7.根据权利要求5所述的系统,其中与所述第一容器相关联的所述一个或多个计算资源包括所述第一容器内的本地存储装置,所述本地存储装置存储结合所述第一程序代码的所述先前执行从与所述虚拟计算系统通信的外部服务中检索的数据。
8.根据权利要求5所述的系统,其中所述虚拟计算系统还被配置成:
确定与所述第一容器相关联的所述一个或多个计算资源包含与所述第一程序代码的所述先前执行相关联的高速缓存的数据;并且
致使向所述第一程序代码在所述第一容器中的所述执行呈现所述高速缓存的数据,其中所述第一程序代码的所述执行基于所述高速缓存的数据省略至少一个计算操作,从而实现缩短的延时。
9.根据权利要求5所述的系统,其中所述第一虚拟机实例具有可由在所述第一虚拟机实例上运行的一个或多个容器访问的一个或多个实例特定计算资源。
10.根据权利要求5所述的系统,其中所述路由参数致使所述虚拟计算系统将所述第一请求路由到用户选择的容器的参数。
11.根据权利要求5所述的系统,其中所述虚拟计算系统被配置成将包括相同路由参数的传入的代码执行请求路由到相同容器。
12.根据权利要求5所述的系统,其中所述虚拟计算系统还被配置成当所述第一容器关闭时自动执行与所述第一容器相关联的关闭程序代码。
13.一种计算机实施的方法,包括:
如由配置有特定可执行指令的一个或多个计算装置实施,
在一个或多个物理计算装置上维护多个虚拟机实例;
处理在虚拟计算系统上执行第一程序代码的第一请求,所述第一请求包括路由参数,所述路由参数可用于将所述第一请求路由到可用于执行所述第一程序代码的计算容量;
基于包括在所述第一请求中的路由参数,确定所述第一请求被路由到第一容器,所述第一容器在所述多个虚拟机实例中的第一虚拟机实例上并且与在所述第一容器中通过所述第一程序代码的先前执行修改的一个或多个计算资源相关联;以及
致使所述第一请求被路由到所述第一容器,以基于与所述第一容器相关联的所述一个或多个计算资源在所述第一容器中执行所述第一程序代码。
14.根据权利要求13所述的方法,其还包括维护映射表,所述映射表将与传入的代码执行请求相关联的一个或多个值映射到在所述多个虚拟机实例上运行的特定容器。
15.根据权利要求13所述的方法,其中与所述第一容器相关联的所述一个或多个计算资源包括所述第一容器内的本地存储装置,所述本地存储装置存储结合所述第一程序代码的所述先前执行从与所述虚拟计算系统通信的外部服务中检索的数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/977,544 | 2015-12-21 | ||
US14/977,544 US9910713B2 (en) | 2015-12-21 | 2015-12-21 | Code execution request routing |
PCT/US2016/066997 WO2017112526A1 (en) | 2015-12-21 | 2016-12-15 | Code execution request routing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108369534A CN108369534A (zh) | 2018-08-03 |
CN108369534B true CN108369534B (zh) | 2022-03-11 |
Family
ID=57758741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680072794.XA Active CN108369534B (zh) | 2015-12-21 | 2016-12-15 | 代码执行请求路由 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9910713B2 (zh) |
EP (1) | EP3394750B1 (zh) |
JP (2) | JP6647398B2 (zh) |
CN (1) | CN108369534B (zh) |
WO (1) | WO2017112526A1 (zh) |
Families Citing this family (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2014251011B2 (en) | 2013-04-10 | 2016-03-10 | Illumio, Inc. | Distributed network management using a logical multi-dimensional label-based policy model |
US9882919B2 (en) | 2013-04-10 | 2018-01-30 | Illumio, Inc. | Distributed network security using a logical multi-dimensional label-based policy model |
US9715402B2 (en) | 2014-09-30 | 2017-07-25 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US9323556B2 (en) | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US10048974B1 (en) | 2014-09-30 | 2018-08-14 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US9830193B1 (en) | 2014-09-30 | 2017-11-28 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9413626B2 (en) | 2014-12-05 | 2016-08-09 | Amazon Technologies, Inc. | Automatic management 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 |
US9785476B2 (en) | 2015-04-08 | 2017-10-10 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
US9930103B2 (en) | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
US9928108B1 (en) | 2015-09-29 | 2018-03-27 | Amazon Technologies, Inc. | Metaevent handling for on-demand code execution environments |
US10042660B2 (en) | 2015-09-30 | 2018-08-07 | Amazon Technologies, Inc. | Management of periodic requests for compute capacity |
US10754701B1 (en) | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
US9811434B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US10013267B1 (en) | 2015-12-16 | 2018-07-03 | Amazon Technologies, Inc. | Pre-triggers for code execution environments |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
US10002026B1 (en) | 2015-12-21 | 2018-06-19 | Amazon Technologies, Inc. | Acquisition and maintenance of dedicated, reserved, and variable compute capacity |
US10067801B1 (en) | 2015-12-21 | 2018-09-04 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
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 |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US10162672B2 (en) | 2016-03-30 | 2018-12-25 | Amazon Technologies, Inc. | Generating data streams from pre-existing data sets |
US10282229B2 (en) | 2016-06-28 | 2019-05-07 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US10203990B2 (en) | 2016-06-30 | 2019-02-12 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10277708B2 (en) | 2016-06-30 | 2019-04-30 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10061613B1 (en) | 2016-09-23 | 2018-08-28 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US10884787B1 (en) | 2016-09-23 | 2021-01-05 | Amazon Technologies, Inc. | Execution guarantees in an on-demand network code execution system |
US11119813B1 (en) | 2016-09-30 | 2021-09-14 | Amazon Technologies, Inc. | Mapreduce implementation using an on-demand network code execution system |
US11824863B2 (en) * | 2016-11-03 | 2023-11-21 | Nicira, Inc. | Performing services on a host |
US10678935B2 (en) * | 2017-04-11 | 2020-06-09 | Nicira, Inc. | Identifying container file events for providing container security |
US10956220B2 (en) | 2017-06-04 | 2021-03-23 | Apple Inc. | Scheduler for amp architecture using a closed loop performance and thermal controller |
US11977958B2 (en) | 2017-11-22 | 2024-05-07 | Amazon Technologies, Inc. | Network-accessible machine learning model training and hosting system |
US12045693B2 (en) | 2017-11-22 | 2024-07-23 | Amazon Technologies, Inc. | Packaging and deploying algorithms for flexible machine learning |
US10831519B2 (en) | 2017-11-22 | 2020-11-10 | Amazon Technologies, Inc. | Packaging and deploying algorithms for flexible machine learning |
US10962595B1 (en) * | 2017-12-04 | 2021-03-30 | Synopsys, Inc. | Efficient realization of coverage collection in emulation |
US10303492B1 (en) | 2017-12-13 | 2019-05-28 | Amazon Technologies, Inc. | Managing custom runtimes in an on-demand code execution system |
US10564946B1 (en) | 2017-12-13 | 2020-02-18 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US20190222610A1 (en) * | 2018-01-18 | 2019-07-18 | Illumio, Inc. | User-Based Visibility and Control of a Segmentation Policy |
US10831898B1 (en) | 2018-02-05 | 2020-11-10 | Amazon Technologies, Inc. | Detecting privilege escalations in code including cross-service calls |
US10572375B1 (en) | 2018-02-05 | 2020-02-25 | Amazon Technologies, Inc. | Detecting parameter validity in code including cross-service calls |
US10353678B1 (en) | 2018-02-05 | 2019-07-16 | Amazon Technologies, Inc. | Detecting code characteristic alterations due to cross-service calls |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10776091B1 (en) | 2018-02-26 | 2020-09-15 | Amazon Technologies, Inc. | Logging endpoint in an on-demand code execution system |
US11463330B2 (en) * | 2018-03-15 | 2022-10-04 | Grant Viklund | System and methods for scalable cloud-based platform and related applications |
US10884788B2 (en) | 2018-04-03 | 2021-01-05 | Amazon Technologies, Inc. | On-demand code execution with limited memory footprint |
US11012310B2 (en) * | 2018-06-05 | 2021-05-18 | Illumio, Inc. | Managing containers based on pairing keys in a segmented network environment |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US10649749B1 (en) | 2018-06-26 | 2020-05-12 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US10587529B1 (en) * | 2018-09-24 | 2020-03-10 | Amazon Technologies, Inc. | Dynamic selection of router groups to manage computing instances |
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 |
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 |
US11327814B2 (en) * | 2018-11-28 | 2022-05-10 | International Business Machines Corporation | Semaphores for serverless computing |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
WO2020226659A1 (en) * | 2019-05-09 | 2020-11-12 | Huawei Technologies Co., Ltd. | Faas warm startup and scheduling |
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 |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11173389B2 (en) * | 2019-07-30 | 2021-11-16 | Sony Interactive Entertainment LLC | Multipath wireless controller |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US11023311B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US11023416B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Data access control system for object storage service based on owner-defined code |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US11422844B1 (en) | 2019-11-27 | 2022-08-23 | Amazon Technologies, Inc. | Client-specified network interface configuration for serverless container management service |
US10942795B1 (en) | 2019-11-27 | 2021-03-09 | Amazon Technologies, Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US11392422B1 (en) * | 2019-11-27 | 2022-07-19 | Amazon Technologies, Inc. | Service-managed containers for container orchestration service |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11775640B1 (en) | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Resource utilization-based malicious task detection in an on-demand code execution system |
US11403150B1 (en) | 2020-06-23 | 2022-08-02 | Amazon Technologies, Inc. | Replenishment-aware resource usage management |
US11573816B1 (en) | 2020-06-26 | 2023-02-07 | Amazon Technologies, Inc. | Prefetching and managing container images using cluster manifest |
US11487591B1 (en) | 2020-06-29 | 2022-11-01 | Amazon Technologies, Inc. | Automatically configuring execution of a containerized application |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11853807B1 (en) | 2020-12-01 | 2023-12-26 | Amazon Technologies, Inc. | Cluster scaling based on task state information |
US11797287B1 (en) | 2021-03-17 | 2023-10-24 | Amazon Technologies, Inc. | Automatically terminating deployment of containerized applications |
US11729080B2 (en) * | 2021-05-12 | 2023-08-15 | Vmware, Inc. | Agentless method to automatically detect low latency groups in containerized infrastructures |
US11900173B2 (en) * | 2021-05-18 | 2024-02-13 | Kyndryl, Inc. | Container runtime optimization |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
US11989586B1 (en) | 2021-06-30 | 2024-05-21 | Amazon Technologies, Inc. | Scaling up computing resource allocations for execution of containerized applications |
US11995466B1 (en) * | 2021-06-30 | 2024-05-28 | Amazon Technologies, Inc. | Scaling down computing resource allocations for execution of containerized applications |
US11892418B1 (en) | 2021-06-30 | 2024-02-06 | Amazon Technologies, Inc. | Container image inspection and optimization |
CN113849273B (zh) * | 2021-09-26 | 2024-06-28 | 北京百度网讯科技有限公司 | 接入处理的方法、设备、存储介质及程序产品 |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
WO2023129613A1 (en) * | 2021-12-30 | 2023-07-06 | Skillz Platform Inc. | System and method for remotely interacting with cloud-based client applications |
CN114518935A (zh) * | 2021-12-31 | 2022-05-20 | 国电南瑞科技股份有限公司 | 一种容器无感知启动方法及系统 |
Family Cites Families (604)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5063500A (en) * | 1988-09-29 | 1991-11-05 | Ibm Corp. | System for executing segments of application program concurrently/serially on different/same virtual machine |
US4949254A (en) | 1988-09-29 | 1990-08-14 | Ibm Corp. | Method to manage concurrent execution of a distributed application program by a host computer and a large plurality of intelligent work stations on an SNA network |
US5283888A (en) * | 1991-08-27 | 1994-02-01 | International Business Machines Corporation | Voice processing interface unit employing virtual screen communications for accessing a plurality of primed applications |
DE19500957A1 (de) | 1994-07-19 | 1996-01-25 | Bosch Gmbh Robert | Verfahren zur Steuerung von technischen Vorgängen oder Prozessen |
US5970488A (en) | 1997-05-05 | 1999-10-19 | Northrop Grumman Corporation | Real-time distributed database system and method |
JPH1153326A (ja) | 1997-07-30 | 1999-02-26 | Internatl Business Mach Corp <Ibm> | 分散処理システム、クライアントノード、サーバノードおよび分散処理方法 |
US6463509B1 (en) | 1999-01-26 | 2002-10-08 | Motive Power, Inc. | Preloading data in a cache memory according to user-specified preload criteria |
US6501736B1 (en) | 1999-03-19 | 2002-12-31 | Lucent Technologies Inc. | System for increasing the call capacity of a wireless communication system |
JP2000305796A (ja) | 1999-04-22 | 2000-11-02 | Hitachi Ltd | 電子計算機間のジョブ転送方法およびジョブ転送システム |
US6523035B1 (en) | 1999-05-20 | 2003-02-18 | Bmc Software, Inc. | System and method for integrating a plurality of disparate database utilities into a single graphical user interface |
US7472349B1 (en) | 1999-06-01 | 2008-12-30 | Oracle International Corporation | Dynamic services infrastructure for allowing programmatic access to internet and other resources |
US6708276B1 (en) | 1999-08-03 | 2004-03-16 | International Business Machines Corporation | Architecture for denied permissions in Java |
US20050027610A1 (en) | 1999-08-26 | 2005-02-03 | Wharton Brian K. | Electronic commerce systems and methods providing unified checkout steps |
US6854114B1 (en) | 1999-10-21 | 2005-02-08 | Oracle International Corp. | Using a virtual machine instance as the basic unit of user execution in a server environment |
DE10048942B4 (de) | 1999-12-01 | 2008-07-03 | International Business Machines Corp. | Verfahren und System zur Wartung von Software über ein Netz |
JP2001331333A (ja) | 2000-05-18 | 2001-11-30 | Hitachi Ltd | 計算機システム及び計算機システムの制御方法 |
US20040098154A1 (en) | 2000-10-04 | 2004-05-20 | Mccarthy Brendan | Method and apparatus for computer system engineering |
US8719326B2 (en) | 2003-08-18 | 2014-05-06 | S.F. Ip Properties 14 Llc | Adaptive data transformation engine |
JP2002287974A (ja) | 2001-03-26 | 2002-10-04 | Ricoh Co Ltd | アプリケーションプログラムの登録制御及び起動制御に係る方法及び該制御装置 |
US7009939B2 (en) | 2001-05-21 | 2006-03-07 | Lucent Technologies Inc. | Adaptive resource management in a communication system |
CN1529847A (zh) | 2001-07-16 | 2004-09-15 | 任宇清 | 内嵌软件更新系统 |
US20040205493A1 (en) | 2001-08-08 | 2004-10-14 | Simpson Shell S. | Web based imaging application that creates customized content based on user selections |
US7028030B2 (en) | 2001-08-30 | 2006-04-11 | Bea Systems, Inc. | Cluster caching with concurrency checking |
US7594182B2 (en) | 2001-10-12 | 2009-09-22 | National Insturments Corporation | Dynamic and user-defined events for a graphical program |
US7269833B2 (en) | 2001-12-12 | 2007-09-11 | Sun Microsystems, Inc. | Scriptable plug-in application programming interface |
US7174566B2 (en) | 2002-02-01 | 2007-02-06 | Intel Corporation | Integrated network intrusion detection |
US7093004B2 (en) | 2002-02-04 | 2006-08-15 | Datasynapse, Inc. | Using execution statistics to select tasks for redundant assignment in a distributed computing platform |
US8527408B2 (en) | 2002-05-06 | 2013-09-03 | Bottom Line Technologies (De), Inc. | Integrated payment system |
US20030229794A1 (en) | 2002-06-07 | 2003-12-11 | Sutton James A. | System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container |
US7228354B2 (en) | 2002-06-28 | 2007-06-05 | International Business Machines Corporation | Method for improving performance in a computer storage system by regulating resource requests from clients |
US7107585B2 (en) | 2002-07-29 | 2006-09-12 | Arm Limited | Compilation of application code in a data processing apparatus |
US7386855B2 (en) | 2002-08-12 | 2008-06-10 | Ntt Docomo, Inc. | Application mobility service |
US7747989B1 (en) | 2002-08-12 | 2010-06-29 | Mips Technologies, Inc. | Virtual machine coprocessor facilitating dynamic compilation |
US8108656B2 (en) | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
JP2004102597A (ja) | 2002-09-09 | 2004-04-02 | Fujitsu Ltd | コンパイル処理プログラム、コンパイル処理方法、およびコンパイル処理プログラム記録媒体 |
WO2004068367A2 (en) | 2002-12-02 | 2004-08-12 | Sap Aktiengesellschaft | Session-return enabling stateful web applications |
US7031958B2 (en) | 2003-02-06 | 2006-04-18 | International Business Machines Corporation | Patterned based query optimization |
US7774191B2 (en) | 2003-04-09 | 2010-08-10 | Gary Charles Berkowitz | Virtual supercomputer |
US20050193113A1 (en) | 2003-04-14 | 2005-09-01 | Fujitsu Limited | Server allocation control method |
US20040249947A1 (en) | 2003-05-22 | 2004-12-09 | Hewlett-Packard Development Company, L.P. | Concurrent cluster environment |
US7636917B2 (en) | 2003-06-30 | 2009-12-22 | Microsoft Corporation | Network load balancing with host status information |
US8776050B2 (en) | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
US20050044301A1 (en) | 2003-08-20 | 2005-02-24 | Vasilevsky Alexander David | Method and apparatus for providing virtual computing services |
US7441244B2 (en) | 2003-12-10 | 2008-10-21 | International Business Machines Corporation | Workload scheduler with cumulative weighting indexes |
US7743029B2 (en) | 2003-12-30 | 2010-06-22 | Sap Ag | Log configuration and online deployment services |
US20050193283A1 (en) | 2003-12-30 | 2005-09-01 | Reinhardt Steven K. | Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support |
JP2005198201A (ja) | 2004-01-09 | 2005-07-21 | Ntt Docomo Inc | ネットワークトポロジー構成方法及びノード |
US7665090B1 (en) | 2004-03-08 | 2010-02-16 | Swsoft Holdings, Ltd. | System, method, and computer program product for group scheduling of computer resources |
US7565661B2 (en) | 2004-05-10 | 2009-07-21 | Siew Yong Sim-Tang | Method and system for real-time event journaling to provide enterprise data services |
US7587721B2 (en) * | 2004-05-20 | 2009-09-08 | Sap Ag | Sharing objects in runtime systems |
US7359834B2 (en) | 2004-08-13 | 2008-04-15 | Sun Microsystems, Inc. | Monitoring system-calls to identify runaway processes within a computer system |
US20060080678A1 (en) | 2004-09-07 | 2006-04-13 | Bailey Mark W | Task distribution method for protecting servers and tasks in a distributed system |
US8146073B2 (en) | 2004-09-30 | 2012-03-27 | Microsoft Corporation | Updating software while it is running |
JP2006107599A (ja) | 2004-10-04 | 2006-04-20 | Sekisui Chem Co Ltd | 光ディスク |
US20060129684A1 (en) | 2004-11-10 | 2006-06-15 | Chutney Technologies, Inc. | Apparatus and method for distributing requests across a cluster of application servers |
JP4191672B2 (ja) | 2004-12-14 | 2008-12-03 | ザイオソフト株式会社 | ボリュームレンダリング等の画像処理システム |
US8321554B2 (en) | 2004-12-17 | 2012-11-27 | International Business Machines Corporation | System and program to automatically identify a server on which to deploy an application |
US7793290B2 (en) | 2004-12-20 | 2010-09-07 | Sap Ag | Grip application acceleration by executing grid application based on application usage history prior to user request for application execution |
FR2881854B1 (fr) | 2005-02-04 | 2008-01-11 | Radiotelephone Sfr | Procede de gestion securisee de l'execution d'une application |
CN100337218C (zh) | 2005-02-23 | 2007-09-12 | 北京邦诺存储科技有限公司 | 网络存储系统中的数据管理方法及其构建的网络存储系统 |
US8863143B2 (en) | 2006-03-16 | 2014-10-14 | Adaptive Computing Enterprises, Inc. | System and method for managing a hybrid compute environment |
EP1866767B1 (en) | 2005-03-16 | 2018-04-18 | III Holdings 12, LLC | Automatic workload transfer to an on-demand center |
US20060242647A1 (en) | 2005-04-21 | 2006-10-26 | Kimbrel Tracy J | Dynamic application placement under service and memory constraints |
JP4515319B2 (ja) | 2005-04-27 | 2010-07-28 | 株式会社日立製作所 | コンピュータシステム |
JP4690767B2 (ja) | 2005-05-11 | 2011-06-01 | 株式会社日立製作所 | ネットワークシステム、サーバ装置および通信方法 |
US7707579B2 (en) | 2005-07-14 | 2010-04-27 | International Business Machines Corporation | Method and system for application profiling for purposes of defining resource requirements |
US8571913B2 (en) | 2005-08-04 | 2013-10-29 | Jeffrey K. Johnson | System and method for managing data within a calendaring framework |
US8407785B2 (en) | 2005-08-18 | 2013-03-26 | The Trustees Of Columbia University In The City Of New York | Systems, methods, and media protecting a digital data processing device from attack |
JP4580845B2 (ja) | 2005-08-24 | 2010-11-17 | パナソニック株式会社 | タスク実行装置 |
US7730464B2 (en) | 2005-09-14 | 2010-06-01 | Microsoft Corporation | Code compilation management service |
US8429630B2 (en) | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
US20070101325A1 (en) | 2005-10-19 | 2007-05-03 | Juraj Bystricky | System and method for utilizing a remote memory to perform an interface save/restore procedure |
JP4650203B2 (ja) | 2005-10-20 | 2011-03-16 | 株式会社日立製作所 | 情報システム及び管理計算機 |
US7756972B2 (en) | 2005-12-06 | 2010-07-13 | Cisco Technology, Inc. | System for power savings in server farms |
US8266609B2 (en) | 2005-12-07 | 2012-09-11 | Microsoft Corporation | Efficient placement of software transactional memory operations around procedure calls |
US7725574B2 (en) | 2006-01-23 | 2010-05-25 | International Business Machines Corporation | Web browser-based programming language error determination and reporting |
US20070174429A1 (en) | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US7818798B2 (en) | 2006-02-03 | 2010-10-19 | Microsoft Corporation | Software system with controlled access to objects |
MX2008010441A (es) | 2006-02-13 | 2009-02-20 | Maria Gaos | Sistema y metodo para generar y ejecutar una emulacion de plataforma basada en una aplicacion seleccionada. |
WO2007095642A2 (en) | 2006-02-16 | 2007-08-23 | The Regents Of The University Of California | Dynamic incremental compiler and method |
US20070220009A1 (en) | 2006-03-15 | 2007-09-20 | Morris Robert P | Methods, systems, and computer program products for controlling access to application data |
US7801128B2 (en) | 2006-03-31 | 2010-09-21 | Amazon Technologies, Inc. | Managing communications between computing nodes |
US8190682B2 (en) | 2006-03-31 | 2012-05-29 | Amazon Technologies, Inc. | Managing execution of programs by multiple computing systems |
US7792944B2 (en) | 2006-03-31 | 2010-09-07 | Amazon Technologies, Inc. | Executing programs based on user-specified constraints |
US7831464B1 (en) | 2006-04-06 | 2010-11-09 | ClearPoint Metrics, Inc. | Method and system for dynamically representing distributed information |
US7716446B1 (en) | 2006-04-27 | 2010-05-11 | Vmware, Inc. | System and method for cooperative virtual machine memory scheduling |
US9754265B2 (en) | 2006-05-01 | 2017-09-05 | At&T Intellectual Property I, L.P. | Systems and methods to automatically activate distribution channels provided by business partners |
US8046765B2 (en) | 2006-07-25 | 2011-10-25 | Hewlett-Packard Development Company, L.P. | System and method for determining allocation of resource access demands to different classes of service based at least in part on permitted degraded performance |
US8209695B1 (en) | 2006-07-28 | 2012-06-26 | Hewlett-Packard Development Company, L.P. | Reserving resources in a resource-on-demand system for user desktop utility demand |
US8015294B2 (en) | 2006-08-22 | 2011-09-06 | Embarq Holdings Company, LP | Pin-hole firewall for communicating data packets on a packet network |
US7823186B2 (en) | 2006-08-24 | 2010-10-26 | Novell, Inc. | System and method for applying security policies on multiple assembly caches |
CA2557343C (en) | 2006-08-28 | 2015-09-22 | Ibm Canada Limited-Ibm Canada Limitee | Runtime code modification in a multi-threaded environment |
US7996855B2 (en) | 2006-09-15 | 2011-08-09 | Oracle International Corporation | Personal messaging application programming interface for integrating an application with groupware systems |
US20150052258A1 (en) | 2014-09-29 | 2015-02-19 | Weaved, Inc. | Direct map proxy system and protocol |
US8161475B2 (en) | 2006-09-29 | 2012-04-17 | Microsoft Corporation | Automatic load and balancing for virtual machines to meet resource requirements |
US8010990B2 (en) | 2006-10-26 | 2011-08-30 | Intel Corporation | Acceleration of packet flow classification in a virtualized system |
US8584109B2 (en) | 2006-10-27 | 2013-11-12 | Microsoft Corporation | Virtualization for diversified tamper resistance |
US8185893B2 (en) | 2006-10-27 | 2012-05-22 | Hewlett-Packard Development Company, L.P. | Starting up at least one virtual machine in a physical machine by a load balancer |
US8315171B2 (en) | 2006-10-31 | 2012-11-20 | Oracle America, Inc. | Adaptive management of computing resources |
US7644204B2 (en) | 2006-10-31 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | SCSI I/O coordinator |
JP4308241B2 (ja) | 2006-11-10 | 2009-08-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム |
US8112747B2 (en) | 2006-11-27 | 2012-02-07 | Sap Ag | Integrated software support for a distributed business application with seamless backend communications |
CN101196974B (zh) | 2006-12-06 | 2011-08-24 | 国际商业机器公司 | 用于软件应用程序的自动配置的方法和系统 |
WO2008077628A2 (en) | 2006-12-22 | 2008-07-03 | Virtuallogix Sa | System for enabling multiple execution environments to share a device |
US8677353B2 (en) | 2007-01-11 | 2014-03-18 | Nec Corporation | Provisioning a standby virtual machine based on the prediction of a provisioning request being generated |
US20080189700A1 (en) | 2007-02-02 | 2008-08-07 | Vmware, Inc. | Admission Control for Virtual Machine Cluster |
US8655623B2 (en) | 2007-02-13 | 2014-02-18 | International Business Machines Corporation | Diagnostic system and method |
US8793676B2 (en) | 2007-02-15 | 2014-07-29 | Microsoft Corporation | Version-resilient loader for custom code runtimes |
US9270781B2 (en) | 2007-02-15 | 2016-02-23 | Citrix Systems, Inc. | Associating virtual machines on a server computer with particular users on an exclusive basis |
US8065682B2 (en) | 2007-02-27 | 2011-11-22 | Microsoft Corporation | Enforcing system resource usage limits on query requests based on grouping query requests into workgroups and assigning workload groups to resource pools |
JP5018133B2 (ja) | 2007-02-27 | 2012-09-05 | 富士通株式会社 | ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム |
US8856782B2 (en) | 2007-03-01 | 2014-10-07 | George Mason Research Foundation, Inc. | On-demand disposable virtual work system |
JP5293595B2 (ja) | 2007-03-20 | 2013-09-18 | 富士通株式会社 | コンピュータプログラム、更新システム、及びプログラム実行装置 |
US8522209B2 (en) | 2007-03-30 | 2013-08-27 | Sap Ag | Method and system for integrating profiling and debugging |
US8667471B2 (en) | 2007-03-30 | 2014-03-04 | Sap Ag | Method and system for customizing profiling sessions |
US8065676B1 (en) | 2007-04-24 | 2011-11-22 | Hewlett-Packard Development Company, L.P. | Automated provisioning of virtual machines for a virtual machine buffer pool and production pool |
US8219987B1 (en) | 2007-08-24 | 2012-07-10 | Vmware, Inc. | Optimized virtual machine specification for provisioning application specific runtime environment |
US8051266B2 (en) | 2007-06-11 | 2011-11-01 | International Business Machines Corporation | Automatic memory management (AMM) |
US9588821B2 (en) | 2007-06-22 | 2017-03-07 | Red Hat, Inc. | Automatic determination of required resource allocation of virtual machines |
US20090006897A1 (en) | 2007-06-27 | 2009-01-01 | Microsoft Corporation | Automated service testing |
US8161476B2 (en) | 2007-07-04 | 2012-04-17 | International Business Machines Corporation | Processor exclusivity in a partitioned system |
US8074229B2 (en) | 2007-07-18 | 2011-12-06 | Sap Ag | Co-execution of objects from divergent runtime environments |
US20090055810A1 (en) | 2007-08-21 | 2009-02-26 | Nce Technologies Inc. | Method And System For Compilation And Execution Of Software Codes |
WO2009029549A2 (en) | 2007-08-24 | 2009-03-05 | Virtualmetrix, Inc. | Method and apparatus for fine grain performance management of computer systems |
US8171473B2 (en) | 2007-08-31 | 2012-05-01 | International Business Machines Corporation | Method and apparatus for determining a service cluster topology based on static analysis |
US7827299B2 (en) | 2007-09-11 | 2010-11-02 | International Business Machines Corporation | Transitioning between historical and real time data streams in the processing of data change messages |
US8402472B2 (en) | 2007-09-14 | 2013-03-19 | International Business Machines Corporation | Network management system event notification shortcut |
US20090193410A1 (en) | 2007-09-28 | 2009-07-30 | Xcerion Aktiebolag | Network operating system |
US8166304B2 (en) | 2007-10-02 | 2012-04-24 | International Business Machines Corporation | Support for multiple security policies on a unified authentication architecture |
US20090204964A1 (en) | 2007-10-12 | 2009-08-13 | Foley Peter F | Distributed trusted virtualization platform |
US8127284B2 (en) | 2007-10-16 | 2012-02-28 | Microsoft Corporation | On-demand loading of types of software code of a program executing on a computing device |
US8566835B2 (en) | 2007-12-13 | 2013-10-22 | Hewlett-Packard Development Company, L.P. | Dynamically resizing a virtual machine container |
US20110040812A1 (en) | 2007-12-20 | 2011-02-17 | Virtual Computer, Inc. | Layered Virtual File System |
US8473956B2 (en) | 2008-01-15 | 2013-06-25 | Microsoft Corporation | Priority based scheduling system for server |
US8560694B2 (en) | 2008-02-01 | 2013-10-15 | Microsoft Corporation | Virtual application server with version control |
US9928260B2 (en) | 2008-02-11 | 2018-03-27 | Nuix Pty Ltd | Systems and methods for scalable delocalized information governance |
US8156503B2 (en) | 2008-02-12 | 2012-04-10 | International Business Machines Corporation | System, method and computer program product for accessing a memory space allocated to a virtual machine |
US8387075B1 (en) | 2008-03-28 | 2013-02-26 | Emc Corporation | Common scheduling and synchronization primitives |
US9086924B2 (en) | 2008-04-24 | 2015-07-21 | International Business Machines Corporation | Executing a distributed java application on a plurality of compute nodes |
US7886021B2 (en) | 2008-04-28 | 2011-02-08 | Oracle America, Inc. | System and method for programmatic management of distributed computing resources |
US8972978B2 (en) | 2008-05-02 | 2015-03-03 | Skytap | Multitenant hosted virtual machine infrastructure |
US8424082B2 (en) | 2008-05-08 | 2013-04-16 | Google Inc. | Safely executing an untrusted native code module on a computing device |
US20090300599A1 (en) * | 2008-05-30 | 2009-12-03 | Matthew Thomas Piotrowski | Systems and methods of utilizing virtual machines to protect computer systems |
US8543998B2 (en) | 2008-05-30 | 2013-09-24 | Oracle International Corporation | System and method for building virtual appliances using a repository metadata server and a dependency resolution service |
US8229812B2 (en) * | 2009-01-28 | 2012-07-24 | Headwater Partners I, Llc | Open transaction central billing system |
JP5120121B2 (ja) | 2008-07-15 | 2013-01-16 | コニカミノルタビジネステクノロジーズ株式会社 | 中継サーバ、中継方法および中継プログラム |
JP5157717B2 (ja) | 2008-07-28 | 2013-03-06 | 富士通株式会社 | 仮想バッテリを備えた仮想マシンシステムおよび仮想バッテリを備えた仮想マシンシステム用プログラム |
US20100036925A1 (en) | 2008-08-07 | 2010-02-11 | Tactara, Llc | Alias management platforms |
JP5215779B2 (ja) | 2008-09-01 | 2013-06-19 | キヤノン株式会社 | 情報処理装置及び情報処理方法 |
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
DE112009002168A5 (de) | 2008-09-09 | 2012-03-15 | Kace Networks, Inc. | Auslieferung und Management von virtuellen Containern |
US20100094816A1 (en) | 2008-09-09 | 2010-04-15 | Lockheed Martin Corporation | Safety-Critical Data Checking In Object-Oriented Systems |
US20100070678A1 (en) | 2008-09-12 | 2010-03-18 | Vmware, Inc. | Saving and Restoring State Information for Virtualized Computer Systems |
US9098698B2 (en) * | 2008-09-12 | 2015-08-04 | George Mason Research Foundation, Inc. | Methods and apparatus for application isolation |
US8418176B1 (en) | 2008-09-23 | 2013-04-09 | Gogrid, LLC | System and method for adapting virtual machine configurations for hosting across different hosting systems |
US7937625B2 (en) | 2008-09-26 | 2011-05-03 | Microsoft Corporation | Evaluating effectiveness of memory management techniques selectively using mitigations to reduce errors |
US20100106926A1 (en) | 2008-10-25 | 2010-04-29 | International Business Machines Corporation | Second failure data capture problem determination using user selective memory protection to trace application failures |
US9141381B2 (en) | 2008-10-27 | 2015-09-22 | Vmware, Inc. | Version control environment for virtual machines |
US9176786B2 (en) | 2008-11-04 | 2015-11-03 | Novell, Inc. | Dynamic and automatic colocation and combining of service providers and service clients in a grid of resources for performing a data backup function |
US8214795B2 (en) | 2008-11-26 | 2012-07-03 | Optumsoft, Inc. | Efficient automated translation of procedures in constraint-based language |
US20100131959A1 (en) | 2008-11-26 | 2010-05-27 | Spiers Adam Z | Proactive application workload management |
US8336079B2 (en) | 2008-12-31 | 2012-12-18 | Hytrust, Inc. | Intelligent security control system for virtualized ecosystems |
US8769206B2 (en) | 2009-01-20 | 2014-07-01 | Oracle International Corporation | Methods and systems for implementing transcendent page caching |
US9344401B2 (en) | 2009-02-04 | 2016-05-17 | Citrix Systems, Inc. | Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment |
US8336049B2 (en) | 2009-02-05 | 2012-12-18 | Vmware, Inc. | Virtual machine utility computing method and system |
JP5419500B2 (ja) | 2009-03-12 | 2014-02-19 | キヤノン株式会社 | プログラムおよび情報処理装置 |
WO2010116676A1 (ja) | 2009-03-30 | 2010-10-14 | 日本電気株式会社 | サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム |
US8321558B1 (en) | 2009-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Dynamically monitoring and modifying distributed execution of programs |
US9817695B2 (en) | 2009-04-01 | 2017-11-14 | Vmware, Inc. | Method and system for migrating processes between virtual machines |
US9563866B2 (en) | 2009-04-06 | 2017-02-07 | Accenture Global Services Limited | Estimating a computing job complexity |
US8291416B2 (en) | 2009-04-17 | 2012-10-16 | Citrix Systems, Inc. | Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution |
US10768611B2 (en) | 2009-06-16 | 2020-09-08 | Applied Materials, Inc. | Counter and timer constraints |
US8955108B2 (en) | 2009-06-17 | 2015-02-10 | Microsoft Corporation | Security virtual machine for advanced auditing |
US8140668B2 (en) | 2009-06-24 | 2012-03-20 | Red Hat Israel, Ltd. | Pre-scheduling the timelines of virtual machines |
WO2011002785A1 (en) | 2009-06-29 | 2011-01-06 | Fiberlink Communications Corporation | Universal connections data collection |
US8799879B2 (en) | 2009-06-30 | 2014-08-05 | Oracle America, Inc. | Method and apparatus for protecting translated code in a virtual machine |
WO2011005881A1 (en) | 2009-07-07 | 2011-01-13 | Howard Robert S | System and method of automatically transforming serial streaming programs into parallel streaming programs |
US8234377B2 (en) * | 2009-07-22 | 2012-07-31 | Amazon Technologies, Inc. | Dynamically migrating computer networks |
CA2674402C (en) | 2009-07-31 | 2016-07-19 | Ibm Canada Limited - Ibm Canada Limitee | Optimizing on demand allocation of virtual machines using a stateless preallocation pool |
US8769083B2 (en) | 2009-08-31 | 2014-07-01 | Red Hat, Inc. | Metering software infrastructure in a cloud computing environment |
US8271653B2 (en) | 2009-08-31 | 2012-09-18 | Red Hat, Inc. | Methods and systems for cloud management using multiple cloud management schemes to allow communication between independently controlled clouds |
US20110055683A1 (en) | 2009-09-02 | 2011-03-03 | Facebook Inc. | Page caching for rendering dynamic web pages |
US8448165B1 (en) | 2009-09-15 | 2013-05-21 | Symantec Corporation | System and method for logging operations of virtual machines |
US8276139B2 (en) | 2009-09-30 | 2012-09-25 | International Business Machines Corporation | Provisioning virtual machine placement |
US9086922B2 (en) | 2009-10-26 | 2015-07-21 | Microsoft Technology Licensing, Llc | Opportunistically scheduling and adjusting time slices |
US8412856B2 (en) | 2009-10-26 | 2013-04-02 | Sony Computer Entertainment America Llc. | File input/output scheduler using immediate data chunking |
US8875128B2 (en) | 2009-11-30 | 2014-10-28 | Red Hat Israel, Ltd. | Controlling permissions in virtualization environment using hierarchical labeling |
US8311032B2 (en) | 2009-12-03 | 2012-11-13 | International Business Machines Corporation | Dynamically provisioning virtual machines |
EP3001326B1 (en) * | 2009-12-14 | 2017-07-26 | Citrix Systems Inc. | Methods and systems for communicating between trusted and non-trusted virtual machines |
US8924569B2 (en) | 2009-12-17 | 2014-12-30 | Intel Corporation | Cloud federation as a service |
US8949408B2 (en) | 2009-12-18 | 2015-02-03 | Microsoft Corporation | Session monitoring of virtual desktops in a virtual machine farm |
US8683465B2 (en) | 2009-12-18 | 2014-03-25 | International Business Machines Corporation | Virtual image deployment with a warm cache |
US20110154353A1 (en) | 2009-12-22 | 2011-06-23 | Bmc Software, Inc. | Demand-Driven Workload Scheduling Optimization on Shared Computing Resources |
US9805322B2 (en) | 2010-06-24 | 2017-10-31 | Bmc Software, Inc. | Application blueprint and deployment model for dynamic business service management (BSM) |
JP5282046B2 (ja) | 2010-01-05 | 2013-09-04 | 株式会社日立製作所 | 計算機システム及びその可用化方法 |
US8346935B2 (en) | 2010-01-15 | 2013-01-01 | Joyent, Inc. | Managing hardware resources by sending messages amongst servers in a data center |
US9274821B2 (en) | 2010-01-27 | 2016-03-01 | Vmware, Inc. | Independent access to virtual machine desktop content |
CN101764824B (zh) * | 2010-01-28 | 2012-08-22 | 深圳市龙视传媒有限公司 | 一种分布式缓存控制方法、装置及系统 |
US8478878B2 (en) | 2010-03-11 | 2013-07-02 | International Business Machines Corporation | Placement of virtual machines based on server cost and network cost |
US8271814B2 (en) | 2010-03-22 | 2012-09-18 | Microsoft Corporation | Migrating a client computer to a virtual machine server when the client computer is deemed to be idle |
US8413142B2 (en) | 2010-03-30 | 2013-04-02 | Citrix Systems, Inc. | Storage optimization selection within a virtualization environment |
US9229783B2 (en) | 2010-03-31 | 2016-01-05 | International Business Machines Corporation | Methods and apparatus for resource capacity evaluation in a system of virtual containers |
US8996611B2 (en) | 2011-01-31 | 2015-03-31 | Microsoft Technology Licensing, Llc | Parallel serialization of request processing |
US8959496B2 (en) | 2010-04-21 | 2015-02-17 | Microsoft Corporation | Automatic parallelization in a tracing just-in-time compiler system |
US8627426B2 (en) * | 2010-04-26 | 2014-01-07 | Vmware, Inc. | Cloud platform architecture |
US8713565B2 (en) | 2010-04-28 | 2014-04-29 | International Business Machines Corporation | Automated tuning in a virtual machine computing environment |
US20110276963A1 (en) | 2010-05-04 | 2011-11-10 | Riverbed Technology, Inc. | Virtual Data Storage Devices and Applications Over Wide Area Networks |
US8566792B2 (en) | 2010-05-07 | 2013-10-22 | Salesforce, Inc. | Validating visual components |
US9461996B2 (en) | 2010-05-07 | 2016-10-04 | Citrix Systems, Inc. | Systems and methods for providing a single click access to enterprise, SAAS and cloud hosted application |
CN102971706B (zh) * | 2010-05-10 | 2016-08-10 | 思杰系统有限公司 | 将信息从安全虚拟机重定向到不安全虚拟机 |
US9239909B2 (en) * | 2012-01-25 | 2016-01-19 | Bromium, Inc. | Approaches for protecting sensitive data within a guest operating system |
JP5513997B2 (ja) | 2010-06-07 | 2014-06-04 | 日本電信電話株式会社 | 通信システムおよび通信システム更新方法 |
US8656387B2 (en) | 2010-06-17 | 2014-02-18 | Gridcentric Inc. | Method and system for workload distributing and processing across a network of replicated virtual machines |
US8887163B2 (en) | 2010-06-25 | 2014-11-11 | Ebay Inc. | Task scheduling based on dependencies and resources |
US8719415B1 (en) | 2010-06-28 | 2014-05-06 | Amazon Technologies, Inc. | Use of temporarily available computing nodes for dynamic scaling of a cluster |
US8739170B1 (en) | 2010-06-30 | 2014-05-27 | Amazon Technologies, Inc. | Managing requests for computing capacity |
US8473949B2 (en) | 2010-07-08 | 2013-06-25 | Microsoft Corporation | Methods for supporting users with task continuity and completion across devices and time |
US20120016721A1 (en) | 2010-07-15 | 2012-01-19 | Joseph Weinman | Price and Utility Optimization for Cloud Computing Resources |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8612413B2 (en) | 2010-08-12 | 2013-12-17 | Cdnetworks Co., Ltd. | Distributed data cache for on-demand application acceleration |
US8359496B1 (en) | 2010-08-31 | 2013-01-22 | Google Inc. | Fault-resistant just-in-time compiler |
US8490088B2 (en) | 2010-09-10 | 2013-07-16 | International Business Machines Corporation | On demand virtual machine image streaming |
JP5476261B2 (ja) | 2010-09-14 | 2014-04-23 | 株式会社日立製作所 | マルチテナント型情報処理システム、管理サーバ及び構成管理方法 |
US8694400B1 (en) | 2010-09-14 | 2014-04-08 | Amazon Technologies, Inc. | Managing operational throughput for shared resources |
JP5644307B2 (ja) | 2010-09-17 | 2014-12-24 | 富士通株式会社 | 情報処理装置、情報処理装置の制御方法及び制御プログラム |
JP5653151B2 (ja) | 2010-09-17 | 2015-01-14 | キヤノン株式会社 | クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション |
US8661120B2 (en) | 2010-09-21 | 2014-02-25 | Amazon Technologies, Inc. | Methods and systems for dynamically managing requests for computing capacity |
US8661076B2 (en) | 2010-09-23 | 2014-02-25 | Salesforce.Com, Inc. | Business networking information feed alerts |
CN106020928B (zh) | 2010-09-30 | 2019-06-14 | 亚马逊技术股份有限公司 | 用专用实施资源进行虚拟资源成本追踪 |
WO2012049728A1 (ja) | 2010-10-12 | 2012-04-19 | 富士通株式会社 | シミュレーション装置,方法,およびプログラム |
US9069610B2 (en) | 2010-10-13 | 2015-06-30 | Microsoft Technology Licensing, Llc | Compute cluster with balanced resources |
US8607054B2 (en) | 2010-10-15 | 2013-12-10 | Microsoft Corporation | Remote access to hosted virtual machines by enterprise users |
US8904190B2 (en) | 2010-10-20 | 2014-12-02 | Advanced Micro Devices, Inc. | Method and apparatus including architecture for protecting sensitive code and data |
US8375389B2 (en) | 2010-10-20 | 2013-02-12 | Microsoft Corporation | Ordered scheduling of suspended processes based on resumption events |
US9753713B2 (en) | 2010-10-22 | 2017-09-05 | Microsoft Technology Licensing, Llc | Coordinated upgrades in distributed systems |
US9645839B2 (en) | 2010-10-27 | 2017-05-09 | Microsoft Technology Licensing, Llc | Stateful applications operating in a stateless cloud computing environment |
JP2014038364A (ja) | 2010-10-27 | 2014-02-27 | Hitachi Ltd | リソース管理サーバ、リソース管理方法及びリソース管理プログラム |
US8756696B1 (en) | 2010-10-30 | 2014-06-17 | Sra International, Inc. | System and method for providing a virtualized secure data containment service with a networked environment |
US8959220B2 (en) | 2010-11-02 | 2015-02-17 | International Business Machines Corporation | Managing a workload of a plurality of virtual servers of a computing environment |
US9081613B2 (en) | 2010-11-02 | 2015-07-14 | International Business Machines Corporation | Unified resource manager providing a single point of control |
US9253016B2 (en) | 2010-11-02 | 2016-02-02 | International Business Machines Corporation | Management of a data network of a computing environment |
RO127693A2 (ro) | 2010-12-02 | 2012-07-30 | Adobe Systems Incorporated | Transmitere html nativă integrată |
US20120151479A1 (en) | 2010-12-10 | 2012-06-14 | Salesforce.Com, Inc. | Horizontal splitting of tasks within a homogenous pool of virtual machines |
US8601323B2 (en) | 2010-12-13 | 2013-12-03 | Sap Ag | Advanced management of runtime errors |
US8560699B1 (en) | 2010-12-28 | 2013-10-15 | Amazon Technologies, Inc. | Enforceable launch configurations |
US8745734B1 (en) | 2010-12-29 | 2014-06-03 | Amazon Technologies, Inc. | Managing virtual computing testing |
US8713566B2 (en) | 2011-01-31 | 2014-04-29 | International Business Machines Corporation | Method and system for delivering and executing virtual container on logical partition of target computing device |
US8756581B2 (en) | 2011-02-03 | 2014-06-17 | International Business Machines Corporation | Adaptive next-executing-cycle trace selection for trace-driven code optimizers |
US9967318B2 (en) | 2011-02-09 | 2018-05-08 | Cisco Technology, Inc. | Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment |
US8555281B1 (en) | 2011-02-16 | 2013-10-08 | Google Inc. | Scheduling of tasks based upon historical execution times |
US8495648B1 (en) | 2011-02-28 | 2013-07-23 | Amazon Technologies, Inc. | Managing allocation of computing capacity |
US9141410B2 (en) | 2011-03-08 | 2015-09-22 | Rackspace Us, Inc. | Pluggable allocation in a cloud computing system |
US9015709B2 (en) | 2011-03-08 | 2015-04-21 | Rackspace Us, Inc. | Hypervisor-agnostic method of configuring a virtual machine |
US8886937B2 (en) | 2011-03-11 | 2014-11-11 | Resource Interactive, Llc | PCI DSS compliant proxy service |
US8429282B1 (en) | 2011-03-22 | 2013-04-23 | Amazon Technologies, Inc. | System and method for avoiding system overload by maintaining an ideal request rate |
US8910156B1 (en) * | 2011-04-29 | 2014-12-09 | Netapp, Inc. | Virtual machine dependency |
WO2012173175A1 (ja) | 2011-06-14 | 2012-12-20 | 日本電気株式会社 | コンテンツ配信システム、制御装置およびコンテンツ配信方法 |
US20120324236A1 (en) | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Trusted Snapshot Generation |
FR2977116A1 (fr) | 2011-06-27 | 2012-12-28 | France Telecom | Procede de fourniture de service d'execution de logiciel a la demande |
US9450838B2 (en) | 2011-06-27 | 2016-09-20 | Microsoft Technology Licensing, Llc | Resource management for cloud computing platforms |
US8615589B1 (en) | 2011-06-27 | 2013-12-24 | Amazon Technologies, Inc. | Resource optimization recommendations |
EP2726980A1 (en) | 2011-06-29 | 2014-05-07 | Hewlett-Packard Development Company, L.P. | Application migration with dynamic operating system containers |
KR101507919B1 (ko) | 2011-07-01 | 2015-04-07 | 한국전자통신연구원 | 가상 데스크탑 서비스를 위한 방법 및 장치 |
US8671407B2 (en) | 2011-07-06 | 2014-03-11 | Microsoft Corporation | Offering network performance guarantees in multi-tenant datacenters |
US8819679B2 (en) | 2011-07-28 | 2014-08-26 | International Business Machines Corporation | Methods and systems for on-boarding applications to a cloud |
US8813074B2 (en) | 2011-08-05 | 2014-08-19 | Vmware, Inc. | Detecting and correcting network interruptions using network address translation |
US8533715B2 (en) | 2011-08-09 | 2013-09-10 | International Business Machines Corporation | Virtual machine management |
CN102244685B (zh) * | 2011-08-11 | 2013-09-18 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及系统 |
US9152405B2 (en) | 2011-08-22 | 2015-10-06 | International Business Machines Corporation | Rapid provisioning of virtual machines based on multi-dimensional user request patterns in a cloud |
EP2748705A4 (en) | 2011-08-25 | 2015-05-20 | Virtustream Inc | SYSTEMS AND METHODS FOR HOST-RELATED RESOURCE MANAGEMENT WITH CLUSTER-BASED RESOURCE POOLS |
US9516368B2 (en) | 2011-08-25 | 2016-12-06 | At&T Intellectual Property I, L.P. | System for consolidating heterogeneous data centers through virtualization of services |
US8898676B2 (en) | 2011-08-26 | 2014-11-25 | Vmware, Inc. | Management of software updates for software components in a virtualized environment of a datacenter using dependency relationships |
US8635607B2 (en) | 2011-08-30 | 2014-01-21 | Microsoft Corporation | Cloud-based build service |
US8832035B2 (en) | 2011-08-30 | 2014-09-09 | Netapp, Inc. | System and method for retaining deduplication in a storage object after a clone split operation |
US8621439B2 (en) | 2011-09-06 | 2013-12-31 | Microsoft Corporation | Modern application tracing |
US20130061220A1 (en) | 2011-09-06 | 2013-03-07 | Xerox Corporation | Method for on-demand inter-cloud load provisioning for transient bursts of computing needs |
US8863082B2 (en) | 2011-09-07 | 2014-10-14 | Microsoft Corporation | Transformational context-aware data source management |
JP5740257B2 (ja) | 2011-09-08 | 2015-06-24 | 株式会社日立ソリューションズ | OSGiプログラム、OSGiシステム |
US8578394B2 (en) | 2011-09-09 | 2013-11-05 | Microsoft Corporation | Exempting applications from suspension |
JP2013061700A (ja) | 2011-09-12 | 2013-04-04 | Sony Corp | 情報処理装置、情報処理方法、記録媒体および情報処理システム |
US8839035B1 (en) | 2011-09-14 | 2014-09-16 | Amazon Technologies, Inc. | Cloud-based test execution |
US8825863B2 (en) | 2011-09-20 | 2014-09-02 | International Business Machines Corporation | Virtual machine placement within a server farm |
US8825964B1 (en) | 2011-09-26 | 2014-09-02 | Emc Corporation | Adaptive integration of cloud data services with a data storage system |
WO2013048986A1 (en) | 2011-09-26 | 2013-04-04 | Knoa Software, Inc. | Method, system and program product for allocation and/or prioritization of electronic resources |
US8806266B1 (en) * | 2011-09-28 | 2014-08-12 | Juniper Networks, Inc. | High availability using full memory replication between virtual machine instances on a network device |
US9497136B1 (en) | 2011-09-28 | 2016-11-15 | Emc Corporation | Method and system for providing usage metrics to manage utilzation of cloud computing resources |
DE102012217202B4 (de) | 2011-10-12 | 2020-06-18 | International Business Machines Corporation | Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen |
US8914515B2 (en) | 2011-10-28 | 2014-12-16 | International Business Machines Corporation | Cloud optimization using workload analysis |
US9213503B2 (en) | 2011-10-30 | 2015-12-15 | Hewlett-Packard Development Company, L.P. | Service provider management of virtual instances corresponding to hardware resources managed by other service providers |
JP5624973B2 (ja) | 2011-11-04 | 2014-11-12 | 株式会社日立製作所 | フィルタリング装置 |
US9003141B2 (en) | 2011-11-14 | 2015-04-07 | Ca, Inc. | Enhanced software application platform |
US9400887B2 (en) | 2011-11-15 | 2016-07-26 | Japan Science And Technology Agency | Program analysis/verification service provision system, control method for same, computer readable non-transitory storage medium, program analysis/verification device, program analysis/verification tool management device |
TWI478063B (zh) | 2011-11-21 | 2015-03-21 | Inst Information Industry | 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體 |
EP2783284B1 (en) | 2011-11-22 | 2019-03-13 | Solano Labs, Inc. | System of distributed software quality improvement |
US8924954B2 (en) | 2011-11-22 | 2014-12-30 | Huawei Technologies Co., Ltd. | Application software installation method and application software installation apparatus |
TW201322022A (zh) | 2011-11-24 | 2013-06-01 | Alibaba Group Holding Ltd | 分散式資料流處理方法及其系統 |
US8826277B2 (en) | 2011-11-29 | 2014-09-02 | International Business Machines Corporation | Cloud provisioning accelerator |
WO2013086455A1 (en) | 2011-12-07 | 2013-06-13 | Seven Networks, Inc. | Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation |
US8769519B2 (en) | 2011-12-08 | 2014-07-01 | Microsoft Corporation | Personal and pooled virtual machine update |
US8694995B2 (en) | 2011-12-14 | 2014-04-08 | International Business Machines Corporation | Application initiated negotiations for resources meeting a performance parameter in a virtualized computing environment |
US9635132B1 (en) | 2011-12-15 | 2017-04-25 | Amazon Technologies, Inc. | Service and APIs for remote volume-based block storage |
US10310878B2 (en) | 2011-12-16 | 2019-06-04 | Vmware, Inc. | Execution of an application in a runtime environment installed in a virtual appliance |
US9609020B2 (en) | 2012-01-06 | 2017-03-28 | Optio Labs, Inc. | Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines |
US9170849B2 (en) | 2012-01-09 | 2015-10-27 | Microsoft Technology Licensing, Llc | Migration of task to different pool of resources based on task retry count during task lease |
US20130179894A1 (en) | 2012-01-09 | 2013-07-11 | Microsoft Corporation | Platform as a service job scheduling |
US9372735B2 (en) | 2012-01-09 | 2016-06-21 | Microsoft Technology Licensing, Llc | Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool |
US8904008B2 (en) | 2012-01-09 | 2014-12-02 | Microsoft Corporation | Assignment of resources in virtual machine pools |
US20130185729A1 (en) | 2012-01-13 | 2013-07-18 | Rutgers, The State University Of New Jersey | Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures |
US9223607B2 (en) | 2012-01-17 | 2015-12-29 | Microsoft Technology Licensing, Llc | System for replicating or migrating virtual machine operations log by throttling guest write iOS based on destination throughput |
US9208007B2 (en) | 2012-01-18 | 2015-12-08 | International Business Machines Corporation | Open resilience framework for simplified and coordinated orchestration of multiple availability managers |
WO2013112151A1 (en) | 2012-01-26 | 2013-08-01 | Empire Technology Development Llc | Data center with continuous world switch security |
US9110728B2 (en) * | 2012-01-31 | 2015-08-18 | Vmware, Inc. | Elastic allocation of computing resources to software applications |
US9262238B2 (en) | 2012-01-31 | 2016-02-16 | Red Hat, Inc. | Connection management for an application in a computing platform |
KR101629879B1 (ko) | 2012-02-06 | 2016-06-13 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 캐시 사용 기반 어댑티브 스케줄링을 가지는 멀티코어 컴퓨터 시스템 |
TWI459296B (zh) | 2012-02-21 | 2014-11-01 | Hon Hai Prec Ind Co Ltd | 增加伺服器的虛擬機配置數量的方法 |
US20130227710A1 (en) * | 2012-02-27 | 2013-08-29 | Computer Associates Think, Inc. | System and method for securing leased images in a cloud environment |
US9720668B2 (en) | 2012-02-29 | 2017-08-01 | Red Hat, Inc. | Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system |
US9047133B2 (en) * | 2012-03-02 | 2015-06-02 | Vmware, Inc. | Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment |
CN103294554A (zh) | 2012-03-05 | 2013-09-11 | 中兴通讯股份有限公司 | 片上系统soc的多处理器的调度方法及装置 |
US9009734B2 (en) | 2012-03-06 | 2015-04-14 | Autodesk, Inc. | Application level speculative processing |
US8725702B1 (en) | 2012-03-15 | 2014-05-13 | Symantec Corporation | Systems and methods for repairing system files |
US20130263117A1 (en) | 2012-03-28 | 2013-10-03 | International Business Machines Corporation | Allocating resources to virtual machines via a weighted cost ratio |
US9026658B2 (en) | 2012-03-28 | 2015-05-05 | Microsoft Technology Licensing, Llc | Enhanced computer cluster operation using resource allocation requests |
US8997093B2 (en) | 2012-04-17 | 2015-03-31 | Sap Se | Application installation management by selectively reuse or terminate virtual machines based on a process status |
US9256413B2 (en) | 2012-04-17 | 2016-02-09 | Sap Se | Automatic identification of services |
US9462081B2 (en) | 2012-04-17 | 2016-10-04 | Igt | Cloud based virtual environment validation |
US9053603B2 (en) | 2012-04-17 | 2015-06-09 | Igt | Cloud based virtual environment authentication |
US9183019B2 (en) | 2012-04-25 | 2015-11-10 | Empire Technology Development Llc | Certification for flexible resource demand applications |
US8918510B2 (en) | 2012-04-27 | 2014-12-23 | Hewlett-Packard Development Company, L. P. | Evaluation of cloud computing services |
EP2845116A4 (en) | 2012-04-30 | 2016-05-11 | Hewlett Packard Development Co | AUTOMATED EVENT MANAGEMENT |
US8955091B2 (en) | 2012-04-30 | 2015-02-10 | Zscaler, Inc. | Systems and methods for integrating cloud services with information management systems |
US8850514B2 (en) | 2012-05-01 | 2014-09-30 | Red Hat, Inc. | Cartridges in a multi-tenant platforms-as-a-service (PaaS) system implemented in a cloud computing environment |
US8843935B2 (en) | 2012-05-03 | 2014-09-23 | Vmware, Inc. | Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine |
GB2501757A (en) | 2012-05-04 | 2013-11-06 | Ibm | Instrumentation of software applications for configuration thereof |
EP2663052B1 (en) | 2012-05-09 | 2021-02-24 | Netflix, Inc. | API Platform That Includes Server-Executed Client-Based Code |
US9098528B2 (en) | 2012-05-15 | 2015-08-04 | Hitachi, Ltd. | File storage system and load distribution method |
US8904402B2 (en) | 2012-05-30 | 2014-12-02 | Red Hat, Inc. | Controlling capacity in a multi-tenant platform-as-a-service environment in a cloud computing system |
US8850432B2 (en) | 2012-05-30 | 2014-09-30 | Red Hat, Inc. | Controlling utilization in a multi-tenant platform-as-a-service (PaaS) environment in a cloud computing system |
US9317689B2 (en) | 2012-06-15 | 2016-04-19 | Visa International Service Association | Method and apparatus for secure application execution |
US8799236B1 (en) | 2012-06-15 | 2014-08-05 | Amazon Technologies, Inc. | Detecting duplicated content among digital items |
US8782632B1 (en) | 2012-06-18 | 2014-07-15 | Tellabs Operations, Inc. | Methods and apparatus for performing in-service software upgrade for a network device using system virtualization |
US9342326B2 (en) | 2012-06-19 | 2016-05-17 | Microsoft Technology Licensing, Llc | Allocating identified intermediary tasks for requesting virtual machines within a trust sphere on a processing goal |
US9141432B2 (en) | 2012-06-20 | 2015-09-22 | International Business Machines Corporation | Dynamic pending job queue length for job distribution within a grid environment |
US8869157B2 (en) | 2012-06-21 | 2014-10-21 | Breakingpoint Systems, Inc. | Systems and methods for distributing tasks and/or processing recources in a system |
US8959484B2 (en) | 2012-06-21 | 2015-02-17 | Microsoft Corporation | System for hosted, shared, source control build |
US8832820B2 (en) | 2012-06-25 | 2014-09-09 | International Business Machines Corporation | Isolation and security hardening among workloads in a multi-tenant networked environment |
US9098308B2 (en) | 2012-06-26 | 2015-08-04 | Marvell World Trade Ltd. | Method and apparatus for code performance analysis based on execution trace information |
US10031782B2 (en) | 2012-06-26 | 2018-07-24 | Juniper Networks, Inc. | Distributed processing of network device tasks |
US20140007097A1 (en) | 2012-06-29 | 2014-01-02 | Brocade Communications Systems, Inc. | Dynamic resource allocation for virtual machines |
US9152443B2 (en) | 2012-07-13 | 2015-10-06 | Ca, Inc. | System and method for automated assignment of virtual machines and physical machines to hosts with right-sizing |
US9298497B2 (en) | 2012-07-13 | 2016-03-29 | Wisconsin Alumni Research Foundation | Computer processor providing exception handling with reduced state storage |
US9396008B2 (en) | 2012-07-13 | 2016-07-19 | Ca, Inc. | System and method for continuous optimization of computing systems with automated assignment of virtual machines and physical machines to hosts |
US8972956B2 (en) | 2012-08-02 | 2015-03-03 | International Business Machines Corporation | Application deployment in heterogeneous environments |
US9563480B2 (en) | 2012-08-21 | 2017-02-07 | Rackspace Us, Inc. | Multi-level cloud computing system |
US8825550B2 (en) | 2012-08-23 | 2014-09-02 | Amazon Technologies, Inc. | Scaling a virtual machine instance |
US20140059552A1 (en) * | 2012-08-24 | 2014-02-27 | International Business Machines Corporation | Transparent efficiency for in-memory execution of map reduce job sequences |
US9110844B2 (en) | 2012-08-27 | 2015-08-18 | Microsoft Technology Licensing, Llc | State maintenance as a service |
US9575871B2 (en) | 2012-09-04 | 2017-02-21 | Salesforce.Com, Inc. | System and method for dynamically debugging data in a multi-tenant database environment |
US8966495B2 (en) | 2012-09-05 | 2015-02-24 | Cisco Technology, Inc. | Dynamic virtual machine consolidation |
US8978035B2 (en) | 2012-09-06 | 2015-03-10 | Red Hat, Inc. | Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system |
US20140073300A1 (en) | 2012-09-10 | 2014-03-13 | Genband Us Llc | Managing Telecommunication Services using Proximity-based Technologies |
US9379995B2 (en) | 2012-09-11 | 2016-06-28 | Vmware, Inc. | Resource allocation diagnosis on distributed computer systems based on resource hierarchy |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US9116680B2 (en) | 2012-09-26 | 2015-08-25 | International Business Machines Corporation | Dynamically building locale objects or subsections of locale objects based on historical data |
US9563663B2 (en) | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
JP2014075046A (ja) | 2012-10-04 | 2014-04-24 | International Business Maschines Corporation | トレース生成方法、装置、プログラム、及び該方法を利用したマルチレベルのコンパイレーション |
US9507586B2 (en) | 2012-10-05 | 2016-11-29 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Virtual machine based controller and upgrade mechanism |
US8745755B2 (en) | 2012-10-12 | 2014-06-03 | Citrix Systems, Inc. | Controlling device access to enterprise resources in an orchestration framework for connected devices |
US9081682B2 (en) * | 2012-10-15 | 2015-07-14 | Red Hat Israel, Ltd. | Virtual machine installation image caching |
US20140109176A1 (en) | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Configuring and providing profiles that manage execution of mobile applications |
US9229759B2 (en) | 2012-10-17 | 2016-01-05 | Microsoft Technology Licensing, Llc | Virtual machine provisioning using replicated containers |
US20160019536A1 (en) | 2012-10-17 | 2016-01-21 | Royal Bank Of Canada | Secure processing of data |
US9600316B2 (en) | 2012-10-17 | 2017-03-21 | Microsoft Technology Licensing, Llc | Augmented allocation of virtual machines for application |
US9262212B2 (en) | 2012-11-02 | 2016-02-16 | The Boeing Company | Systems and methods for migrating virtual machines |
KR20150082218A (ko) | 2012-11-05 | 2015-07-15 | 엘지전자 주식회사 | 초고주파 대역을 지원하는 무선 접속 시스템에서 동기 신호 생성 방법 및 장치 |
US9038068B2 (en) | 2012-11-15 | 2015-05-19 | Bank Of America Corporation | Capacity reclamation and resource adjustment |
US9578098B2 (en) | 2012-11-19 | 2017-02-21 | Hitachi, Ltd. | Management system and management method |
US9052935B1 (en) * | 2012-11-27 | 2015-06-09 | Symantec Corporation | Systems and methods for managing affinity rules in virtual-machine environments |
US9092837B2 (en) | 2012-11-29 | 2015-07-28 | International Business Machines Corporation | Use of snapshots to reduce risk in migration to a standard virtualized environment |
US9363367B2 (en) | 2012-12-05 | 2016-06-07 | Future Dial, Inc. | Using automatically collected device problem information to route and guide users' requests |
US9052932B2 (en) | 2012-12-17 | 2015-06-09 | International Business Machines Corporation | Hybrid virtual machine configuration management |
US9086902B2 (en) | 2012-12-18 | 2015-07-21 | International Business Machines Corporation | Sending tasks between virtual machines based on expiration times |
US9063795B2 (en) | 2012-12-19 | 2015-06-23 | International Business Machines Corporation | Adaptive resource usage limits for workload management |
US9459856B2 (en) | 2013-01-02 | 2016-10-04 | International Business Machines Corporation | Effective migration and upgrade of virtual machines in cloud environments |
US9384517B2 (en) | 2013-03-14 | 2016-07-05 | Google Inc. | Rendering |
US9304793B2 (en) | 2013-01-16 | 2016-04-05 | Vce Company, Llc | Master automation service |
US8886769B2 (en) | 2013-01-18 | 2014-11-11 | Limelight Networks, Inc. | Selective content pre-warming in content delivery networks based on user actions and content categorizations |
US9329888B2 (en) | 2013-01-28 | 2016-05-03 | International Business Machines Corporation | Computing optimized virtual machine allocations using equivalence combinations |
US10223431B2 (en) | 2013-01-31 | 2019-03-05 | Facebook, Inc. | Data stream splitting for low-latency data access |
US10552774B2 (en) | 2013-02-11 | 2020-02-04 | Amazon Technologies, Inc. | Cost-minimizing task scheduler |
US9575798B2 (en) | 2013-02-25 | 2017-02-21 | Hitachi, Ltd. | Method of managing tenant network configuration in environment where virtual server and non-virtual server coexist |
US9336031B2 (en) | 2013-02-27 | 2016-05-10 | International Business Machines Corporation | Managing allocation of hardware resources in a virtualized environment |
US9524489B2 (en) | 2013-03-14 | 2016-12-20 | Samsung Electronics Co., Ltd. | Computing system with task transfer mechanism and method of operation thereof |
US8677359B1 (en) | 2013-03-14 | 2014-03-18 | Joyent, Inc. | Compute-centric object stores and methods of use |
US9027087B2 (en) | 2013-03-14 | 2015-05-05 | Rackspace Us, Inc. | Method and system for identity-based authentication of virtual machines |
US9092238B2 (en) | 2013-03-15 | 2015-07-28 | Joyent, Inc. | Versioning schemes for compute-centric object stores |
US9311221B2 (en) | 2013-03-15 | 2016-04-12 | Ab Initio Technology Llc | Recording program execution |
US9910896B2 (en) | 2013-03-15 | 2018-03-06 | Cisco Technology, Inc. | Suspending and resuming continuous queries over data streams |
US10430332B2 (en) | 2013-03-25 | 2019-10-01 | Salesforce.Com, Inc. | System and method for performance tuning of garbage collection algorithms |
US8893088B2 (en) | 2013-04-02 | 2014-11-18 | Apple Inc. | Dynamic program evaluation for system adaptation |
AU2014252699A1 (en) | 2013-04-13 | 2015-10-29 | Kiss Digital Media Pty Ltd | Methods, systems, apparatus, products, articles and data structures for cross-platform digital content |
US9329881B2 (en) | 2013-04-23 | 2016-05-03 | Sap Se | Optimized deployment of data services on the cloud |
US9929916B1 (en) | 2013-05-02 | 2018-03-27 | Aspen Technology, Inc. | Achieving stateful application software service behavior in distributed stateless systems |
US9628332B2 (en) | 2013-05-20 | 2017-04-18 | Microsoft Technology Licensing, Llc | Resource allocation to game titles in a remote gaming environment |
US10572124B2 (en) | 2013-05-20 | 2020-02-25 | Citrix Systems, Inc. | Bound based contextual zoom |
US9778943B2 (en) * | 2013-05-28 | 2017-10-03 | Red Hat Israel, Ltd. | Timer based virtual processor scheduling and suspension on physical processor for use of physical processor by other processing |
US9110732B1 (en) | 2013-06-07 | 2015-08-18 | Amazon Technologies, Inc. | Proxy for injecting configuration information |
US9489227B2 (en) | 2013-06-10 | 2016-11-08 | Electronics And Telecommunications Research Institute | Apparatus and method for virtual desktop service |
US9141461B2 (en) | 2013-06-23 | 2015-09-22 | Intel Corporation | Machine check architecture execution environment for non-microcoded processor |
US9652617B1 (en) | 2013-06-25 | 2017-05-16 | Amazon Technologies, Inc. | Analyzing security of applications |
WO2015015473A1 (en) | 2013-08-02 | 2015-02-05 | Ologn Technologies Ag | A secure server on a system with virtual machines |
US9990499B2 (en) | 2013-08-05 | 2018-06-05 | Netflix, Inc. | Dynamic security testing |
US9111037B1 (en) | 2013-08-21 | 2015-08-18 | Ca, Inc. | Method and apparatus to enable mainframe computer testing for software testing management platform |
US20150067019A1 (en) | 2013-08-28 | 2015-03-05 | Soeren Balko | Method and system for using arbitrary computing devices for distributed data processing |
US9591003B2 (en) | 2013-08-28 | 2017-03-07 | Amazon Technologies, Inc. | Dynamic application security verification |
US20150074659A1 (en) | 2013-09-06 | 2015-03-12 | Vmware, Inc. | Methods and Apparatus to Perform Web-Based Installations and/or Upgrade Architectures for Enterprise Software |
US9680772B2 (en) | 2013-09-09 | 2017-06-13 | Vmware, Inc. | System and method for managing configuration of virtual switches in a virtual machine network |
US10339236B2 (en) | 2013-09-10 | 2019-07-02 | Vmware, Inc. | Techniques for improving computational throughput by using virtual machines |
US9298633B1 (en) | 2013-09-18 | 2016-03-29 | Emc Corporation | Adaptive prefecth for predicted write requests |
US20150106805A1 (en) | 2013-10-15 | 2015-04-16 | Cisco Technology, Inc. | Accelerated instantiation of cloud resource |
US10193963B2 (en) | 2013-10-24 | 2019-01-29 | Vmware, Inc. | Container virtual machines for hadoop |
US10635644B2 (en) | 2013-11-11 | 2020-04-28 | Amazon Technologies, Inc. | Partition-based data stream processing framework |
EP3069231B1 (en) | 2013-11-13 | 2020-11-04 | Palo Alto Networks, Inc. | Automated sdk ingestion |
US9298485B2 (en) * | 2013-11-19 | 2016-03-29 | International Business Machines Corporation | Maintaining virtual machines for cloud-based operators in a streaming application in a ready state |
WO2015074200A1 (zh) | 2013-11-20 | 2015-05-28 | 华为技术有限公司 | 一种生成快照的方法、系统和装置 |
US9417918B2 (en) | 2013-11-20 | 2016-08-16 | International Business Machines Corporation | Computing session workload scheduling and management of parent-child tasks |
CN104142858B (zh) | 2013-11-29 | 2016-09-28 | 腾讯科技(深圳)有限公司 | 阻塞任务调度方法及装置 |
US20160306613A1 (en) | 2013-12-03 | 2016-10-20 | Hewlett Packard Enterprise Development Lp | Code routine performance prediction using test results from code integration tool |
RU2571723C2 (ru) | 2013-12-05 | 2015-12-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения |
US9164754B1 (en) | 2013-12-18 | 2015-10-20 | Amazon Technologies, Inc. | Runtime patching of native-code programs |
US9477507B2 (en) | 2013-12-20 | 2016-10-25 | Vmware, Inc. | State customization of forked virtual machines |
US9501345B1 (en) | 2013-12-23 | 2016-11-22 | Intuit Inc. | Method and system for creating enriched log data |
US10809866B2 (en) * | 2013-12-31 | 2020-10-20 | Vmware, Inc. | GUI for creating and managing hosts and virtual machines |
CN104765620B (zh) | 2014-01-02 | 2018-01-26 | 国际商业机器公司 | 一种程序模块部署的方法和系统 |
EP2894564A1 (en) | 2014-01-10 | 2015-07-15 | Fujitsu Limited | Job scheduling based on historical job data |
US10218703B2 (en) | 2014-01-20 | 2019-02-26 | Hewlett-Packard Development Company, L.P. | Determining a permission of a first tenant with respect to a second tenant |
CN105917627B (zh) | 2014-02-07 | 2021-03-12 | 甲骨文国际公司 | 云服务定制执行环境方法及系统 |
US10133741B2 (en) | 2014-02-13 | 2018-11-20 | Amazon Technologies, Inc. | Log data service in a virtual environment |
US20170068574A1 (en) | 2014-02-25 | 2017-03-09 | Hewlett Packard Enterprise Development Lp | Multiple pools in a multi-core system |
US10296362B2 (en) | 2014-02-26 | 2019-05-21 | Red Hat Israel, Ltd. | Execution of a script based on properties of a virtual device associated with a virtual machine |
US9110770B1 (en) | 2014-03-04 | 2015-08-18 | Amazon Technologies, Inc. | Assessing quality of code in an open platform environment |
US20150254248A1 (en) | 2014-03-07 | 2015-09-10 | Printeron Inc. | System for suggesting network resource for use by a network terminal based on network resource ranking |
US9632835B2 (en) | 2014-03-17 | 2017-04-25 | Ca, Inc. | Deployment of virtual machines to physical host machines based on infrastructure utilization decisions |
WO2015140531A1 (en) | 2014-03-18 | 2015-09-24 | British Telecommunications Public Limited Company | User authentication |
US10572817B2 (en) | 2014-03-19 | 2020-02-25 | Peopleconnect, Inc. | Graph-based organization entity resolution |
US10218633B2 (en) * | 2014-03-28 | 2019-02-26 | Amazon Technologies, Inc. | Implementation of a service that coordinates the placement and execution of containers |
JP2015210718A (ja) | 2014-04-28 | 2015-11-24 | 富士通株式会社 | 記憶制御装置、ストレージシステム、および記憶制御プログラム |
US9223966B1 (en) | 2014-05-04 | 2015-12-29 | Symantec Corporation | Systems and methods for replicating computing system environments |
US9652631B2 (en) | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
US9678778B1 (en) | 2014-05-07 | 2017-06-13 | Google Inc. | Virtual cluster as a service (VCIaaS) |
US9858060B2 (en) | 2014-05-09 | 2018-01-02 | International Business Machines Corporation | Automated deployment of a private modular cloud-computing environment |
US20150324229A1 (en) | 2014-05-09 | 2015-11-12 | International Business Machines Corporation | Propagation of task progress through the use of coalesced time intervals |
US20150332195A1 (en) | 2014-05-13 | 2015-11-19 | Linkedln Corporation | Facilitating performance monitoring for periodically scheduled workflows |
US9250893B2 (en) | 2014-05-14 | 2016-02-02 | Western Digital Technologies, Inc. | Virtualized and automated software build system |
US9213840B2 (en) | 2014-05-15 | 2015-12-15 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features |
FR3021108B1 (fr) | 2014-05-16 | 2016-05-06 | Thales Sa | Procede d'execution de services en temps reel, notamment de gestion de vol et systeme temps reel mettant en oeuvre un tel procede |
US9525893B2 (en) | 2014-05-28 | 2016-12-20 | Verizon Patent And Licensing Inc. | Methods and systems for managing storage of media program copies within a network digital video recording system |
US9703681B2 (en) | 2014-05-29 | 2017-07-11 | Microsoft Technology Licensing, Llc | Performance optimization tip presentation during debugging |
US9390260B2 (en) | 2014-06-09 | 2016-07-12 | Lehigh University | Methods for enforcing control flow of a computer program |
US9361102B2 (en) | 2014-06-09 | 2016-06-07 | Lehigh University | Methods for enforcing control flow of a computer program |
US9218176B1 (en) | 2014-06-13 | 2015-12-22 | International Business Machines Corporation | Software deployment in a distributed virtual machine environment |
US20150371244A1 (en) | 2014-06-23 | 2015-12-24 | Ca, Inc. | Forecasting information technology workload demand |
US9424065B2 (en) | 2014-06-26 | 2016-08-23 | Vmware, Inc. | Methods and apparatus to scale application deployments in cloud computing environments using virtual machine pools |
US10432699B2 (en) | 2014-06-26 | 2019-10-01 | Vmware, Inc. | Crowd-sourced operational metric analysis of virtual appliances |
US9361145B1 (en) | 2014-06-27 | 2016-06-07 | Amazon Technologies, Inc. | Virtual machine state replication using DMA write records |
US9760443B2 (en) | 2014-06-28 | 2017-09-12 | Vmware, Inc. | Using a recovery snapshot during live migration |
US20150378762A1 (en) | 2014-06-30 | 2015-12-31 | Vmware, Inc. | Monitoring and dynamic configuration of virtual-machine memory-management |
US9483299B2 (en) | 2014-06-30 | 2016-11-01 | Bmc Software, Inc. | Capacity risk management for virtual machines |
US9613127B1 (en) | 2014-06-30 | 2017-04-04 | Quantcast Corporation | Automated load-balancing of partitions in arbitrarily imbalanced distributed mapreduce computations |
US20160294614A1 (en) | 2014-07-07 | 2016-10-06 | Symphony Teleca Corporation | Remote Embedded Device Update Platform Apparatuses, Methods and Systems |
US9983901B2 (en) | 2014-07-09 | 2018-05-29 | Google Llc | Dynamic shard allocation adjustment |
US9898498B2 (en) | 2014-07-14 | 2018-02-20 | Oracle International Corporation | Age-based policies for determining database cache hits |
US9612859B2 (en) | 2014-07-21 | 2017-04-04 | Vmware, Inc. | Comparing states of a virtual machine |
US20160019081A1 (en) | 2014-07-21 | 2016-01-21 | Vmware,Inc. | Viewing a snapshot of a virtual machine |
US20160026486A1 (en) | 2014-07-25 | 2016-01-28 | Soft Machines, Inc. | An allocation and issue stage for reordering a microinstruction sequence into an optimized microinstruction sequence to implement an instruction set agnostic runtime architecture |
US20160070714A1 (en) | 2014-09-10 | 2016-03-10 | Netapp, Inc. | Low-overhead restartable merge operation with efficient crash recovery |
US9582301B2 (en) | 2014-09-17 | 2017-02-28 | International Business Machines Corporation | Method of defining javascript objects |
US9436555B2 (en) | 2014-09-22 | 2016-09-06 | Commvault Systems, Inc. | Efficient live-mount of a backed up virtual machine in a storage management system |
US9823983B2 (en) | 2014-09-25 | 2017-11-21 | Nxp Usa, Inc. | Electronic fault detection unit |
US20160092493A1 (en) | 2014-09-29 | 2016-03-31 | International Business Machines Corporation | Executing map-reduce jobs with named data |
US9323556B2 (en) | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9830193B1 (en) | 2014-09-30 | 2017-11-28 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US10048974B1 (en) | 2014-09-30 | 2018-08-14 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9715402B2 (en) | 2014-09-30 | 2017-07-25 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US9652273B2 (en) * | 2014-10-02 | 2017-05-16 | Vmware, Inc. | Method and system for creating a hierarchy of virtual machine templates in a virtualized computing system |
TWI537827B (zh) | 2014-10-06 | 2016-06-11 | 第五代虛擬科技股份有限公司 | 應用軟體試用系統、方法及其伺服器與使用者裝置 |
US9563513B2 (en) | 2014-10-09 | 2017-02-07 | International Business Machines Corporation | O(1) virtual machine (VM) snapshot management |
US9501420B2 (en) | 2014-10-22 | 2016-11-22 | Netapp, Inc. | Cache optimization technique for large working data sets |
US9930133B2 (en) | 2014-10-23 | 2018-03-27 | Netapp, Inc. | System and method for managing application performance |
JP5904514B1 (ja) | 2014-10-28 | 2016-04-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム |
US10241691B2 (en) | 2014-11-04 | 2019-03-26 | Rubrik, Inc. | Data management system |
US9413626B2 (en) * | 2014-12-05 | 2016-08-09 | Amazon Technologies, Inc. | Automatic management of resource sizing |
US9864636B1 (en) | 2014-12-10 | 2018-01-09 | Amazon Technologies, Inc. | Allocating processor resources based on a service-level agreement |
US9661011B1 (en) | 2014-12-17 | 2017-05-23 | Amazon Technologies, Inc. | Techniques for data routing and management using risk classification and data sampling |
US20160191420A1 (en) | 2014-12-27 | 2016-06-30 | Intel Corporation | Mitigating traffic steering inefficiencies in distributed uncore fabric |
US11494447B2 (en) | 2015-01-13 | 2022-11-08 | Google Llc | Distributed file system for virtualized computing clusters |
US10033570B2 (en) | 2015-01-15 | 2018-07-24 | International Business Machines Corporation | Distributed map reduce network |
US9471775B1 (en) * | 2015-02-04 | 2016-10-18 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9727725B2 (en) | 2015-02-04 | 2017-08-08 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
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 |
US9921864B2 (en) | 2015-02-26 | 2018-03-20 | Vmware, Inc. | Dynamic host performance tuning of a network stack |
US9965309B2 (en) | 2015-03-23 | 2018-05-08 | Empire Technology Development Llc | Virtual machine placement |
US9632846B2 (en) | 2015-04-02 | 2017-04-25 | Microsoft Technology Licensing, Llc | Complex event processor for historic/live/replayed data |
US9658942B2 (en) | 2015-04-02 | 2017-05-23 | International Business Machines Corporation | Dynamic tracing framework for debugging in virtualized environments |
US9785476B2 (en) | 2015-04-08 | 2017-10-10 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
US9930103B2 (en) | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
EP3082038A1 (en) | 2015-04-15 | 2016-10-19 | Hybridserver Tec AG | Method, device and system for creating a massively parallelized executable object |
US20160350099A1 (en) * | 2015-05-29 | 2016-12-01 | Hewlett Packard Enterprise Development Lp | Application deployment to virtual machines |
US9715416B2 (en) | 2015-06-03 | 2017-07-25 | Intel Corporation | Adaptive queued locking for control of speculative execution |
US9785424B2 (en) | 2015-06-05 | 2017-10-10 | Apple Inc. | Capability attributes based application packaging |
US9612865B2 (en) | 2015-06-15 | 2017-04-04 | International Business Machines Corporation | Managed services coordinator |
US11106538B2 (en) | 2015-06-16 | 2021-08-31 | Mongodb, Inc. | System and method for facilitating replication in a distributed database |
US9921885B2 (en) | 2015-06-19 | 2018-03-20 | Vmware, Inc. | Resource management for containers in a virtualized environment |
US9880837B2 (en) | 2015-06-24 | 2018-01-30 | Vmware, Inc. | Artifact manager for release automation |
US20160378547A1 (en) | 2015-06-29 | 2016-12-29 | Amazon Technologies, Inc. | Preserving state during virtual machine instance migration |
US11429442B2 (en) | 2015-06-29 | 2022-08-30 | Vmware, Inc. | Parallel and distributed computing using multiple virtual machines |
US10146635B1 (en) | 2015-06-30 | 2018-12-04 | EMC IP Holding Company LLC | Virtual machine backup |
US9946874B2 (en) | 2015-08-06 | 2018-04-17 | International Business Machines Corporation | Authenticating application legitimacy |
US10198281B2 (en) | 2015-08-28 | 2019-02-05 | Vmware, Inc. | Hybrid infrastructure provisioning framework tethering remote datacenters |
US10235209B2 (en) | 2015-08-28 | 2019-03-19 | Vmware, Inc. | Hybrid task framework |
US10083073B2 (en) | 2015-09-14 | 2018-09-25 | Dynatrace Llc | Method and system for real-time causality and root cause determination of transaction and infrastructure related events provided by multiple, heterogeneous agents |
US10007710B2 (en) | 2015-09-21 | 2018-06-26 | Splunk Inc. | Adaptive control of data collection requests sent to external data sources |
CN106548262B (zh) | 2015-09-21 | 2020-11-06 | 阿里巴巴集团控股有限公司 | 用于处理任务的资源的调度方法、装置和系统 |
US10104123B2 (en) | 2015-09-23 | 2018-10-16 | Ca, Inc. | Fetching a policy definition library from a policy server at mobile device runtime of an application package to control access to mobile device resources |
IN2015CH05184A (zh) | 2015-09-28 | 2015-10-16 | Wipro Ltd | |
US9928108B1 (en) | 2015-09-29 | 2018-03-27 | Amazon Technologies, Inc. | Metaevent handling for on-demand code execution environments |
US10042660B2 (en) | 2015-09-30 | 2018-08-07 | Amazon Technologies, Inc. | Management of periodic requests for compute capacity |
US10356206B2 (en) | 2015-11-08 | 2019-07-16 | Vmware, Inc. | Deploying an application in multiple cloud computing environments |
US9830175B1 (en) | 2015-12-16 | 2017-11-28 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US9514037B1 (en) | 2015-12-16 | 2016-12-06 | International Business Machines Corporation | Test program scheduling based on analysis of test data sets |
US9811434B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US9811363B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US10754701B1 (en) | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
US10013267B1 (en) | 2015-12-16 | 2018-07-03 | Amazon Technologies, Inc. | Pre-triggers for code execution environments |
US9830449B1 (en) | 2015-12-16 | 2017-11-28 | Amazon Technologies, Inc. | Execution locations for request-driven code |
US9787779B2 (en) | 2015-12-21 | 2017-10-10 | Amazon Technologies, Inc. | Analyzing deployment pipelines used to update production computing services using a live pipeline template process |
US10002026B1 (en) | 2015-12-21 | 2018-06-19 | Amazon Technologies, Inc. | Acquisition and maintenance of dedicated, reserved, and variable compute capacity |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
US10067801B1 (en) | 2015-12-21 | 2018-09-04 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US11089152B2 (en) | 2016-02-08 | 2021-08-10 | Aawaaz Inc. | Placement of a missed call |
US10608908B2 (en) | 2016-02-10 | 2020-03-31 | Nicira, Inc. | On-demand connection ping |
US10379824B2 (en) | 2016-02-26 | 2019-08-13 | Oracle International Corporation | Method for static security enforcement of a DSL |
WO2017160765A1 (en) | 2016-03-15 | 2017-09-21 | Carbon Black, Inc. | System and method for process hollowing detection |
US10162672B2 (en) | 2016-03-30 | 2018-12-25 | Amazon Technologies, Inc. | Generating data streams from pre-existing data sets |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
CN108885568B (zh) | 2016-03-30 | 2022-01-28 | 亚马逊技术有限公司 | 用于通过按需代码执行环境处理数据源内的多个数据项的系统和计算机实现的方法 |
US10310820B2 (en) | 2016-05-12 | 2019-06-04 | Basal Nuclei Inc | Programming model and interpreted runtime environment for high performance services with implicit concurrency control |
JP6719079B2 (ja) | 2016-05-31 | 2020-07-08 | パナソニックIpマネジメント株式会社 | 情報機器、データ処理システム、データ処理方法およびコンピュータプログラム |
US10592279B2 (en) | 2016-06-23 | 2020-03-17 | Advanced Micro Devices, Inc. | Multi-processor apparatus and method of detection and acceleration of lagging tasks |
US10139876B2 (en) | 2016-06-23 | 2018-11-27 | Vmware Inc. | Efficient reboot of an operating system executed in a virtual machine |
US20190020913A9 (en) | 2016-06-27 | 2019-01-17 | Facebook, Inc. | Systems and methods for identifying matching content |
US20170371963A1 (en) | 2016-06-27 | 2017-12-28 | Facebook, Inc. | Systems and methods for identifying matching content |
US10282229B2 (en) | 2016-06-28 | 2019-05-07 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US9952896B2 (en) | 2016-06-28 | 2018-04-24 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US9977691B2 (en) | 2016-06-29 | 2018-05-22 | Amazon Technologies, Inc. | Adjusting variable limit on concurrent code executions based on communication between frontends |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US11625257B2 (en) | 2016-06-29 | 2023-04-11 | Vmware, Inc. | Provisioning executable managed objects of a virtualized computing environment from non-executable managed objects |
US10277708B2 (en) | 2016-06-30 | 2019-04-30 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10203990B2 (en) | 2016-06-30 | 2019-02-12 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US9596350B1 (en) | 2016-07-21 | 2017-03-14 | Genesys Telecommunications Laboratories, Inc. | Virtual interactions in contact center operations |
US10089135B2 (en) | 2016-08-09 | 2018-10-02 | International Business Machines Corporation | Expediting the provisioning of virtual machines based on cached repeated portions of a template |
US9977670B2 (en) | 2016-08-10 | 2018-05-22 | Bank Of America Corporation | Application programming interface for providing access to computing platform definitions |
US20180060221A1 (en) | 2016-08-24 | 2018-03-01 | Google Inc. | Multi-layer test suite generation |
US10831641B2 (en) | 2016-09-08 | 2020-11-10 | At&T Intellectual Property I, L.P. | Method and apparatus for determining a performance impact by a software upgrade of a mobile user endpoint device |
US10545792B2 (en) | 2016-09-12 | 2020-01-28 | Seven Bridges Genomics Inc. | Hashing data-processing steps in workflow environments |
US10061613B1 (en) | 2016-09-23 | 2018-08-28 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US10417049B2 (en) | 2016-11-28 | 2019-09-17 | Amazon Technologies, Inc. | Intra-code communication in a localized device coordinator |
KR102209276B1 (ko) | 2016-11-28 | 2021-01-29 | 아마존 테크놀로지스, 인크. | 메시징 프로토콜 통신 관리 |
US20180239636A1 (en) | 2017-02-22 | 2018-08-23 | Nutanix, Inc. | Task execution framework using idempotent subtasks |
US10754685B2 (en) | 2017-03-03 | 2020-08-25 | Microsoft Technology Licensing Llc | Cross-device task registration and resumption |
EP3379413A1 (en) | 2017-03-21 | 2018-09-26 | Nokia Solutions and Networks Oy | Optimization of a software image layer stack |
US10514909B2 (en) | 2017-03-29 | 2019-12-24 | Technion Research & Development Foundation Limited | Similarity of binaries |
US10725826B1 (en) | 2017-06-21 | 2020-07-28 | Amazon Technologies, Inc. | Serializing duration-limited task executions in an on demand code execution system |
US10445140B1 (en) | 2017-06-21 | 2019-10-15 | Amazon Technologies, Inc. | Serializing duration-limited task executions in an on demand code execution system |
WO2019051067A1 (en) | 2017-09-06 | 2019-03-14 | Green Ocean Sciences, Inc. | INTEGRATED MOBILE DEVICE AND ELECTRONIC DATA PLATFORM FOR CHEMICAL ANALYSIS |
US10587412B2 (en) | 2017-11-07 | 2020-03-10 | International Business Machines Corporation | Virtual machine structure |
US10565083B2 (en) | 2017-12-08 | 2020-02-18 | Cisco Technology, Inc. | Simulating hosted application performance |
US10564946B1 (en) | 2017-12-13 | 2020-02-18 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10303492B1 (en) | 2017-12-13 | 2019-05-28 | Amazon Technologies, Inc. | Managing custom runtimes in an on-demand code execution system |
US10803180B2 (en) | 2017-12-13 | 2020-10-13 | Jayant Shukla | Deterministic method for detecting and blocking of exploits on interpreted code |
US10402178B2 (en) | 2018-01-26 | 2019-09-03 | Accenture Global Solutions Limited | Cross platform content management and distribution system |
US10503626B2 (en) | 2018-01-29 | 2019-12-10 | Oracle International Corporation | Hybrid instrumentation framework for multicore low power processors |
US10353678B1 (en) | 2018-02-05 | 2019-07-16 | Amazon Technologies, Inc. | Detecting code characteristic alterations due to cross-service calls |
US10572375B1 (en) | 2018-02-05 | 2020-02-25 | Amazon Technologies, Inc. | Detecting parameter validity in code including cross-service calls |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US11157300B2 (en) | 2018-02-13 | 2021-10-26 | Sophos Limited | Managing virtual machine security resources |
US10860367B2 (en) | 2018-03-14 | 2020-12-08 | Microsoft Technology Licensing, Llc | Opportunistic virtual machine migration |
US10466986B2 (en) | 2018-03-30 | 2019-11-05 | Oracle International Corporation | Optimized recompilation using hardware tracing |
US10503634B1 (en) | 2018-05-25 | 2019-12-10 | Microsoft Technology Licensing, Llc | Semantic comparison of computer compiler traces |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
CN112513813A (zh) | 2018-06-25 | 2021-03-16 | 亚马逊技术有限公司 | 在按需网络代码执行系统中执行辅助功能 |
US10817331B2 (en) | 2018-06-25 | 2020-10-27 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US10649749B1 (en) | 2018-06-26 | 2020-05-12 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US10877774B2 (en) | 2018-07-17 | 2020-12-29 | Sap Se | Cloud integration of application runtime |
US10713080B1 (en) | 2018-07-25 | 2020-07-14 | Amazon Technologies, Inc. | Request-based virtual machine memory transitioning in an on-demand network code execution system |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
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 |
US10740208B2 (en) | 2018-10-03 | 2020-08-11 | Capital One Services, Llc | Cloud infrastructure optimization |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
-
2015
- 2015-12-21 US US14/977,544 patent/US9910713B2/en active Active
-
2016
- 2016-12-15 WO PCT/US2016/066997 patent/WO2017112526A1/en active Application Filing
- 2016-12-15 JP JP2018525393A patent/JP6647398B2/ja active Active
- 2016-12-15 EP EP16823419.3A patent/EP3394750B1/en active Active
- 2016-12-15 CN CN201680072794.XA patent/CN108369534B/zh active Active
-
2018
- 2018-03-05 US US15/912,273 patent/US10248467B2/en active Active
-
2019
- 2019-04-01 US US16/372,108 patent/US11016815B2/en active Active
-
2020
- 2020-01-14 JP JP2020003640A patent/JP6892729B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP3394750A1 (en) | 2018-10-31 |
US20190227849A1 (en) | 2019-07-25 |
JP6892729B2 (ja) | 2021-06-23 |
JP2018537776A (ja) | 2018-12-20 |
EP3394750B1 (en) | 2024-01-31 |
US20170177413A1 (en) | 2017-06-22 |
US11016815B2 (en) | 2021-05-25 |
JP2020074153A (ja) | 2020-05-14 |
CN108369534A (zh) | 2018-08-03 |
US10248467B2 (en) | 2019-04-02 |
US9910713B2 (en) | 2018-03-06 |
JP6647398B2 (ja) | 2020-02-14 |
WO2017112526A1 (en) | 2017-06-29 |
US20180210760A1 (en) | 2018-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108369534B (zh) | 代码执行请求路由 | |
US11354169B2 (en) | Adjusting variable limit on concurrent code executions | |
US11263034B2 (en) | Low latency computational capacity provisioning | |
US11461124B2 (en) | Security protocols for low latency execution of program code | |
US10853112B2 (en) | Stateful virtual compute system | |
US10592269B2 (en) | Dynamic code deployment and versioning | |
CN109478134B (zh) | 用跨账户别名执行按需网络代码 | |
US9977691B2 (en) | Adjusting variable limit on concurrent code executions based on communication between frontends | |
CN107533470B (zh) | 一种用于从虚拟计算群提供低延时计算能力的系统及计算机实施的方法 | |
CN107209682B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |