CN107408064A - 在虚拟机实例内执行命令 - Google Patents
在虚拟机实例内执行命令 Download PDFInfo
- Publication number
- CN107408064A CN107408064A CN201680014284.7A CN201680014284A CN107408064A CN 107408064 A CN107408064 A CN 107408064A CN 201680014284 A CN201680014284 A CN 201680014284A CN 107408064 A CN107408064 A CN 107408064A
- Authority
- CN
- China
- Prior art keywords
- order
- examples
- computer
- perform
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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
-
- 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
-
- 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]
-
- 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
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and 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/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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/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/5044—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 hardware capabilities
-
- 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/5061—Partitioning or combining of resources
-
- 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
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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/54—Interprogram communication
-
- 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/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- 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
- 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/45575—Starting, stopping, suspending or resuming 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/45583—Memory management, e.g. access or allocation
-
- 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/45587—Isolation or security of 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/45591—Monitoring or debugging support
-
- 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/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文公开用于在虚拟机(“VM”)实例内执行命令的技术。将公共web服务应用编程接口(“API”)暴露在服务提供商网络内,其包括与在VM实例内执行命令相关的方法。例如,该API可以包括用于获取能在VM实例内执行的命令的列表的方法。该API还可以包括用于请求在VM实例内执行命令的方法。该API还可以包括用于请求描述VM实例内命令执行的状态的数据的方法。该API还可以暴露其他方法。可以利用VM实例上执行的软件代理来提供能够在VM中执行的命令的列表、执行所请求的命令以及提供描述命令执行的状态的数据。
Description
相关申请的交叉引用
本专利要求2015年3月20日提交的标题为“在虚拟机实例内执行命令(ExecutingCommands Within Virtual Machine Instances)”的美国申请序列号14/664,135的优先权,其申请的整体通过引用并入本文。
背景技术
存在基于网络的服务提供商网络,其允许客户永久性地或按需购买和利用各种类型的计算资源。例如,服务提供商网络可以让客户购买和利用计算资源,如虚拟机(“VM”)实例、数据存储资源、数据库资源、联网资源、网络服务和其他类型的计算资源。客户可以配置服务提供商网络提供的计算资源以实现期望的功能,如提供基于网络的应用或另一种类型的功能。
管理服务提供商网络提供的计算资源,如上所述那些,可能复杂且耗时。例如且不限于,为了在VM实例内执行命令,用户可能需要远程登录到该VM实例才能执行期望的命令。此过程可能非常耗时,尤其是该命令要在多于一个VM实例中执行的情况。
本文所作的公开是关于这些和其他考虑来呈现的。
附图说明
图1是示出配置成提供用于在VM实例内执行命令的功能的服务提供商网络的配置和操作的多个方面的系统架构示意图;
图2是示出用于获取能够在VM实例内执行的命令的列表的说明性例行程序的流程图;
图3是示出用于在VM实例内执行命令的说明性例行程序的流程图;
图4是示出本文公开用于获取VM实例内执行或已经执行完成的命令的状态的说明性例行程序的多个方面的流程图;
图5是示出包括可配置成实现本文描述的功能的多个方面的服务提供商网络的说明性操作环境的系统和网络示意图;
图6是说明可利用来实现本文公开的技术的多个方面的数据中心的配置的计算系统示意图;
图7是示出在本文公开的一种配置中可由服务提供商网络提供且在服务提供商网络内利用的若干服务的多个方面的系统和网络示意图;以及
图8是示出用于实现可利用来实现本文呈现的各种技术的多个方面的计算设备的说明性计算机硬件架构的计算机架构示意图。
具体实施方式
下文详细描述针对在VM实例内执行命令的技术。本文呈示的公开内容还包括用于发现能够在VM实例内执行的命令以及用于获取指示VM实例内正在执行或已经完成执行的命令的状态的信息的技术。通过这些技术的实现,服务提供商网络提供的按需计算服务的用户能够快速且容易地在VM实例内执行命令而无需远程登录到VM实例。
正如上文简要论述的,本文公开的各种技术可以在服务提供商网络中实现。服务提供商网络可以让客户购买和利用计算资源(本文可以称为“资源”),如VM实例、数据存储资源、数据库资源、联网资源、网络服务和其他类型的计算资源。为了支持本文公开的功能,服务提供商网络中执行的VM实例可以配置有软件代理,如daemon或其他类型的后台进程,其配置成接收和响应对数据(诸如列表)的请求、标识能够在特定实例中执行的命令、执行命令和提供指示命令执行的状态的数据。为了执行这些功能,还可以维护配置文件,其标识实例的可用命令以及指定用于执行每个命令的脚本或其他类型的程序代码。该配置文件和脚本或其他类型的程序可以被存储在VM实例处或另一个位置中。
在一些配置中,还可以将公共web服务应用编程接口(“API”)暴露在服务提供商网络中,其提供与在VM实例内执行命令相关的方法。例如,在一个配置中,API包括用于请求标识可在VM实例内执行的命令的数据的方法。响应于接收对用于请求标识能在VM实例内执行的命令的数据的方法的调用,向该VM实例上执行的软件代理传送请求以获取标识能够执行的命令的数据。在一些配置中,执行该VM实例的主机计算机上执行的实例管理器可以接收该请求并将请求传递到该软件代理。进而,该软件代理配置成返回标识能在该VM实例内执行的命令的数据。该数据可以被利用来填充用户接口(“UI”),该UI配置成显示用于响应于用户选择和/或以其他方式执行命令的UI控件。
在一些配置中,可以周期性地对用于请求标识可在VM实例内执行的命令的数据的方法发出调用。可以接收标识命令的数据并将其存储在高速缓存中。当后续接收到对该方法的调用时,可以利用高速缓存中存储的数据,而非对VM实例上的软件代理发出请求。以此方式,可以较对VM实例中执行的软件代理发出调用的情况更快速地响应于请求而获取并返回标识能够在VM实例中执行的命令的数据。
API还包括用于在VM实例内执行命令的方法。响应于调用用于在VM实例内执行命令的方法,向该VM实例上执行的软件代理传送要执行所请求的命令的请求。进而,该软件代理配置成通过执行关联的脚本或其他类型的程序代码来执行所标识的命令。该软件代理还可以配置成响应于该请求返回与该命令关联的唯一标识符(“ID”)。正如将下文更详细描述的,可以利用ID来获取描述命令执行的状态和/或命令执行的输出的信息。在一些配置中,可以执行各种认证和/或授权过程以确保与请求关联的用户已获授权在特定VM实例上执行所请求的命令。还可以在VM实例内执行命令之前进行其他类型的安全性检查。
在一些配置中,该API还包括用于获取描述命令在VM实例内执行的状态的数据的方法。对此方法的调用可以包括在发出要执行该命令的请求时软件代理提供的ID。响应于接收到对此方法的调用,向执行该命令所在的VM实例上执行的软件代理传送请求。该请求可以包括与该命令关联的ID。对此响应,该VM实例上执行的软件代理配置成获取并返回指示该命令执行的状态的数据。例如且不限于,该数据可以指示执行是在进行中还是已完成,以及如果已完成,则指示执行是成功还是失败。在一些配置中,返回的数据还可以包括命令执行的输出。
使用上文描述的机构的实现,可以在VM内执行各种类型的命令而无需用户登录到该VM实例。例如且不限于,可以执行用于在VM实例上重启进程的命令、用于清空高速缓存的命令、用于执行备份操作的命令、用于配置该VM实例的命令和/或用于对该VM实例执行测试的命令。还可以执行其他类型的命令。下文参考图1-8将呈示有关上文简要论述的各种部件和过程的附加细节。
应该认识到,本文呈示的主题可以实现为计算机进程、计算机控制的装置、计算系统或制造产品,如计算机可读存储介质。虽然本文描述的主题是在一个或多个计算设备上执行的程序模块的一般性场景中呈示的,但是本领域技术人员将认识到可以与其他类型的程序模块组合来执行其他实现。一般地,程序模块包括,执行特定任务或实现特定抽象数据类型的例行程序、程序、部件、数据结构和其他类型的结构。
本领域技术人员还将认识到,本文描述的主题的多个方面可以在本文描述的那些以外的其他计算机系统配置上或与之结合来实施,包括多处理器系统、基于微处理器或可编程的消费电子产品、微计算机、主机计算机、手持计算机、个人数字助理、电子阅读器、移动电话设备、平板计算设备、专用硬件设备、网络家电等。正如上文简要论述的,本文描述的配置可以在如服务提供商网络的分布式计算环境中实施,其中可以由经通信网络链接的远程计算设备来执行任务。在分布式计算环境中,可以将程序模块同时放置在本地和远程存储器存储设备中。
在下文的详细描述中,参考了附图,这些附图构成描述的一部分并且在附图中以说明形式示出了特定的配置或示例。本文的附图并非按比例绘制。若干附图(本文中可以称为“图”或“多个图”)中,相似的数字表示相似的元件。
图1是示出配置成提供用于在VM实例106内执行命令的功能的服务提供商网络102的配置和操作的多个方面的系统架构示意图。服务提供商网络102是分布式网络,经由该分布式网络,客户和/或其他用户可以永久地或按需利用计算资源,如VM实例106和/或其他类型的计算资源。
每种类型或配置的计算资源可以由服务提供商网络102以不同的大小提供。例如,服务提供商可以提供物理主机、VM实例106或其他类型的数据处理资源,其可供购买和使用,具有许多不同配置的处理器能力、主存储器、磁盘存储装置和操作系统。操作服务提供商网络102的服务提供商还可以提供其他类型的资源供客户购买和使用。例如,服务提供商可以永久性地或按需提供虚拟或硬件设备、数据库资源和实例、文件或块数据存储资源和/或联网资源,如负荷平衡资源、域名服务(“DNS”)资源、虚拟专用云(“VPC”)资源、虚拟局域网(“VLAN”)资源和/或其他类型的硬件和软件计算资源或服务106。资源还可以包括但不限于VM实例106和映像、安全性组、选项组、网关、选项集、网络接入控制列表(“ACL”)、子网、存储桶(storage bucket)、网络接口、快照、现货市场请求(spot market request)和存储卷。
操作服务提供商网络102的服务提供商还可以就资源利用向创建和使用资源的客户收费。对特定计算资源收取的费用可以基于计算资源的类型和/或配置。例如,在数据处理计算资源,如VM实例106的情况中,使用该计算资源的费用可以基于该计算资源被利用的时间量来收取。在数据存储计算资源的情况中,费用可以基于所存储的数据量和/或传入或传出该计算资源的数据量来计算。其他类型的资源的费用还可以基于其他考量。服务提供商还可以利用各种购买模型来确定就使用服务提供商网络102提供的资源对客户收费的金额。
上文描述的资源可以由服务提供商操作的一个或多个数据中心以一个特定实现来提供。正如本领域技术人员公知的,数据中心是利用来容放和操作计算机系统及关联的部件的设施。数据中心还典型地包括冗余和后备电源、通信、冷却和安全性系统。数据中心可以位于地理位置离散的区域,并且还可以连接到各种其他设施,如共处一处的设施,以及各种广域网(“WAN”),如因特网。
上文简要论述的资源还可以按需以自动方式供应以及取消供应。例如,服务提供商网络102可以配置成响应于网络服务的需求增长或其他情况实例化计算资源的新实例,如VM实例106。可以采用类似的方式供应和取消供应其他类型的计算资源。服务提供商网络102中的服务还可以提供用于基于资源的需求和/或其他因素自动缩放和/或取消缩放资源的功能。
服务提供商网络102的客户或潜在客户可以利用适合的计算系统(图1中未示出)以便通过适合的数据通信网络(图1中也未示出)与服务提供商网络102通信。以此方式,服务提供商网络102的客户可以配置服务提供商网络102提供的计算资源的操作的各个方面,或以其他方式控制客户正在利用的任何计算资源。例如且不限于,服务提供商网络102的客户所利用的计算系统可以被利用来购买服务提供商网络102中的计算资源,通过管理控制台114或其它类型的接口配置计算资源的操作的各个方面,访问和利用本文描述的各种服务和系统提供的功能,和/或执行与服务提供商网络102提供的计算资源的操作有关的其他类型的功能。
客户计算系统可以是能够经适合的数据通信网络连接到服务提供商网络102的任何类型的计算设备,例如且不限于,膝上型或桌上型计算机、平板计算设备、服务器计算机或移动电话。服务提供商网络102的运营商所采用的管理用户,如管理服务提供商网络102的操作的管理员也可以通过类似的方式与服务提供商网络102提供的资源连接、管理和利用该资源。
正如上文简要论述的,服务提供商网络102还可以配置成提供用于内部使用和被客户使用的各种类型的网络服务。例如且不限于,服务提供商网络102可以提供用于按需提供VM实例106的按需计服务104、用于存储数据的数据存储服务、加密服务、通知服务、认证服务、策略管理服务、任务服务和潜在地提供其他类型的网络可访问服务106。这些和其他服务及其关联的资源可以被一起利用来实现服务提供商网络102中的各种类型的基于网络的应用。下文将参考图5-8论述有关服务提供商网络102的一个实现和服务提供商网络102可提供的各种类型的网络服务的附加细节。
如图1所示以及上文的简要论述,在一些配置中,按需计算服务104被利用来提供VM实例106。例如,在图1所示的示例中,按需计算服务104正在提供在同一个主机计算机107A上执行的两个VM实例106A和106B。就此而言,应该认识到图1所示的配置是针对论述的目的而进行简化的,并且可以利用许多其他主机计算机107来以类似方式提供许多其他VM实例106。例如且不限于,主机计算机107B可以被利用来提供附加的VM实例106。正如上文论述,VM实例106还可以基于需求和/或其他因素来进行供应和/或取消供应。
又如图1所示,在一些配置中,主机计算机107A配置有实例管理器108。实例管理器108是VM实例106A和106B外部执行的软件部件。实例管理器108提供用于实现与特定主机计算机107A上的VM实例106A和106B通信的功能。更具体地,在一些配置中,每个VM实例106内执行软件代理120。例如,在图1所示的示例中,VM实例106A正在执行软件代理120A以及VM实例106B正在执行软件代理120B。软件代理120B可以实现为daemon或其他类型的后台进程,其监听来自实例管理器107的通信的指定端口。在其他配置中,软件代理120可以实现为另一种类型的软件部件。
在一个配置中,还对每个VM实例106供应配置文件122和一个或多个命令脚本124。例如,在图1所示的示例中,已对VM实例106A供应了配置文件122A和命令脚本124A以及已对VM实例106B供应了配置文件122B和命令脚本124B。配置文件122提供能在每个VM实例106内执行的命令的列表。配置文件122还为每个命令标识在软件代理120接收到要执行关联的命令的请求时要执行的命令脚本124。就此而言,应该认识到,可以通过脚本以外的其他类型的程序代码来实现命令。例如且不限于,在其他配置中,可以通过已编译的程序代码、已解释的程序代码和/或其他类型的程序代码来实现命令。还应该认识到获授权的用户可以编辑配置文件122A中给出的命令的列表已提供能够在特定VM实例106上执行的命令的定制列表。
还应该认识到,在其他配置中,可以将配置文件122和命令脚本124(或其他类型的程序代码)存储在VM实例106内以外的位置。例如且不限于,可以将配置文件122和命令脚本124(或其他类型的程序代码)存储在数据库中或其他类型的网络可访问位置以供VM实例106使用。而且,在一些配置中,VM实例106可以配置成在不使用配置文件122的情况下操作。在这些配置中,命令脚本124(或其他类型的程序代码)可以存储在VM实例106外部的数据存储区(data store)中。当接收到要执行命令的请求时,软件代理120可以从数据存储区中检索要执行的命令脚本124(或其他类型的程序代码)而不考虑配置文件122。还可以利用其他实现。
为了将包括软件代理120、配置文件122和命令脚本124(或其他类型的程序代码)的VM实例106实例化,可以预先创建包括这些部件的VM映像。然后可以利用VM映像来将适当配置有上述软件部件的VM实例106实例化。可以由服务提供商网络102的运营商、服务提供商网络102的客户、研发者和/或另一个实体来创建VM映像。
如图1所示,在一些配置中,公共web服务应用编程接口(“API”)110也可以暴露在服务提供商网络102内,其提供与命令在VM实例106内执行相关的方法111。例如,在一个配置中,API 110包括用于请求标识可在特定VM实例106内执行的命令的数据的方法111A。服务提供商网络102内操作的各种部件可以调用API 110。例如且不限于,可以利用管理控制台112,其提供用于管理VM实例106的操作的用户接口(“UI”)。标识能够在VM实例106内执行的命令的数据可以被利用来生成UI 114内的UI控件,用于响应于用户选择和/或以其他方式执行命令。如图1所示,API 110暴露的方法111可以通过其他部件来调用,如通过服务提供商网络102内操作的命令行接口(“CLI”)116来调用。
响应于接收对用于请求标识能在VM实例内执行的命令的数据的方法111A的调用,向VM实例106上执行的软件代理120传送请求以获取标识能够执行的命令的数据。例如且不限于,在一个配置中,API 110向服务管理器118传送请求。进而,服务管理器118向与需要命令列表针对的VM实例106在同一个主机计算机107上执行的实例管理器108传送对可用命令的请求。实例管理器108接收到该请求,并将该请求传递到VM实例106内执行的软件代理120。进而,软件代理120从配置文件122中读取可用命令,并将标识可用命令的数据返回到实例管理器108。实例管理器108将可用命令返回到服务管理器118,该服务管理器进而将命令返回到API 110。然后可以响应于对方法111A的调用,将标识可用命令的数据返回到例如管理控制台112或CLI 116。
在一些配置中,服务管理器118或另一个部件可以配置成通过上述的机构周期性地调用从VM实例106获取可用命令列表的请求。服务管理器118可以接收标识命令的数据并将该数据存储在高速缓存中,如存储在图1所示的命令高速缓存124中。当后续接收到对方法111A的调用时,服务管理器118可以返回高速缓存中先前存储的标识可用命令的数据,而非对VM实例106上的软件代理120发出请求。以此方式,可以响应于对方法111A的请求而获取并返回标识能在VM实例106中执行的命令的数据,较之对VM实例106中执行的软件代理120发出调用的情况更快速。在其他实现中还可以利用其他配置。参考图2,下文将提供有关方法111A的操作的附加细节。
API 110还包括用于在VM实例120内执行命令的方法111B。响应于调用用于在VM实例120内执行命令的方法111B,API 110向服务管理器118传送要在所标识的VM实例106上执行指定的命令的请求。进而,服务管理器118向执行要执行指定的命令所在的VM实例106的主机计算机107上执行的实例管理器108传送请求。对此响应,服务管理器108然后向要执行该命令所在的VM实例106内执行的软件代理120传送请求。
软件代理120从实例管理器108接收要执行该命令的请求。在一个配置中,软件代理120然后检查配置文件122以标识与所请求的命令对应的命令脚本124(或其他类型的程序代码)。一旦与所请求的命令关联的命令脚本124被标识,则软件代理120使得命令脚本124A(或用于实现该命令的其他类型的程序代码)在VM实例106内执行。
正如上文简要论述的,软件代理120还可以配置成响应于该请求返回与执行的命令关联的唯一标识符(“ID”)。例如,软件代理120可以返回所执行的命令脚本124A或其他类型的程序代码的进程ID。在其他配置中还可以利用其他类型的ID。该ID被返回到实例管理器108,该实例管理器将ID返回到服务管理器118。服务管理器118然后可以将该ID返回到API,该API进而响应于对方法111B的调用返回该ID。正如将下文更详细描述的,随后可以利用返回的ID来获取描述命令执行的状态和/或命令执行的输出的信息。
在一些配置中,可以执行各种认证和/或授权过程以确保与要执行命令的请求关联的用户已获授权在特定VM实例106上执行所请求的命令。例如且不限于,在执行命令之前,API 110和/或服务管理器118可以调用认证服务120和/或授权服务122,以便验证请求执行命令的用户获授权执行该命令。通过此认证机构,用户可以获授权在VM实例106内执行某些类型的命令,即使该用户可能未获授权远程登录到VM实例106。就此而言,应该认识到,还可以在VM实例106内执行命令之前进行其他类型的安全性检查。参考图3,下文将提供有关用于在VM实例106内执行命令的方法111B的操作的附加细节。
在一些配置中,API 110还包括用于获取描述命令在VM实例106内执行的状态的数据的方法111C。正如上文论述,对方法111C的调用可以包括在发出要执行该命令的请求时软件代理120提供的ID。响应于接收到对此方法的调用,API 110向服务管理器118传送请求,该服务管理器进而向适合的实例管理器108传送请求。实例管理器108向执行该命令所在的VM实例106上执行的软件代理120传送获取命令的状态的请求。对此响应,VM实例106上执行的软件代理120获取并返回指示该命令执行的状态的数据。例如且不限于,该数据可以指示执行是在进行中还是已完成,以及如果已完成,则指示执行是成功还是失败。在一些配置中,返回的数据还可以包括命令执行的输出。参考图4,下文将提供有关方法111C的操作的附加细节。
正如上文简要论述的,使用上文描述的机构的实现,能够在VM106内执行各种类型的命令而无需用户登录到VM实例106。例如且不限于,可以执行用于在VM实例106上重启进程的命令、用于清空高速缓存的命令、用于执行备份操作的命令、用于配置VM实例106的命令和/或用于对VM实例106执行测试的命令。还可以执行其他类型的命令。
应该认识到,上文描述为API 110暴露的各种方法111仅是说明性的,以及其他类型的方法111也可以或作为备选在其他配置中提供。还应该认识到服务提供商网络中操作的其他服务也可以利用API 110暴露的方法111。除图1所示那些以外在服务提供商网络102内操作的服务也可以被利用来实现API 110提供的功能。
图2是示出用于获取标识能够在特定VM实例106内执行的命令的数据如列表的说明性例行程序200的流程图。应该认识到,本文中关于图2和其他附图描述的逻辑操作可以实现为(1)一系列计算机实现的动作或计算系统上操作的程序模块和/或(2)计算系统内互连的机器逻辑电路或电路模块。
本文描述的各种部件的实现是根据计算系统的性能和其他要求进行选择的问题。因此,本文描述的逻辑操作以各种方式称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以采用软件、固件、专用数字逻辑及其任何组合来实现。还应该认识到,可以执行比附图所示以及本文描述的操作更多或更少的操作。这些操作还可以并行地执行或按照不同于本文描述的次序来执行。这些操作中的一些或全部还可以由专门地标识的那些部件以外的部件来执行。
例行程序200开始于操作202,其中在服务提供商网络102内暴露公共web服务API110。如上文论述,API 110包括用于获取描述能够在特定VM实例106内执行的命令的数据如列表的方法1102A。从操作202,例行程序200进行到操作204,其中接收到对方法111A的调用,方法111A用于获取描述能够在VM实例106内执行的命令的数据。例如且不限于,在各种配置中,可以利用管理控制台112和CLI 116来发起对方法111A的此类调用。在其他配置中还可以利用其他部件来发起此类调用。
从操作204,例行程序200进行到操作206,其中API 110促成向执行要获取命令列表针对的VM实例120的主机计算机107上的实例管理器108传输请求。如上文论述,在一些配置中,调用服务管理器118,该服务管理器进而调用适合主机计算机107上的实例管理器108以获取命令列表。在操作208处,实例管理器108将获取可用命令的请求传送到适合VM实例106中执行的软件代理120。
在操作210处,软件代理106从实例管理器108接收获取可用命令的请求,并且在一个配置中基于配置文件122的内容来标识可用命令。软件代理106然后将标识可用于执行的命令的数据返回到实例管理器108。进而,实例管理器108将可用命令返回到服务管理器118,该服务管理器将命令的列表返回到API 110。进而,在操作212处,响应于对方法111A的调用,返回命令的列表。例行程序200然后从操作212进行到操作214,此处例行程序结束。如上文论述,在其他配置中,还可以利用其他机构,如缓存,来更快速地获取并返回可用命令的列表。
图3是示出用于在VM实例106内执行命令的说明性例行程序300的流程图。例行程序300开始于操作302,其中API 100暴露用于在服务提供商网络102中执行的VM实例106内执行命令的方法111B。从操作302,例行程序300进行到操作304,其中接收到对方法111B的调用,方法111B用于在VM实例106内执行命令。如上文论述,可以由管理控制台112、CLI 116或另一个部件来发起此类调用。
从操作304,例行程序300进行到操作306,其中可以执行认证和/或授权以便验证与要执行该命令的请求关联的用户已被允许执行该命令。例如且不限于,API 110可以调用认证服务120和/或授权服务122以确定用户是否被允许执行该命令。如果用户未被允许执行该命令,则例行程序300可以从操作308进行到操作310,其中可以返回错误。但是,如果用户被允许执行该命令,则例行程序300可以从操作308进行到操作312。
在操作312处,API 100可以促成要执行命令的请求被传送到正在执行要执行该命令所在的VM实例106的主机计算机107上执行的实例管理器108。进而,在操作314处,实例管理器108将要执行命令的请求传送到VM实例106中执行的适合软件代理120。在操作318处,软件代理120利用配置文件122以标识与所请求的命令对应的命令脚本124(或其他程序部件)。软件代理120然后执行所标识的命令脚本124(或其他程序部件)。
从操作316,例行程序300进行到操作318,其中软件代理120将与命令执行关联的ID返回到实例管理器108。实例管理器108将该ID返回到服务管理器118,服务管理器118进而将该ID返回到API 110。然后,在操作320处,可以响应于对方法111B的调用,返回该ID。例行程序300然后从操作320进行到操作322,此处例行程序结束。
应该认识到,在一些配置中,可以由软件代理120、实例管理器108、API 110和/或实例管理器118来记录命令的执行和/或执行的结果。以此方式,可以对每个VM实例106上已执行的命令保持记录,以及潜在地对执行的结果保持记录。在其他配置中,还可以捕获并维护有关对API 110的调用和/或命令在VM实例106上的执行的其他数据。
图4是示出本文公开的用于获取VM实例106内执行或已经执行完成的命令的状态的说明性例行程序400的多个方面的流程图。例行程序400开始于操作402,其中API 110暴露用于获取VM实例106内已执行的命令的状态的方法111C。从操作402,例行程序400进行到操作404,其中接收到对方法111C的调用,方法111C用于获取VM实例106内执行的命令的状态。如上文论述,管理控制台112、CLI 116和/或另一个部件可以发起此类调用。备选地,该调用可以包括命令被执行时由软件代理120返回的ID。
从操作404,例行程序400进行到操作406,其中经服务管理器118向包含执行该命令所在的VM实例106的主机计算机107上执行的实例管理器108传送请求。例行程序400然后从操作406进行到操作408,其中实例管理器108向执行该命令所在的VM实例106中的软件代理120传送获取命令执行的状态的请求。例行程序400然后进行到操作410,其中软件代理120将命令执行的状态返回到实例管理器108。该状态可以指示例如命令执行已成功或执行已失败。该状态还可以或备选地指示其他类型的情况。该状态还可以包括命令执行的文本输出。命令执行的输出可以在UI 114、CLI 116中呈示和/或以另一种方式呈示。
从操作410,实例管理器108将指示命令执行的状态的数据返回到服务管理器118。服务管理器118进而将该数据返回到API 110,该API 110响应于对方法111C的调用返回数据。从操作412,例行程序400进行到操作414,此处例行程序结束。
图5是示出根据本文公开的一个配置的包括可配置成以上文描述的方式提供在VM实例106内执行命令的功能以及相关功能的服务提供商网络102的本文公开的配置的一个说明性操作环境的系统和网络示意图。如上文论述,服务提供商网络102可以永久性地或按需提供计算资源,如VM实例106。在其他类型的功能中,服务提供商网络102提供的计算资源可以被利用来实现上文描述的各种服务。又如上文论述,服务提供商网络102提供的计算资源可以包括各种类型的计算资源,例如类似VM实例106的数据处理资源、数据存储资源、联网资源、数据通信资源、网络服务等。
服务提供商网络102提供的每种类型的计算资源可以是通用的或可以在多种特定配置中供使用。例如,在多个不同配置中,数据处理资源可以作为物理计算机或VM实例106来提供。VM实例106可以配置成执行应用,包括web服务器、应用服务器、媒体服务器、数据库服务器、上文描述的一些或全部服务和/或其他类型的程序。数据存储资源可以包括文件存储设备、块存储设备等。服务提供商网络102还配置成提供本文未专门提到的其他类型的计算资源。
在一个实现中,服务提供商网络102提供的计算资源通过一个或多个数据中心504A-504N(在本文中可以是指单数形式的“数据中心504”或多数形式的“数据中心504”)来启用。数据中心504是利用来容放和操作计算机系统及关联的部件的设施。数据中心504典型地包括冗余和后备电源、通信、冷却和安全性系统。数据中心504还可以设在地理上离散的位置中。下文将参考图6描述可利用来实现本文公开的技术的数据中心504的一个说明性配置。
服务提供商网络102的客户和其他用户可以通过网络502访问服务提供商网络102提供的计算资源,网络502可以是如因特网的广域通信网(“WAN”)、内联网或因特网服务提供商(“ISP”)网络或此类网络的组合。例如且不限于,服务提供商网络102的客户或其他用户操作的计算设备500可以被利用来通过网络502访问服务提供商网络102。应该认识到,局域网(“LAN”)、因特网或本领域中公知将数据中心504连接到远程客户和其他用户的任何其他联网拓扑均可被利用。还应该认识到,还可以利用此类网络的组合。
图6是说明实现用于在VM实例106内执行命令以及本文公开的相关功能的本文公开的技术的多个方面的数据中心504的一个配置的计算系统示意图。图6所示的示例数据中心504包括用于提供计算资源606A-606E的若干服务器计算机602A-602F(在本文中可以是指单数形式的“服务器计算机602”或多数形式的“服务器计算机602”)。
服务器计算机602可以是适合地配置成用于提供本文描述的计算资源(图6中图示为计算资源604A-604E)的标准塔式、机架安装或刀片式服务器计算机。正如上文提到的,服务提供商网络102提供的计算资源可以是如VM实例106或硬件计算系统的数据处理资源、数据存储资源、数据库资源、联网资源以及其他。一些服务器602还可以配置成执行能够实例化和/或管理计算资源的资源管理器604。例如,在VM实例106的情况中,资源管理器604可以是配置成使得单个服务器602上能够执行多个VM实例106的管理程序(hypervisor)或另一种类型的程序。数据中心504中的服务器计算机602也可以配置成提供网络服务和其他类型的服务,这些服务中的一些在下文参考图7予以详细描述。
图6所示的数据中心504还包括服务器计算机602F,该服务器计算机可以执行上文描述的软件部件中的一些或全部。例如且不限于,服务器计算机602F可以配置成执行提供按需计算服务104的各种部件、管理控制台112和/或上文描述的其他软件部件。服务器计算机602F还可以配置成执行其他部件和/或存储数据以便提供本文描述的功能中的一些或全部。就此而言,应该认识到在各种配置中,图6中图示为在服务器计算机602F上执行的服务可以在数据中心504中的许多其他物理或虚拟服务器上执行。
在图6所示的示例数据中心504中,还利用适合的LAN 606将服务器计算机602A-602F互连。LAN 606还连接到图5所示的网络502。应该认识到,本文描述的配置和网络拓扑已被大大地简化,且可以利用更多计算系统、软件部件、网络和联网设备来将本文公开的各种计算系统互连以及提供上文描述的功能。还可以利用适合的负荷平衡设备或其他类型的网络基础设施部件来平衡数据中心504A-504N中每一个之间、每个数据中心504中的服务器计算机602A-602F中每个之间以及潜在地数据中心504中每个的计算资源之间的负荷。应该认识到,参考图6描述的数据中心504的配置仅是说明性的,并且可以利用其他实现。
图7是示出在本文公开的一种配置中可由服务提供商网络102提供且在该服务提供商网络内利用的若干网络服务的多个方面的系统和网络示意图。具体来说以及如上文论述的,服务提供商网络102可以向服务提供商网络102的客户和其他用户提供各种网络服务,包括但不限于按需计算服务104。服务提供商网络102还可以提供其他类型的服务,包括但不限于,存储服务702A、部署服务702B、加密服务702C、认证服务120、策略管理服务702E和/或任务服务702F,每种服务在下文予以更详细的描述。此外,服务提供商网络102还可以提供其他服务702G,这些服务中的一些在下文予以更详细的描述。
应该认识到,服务提供商102的客户可以包括利用服务提供商网络102提供的一些或全部服务的组织或个人。如上文描述,客户或其他用户可以经网络如图5所示的网络502与服务提供商网络102通信。从客户计算设备例如图5所示的计算设备500到服务提供商网络102的通信可以使得服务提供商网络102提供的服务根据所描述的配置或其变化来操作。
注意并非描述的所有配置都包括参考图7描述的服务,以及可以提供附加的服务作为显性描述的服务的补充或备选。图7所示的每个服务还可以暴露使得调用者能够通过web服务请求来对各种服务提交适合配置的API调用的web服务接口。此外,每个服务可以包括服务接口,服务接口使得服务能够彼此访问(例如,使得按需计算服务104提供的虚拟计算机系统能够将数据存储在数据存储服务702A中或从该数据存储服务检索数据)。现在将提供有关图7所示的一些服务的附加细节。
正如上文论述,按需计算服务104可以是配置成将VM实例106实例化以及按需提供其他类型的计算资源的计算资源的集合。例如,服务提供商网络102的客户或其他用户可以与按需计算服务104(通过适合配置且认证的API调用)交互以便供应和操作在服务提供商网络102托管并操作的物理计算设备上实例化的VM实例106。VM实例106可以用于各种目的,如作为支持web网站的服务器来操作,操作商业用或一般性地,用作客户的计算资源。VM实例106的其他应用可以是支持数据库应用、电子商务应用、商务应用和/或其他应用。虽然图7中示出的是按需计算服务104,但是在服务提供商网络102中可以利用任何其他计算机系统或计算机系统服务,如未采用虚拟化而是在专用或共享计算机/服务器和/或其他物理设备上供应计算资源的计算机系统或计算机系统服务。
存储服务702A可以包括统一地操作以便使用块或文件层面的存储设备(和/或其虚拟化)来存储数据的软件和计算资源。存储服务702A的存储设备可以例如在操作上连接到按需计算服务104提供的虚拟机计算机系统以便用作计算机系统的逻辑单元(例如,虚拟驱动程序)。在虚拟计算机系统服务可能仅提供暂时数据存储的情况下,存储设备还可以实现对应虚拟计算机系统使用/生成的数据的永久存储。
服务提供商网络102还可以包括加密服务702C。加密服务702C可以利用服务提供商网络102的存储服务,如存储服务702A,来以加密的形式存储加密密钥,由此,密钥可用于解密仅对加密服务702C的特定设备是可访问的客户密钥。加密服务702C还可以提供本文未专门提到的其他类型的功能。
如图7所示,在各种配置中,服务提供商网络102还包括认证服务120和策略管理服务702E。在一个示例中,认证服务120是配置成执行用户认证中涉及的操作的计算机系统(即,计算资源的集合)。例如,图7所示的服务702之一可以将来自用户的信息提供到认证服务120以便由此接收指示用户提交的请求是否是可信的信息。
在一个示例中,策略管理服务702E是配置成代理客户或服务提供商网络102的内部用户管理策略的网络服务。策略管理服务702E可以包括使客户能够提交有关策略管理的请求的接口。此类请求可以包括例如为客户、服务或系统添加、删除、更改或以其他方式修改策略的请求,或针对其他管理性动作如提供现有策略的库存等而添加、删除、更改或以其他方式修改策略的请求。
在各种配置中,服务提供商网络102还配置有任务服务702F。任务服务702F配置成接收任务包和实现按任务包所指示的执行任务。任务服务702F可以配置成使用服务提供商网络102的任何资源如实例化的虚拟机或虚拟主机以便执行任务。任务服务702F可以配置实例化的虚拟机或虚拟机主机以便根据指定的要求使用选定的操作系统和/或选定的执行应用来操作。
服务提供商网络102可以附加地至少部分地基于其客户的需求维护其他服务702G。例如,在一些配置中,服务提供商网络102可以维护部署服务702B以用于部署程序代码和/或数据库服务(图7中未示出)。数据库服务可以是统一地操作以创建、维护和允许查询在服务提供商网络102内存储的数据库上执行的计算资源的集合。例如,服务提供商网络102的客户或其他用户可以利用适合配置的网络API调用从数据库服务来操作和管理数据库。这又可允许客户维护以及潜在地缩放数据库中的操作。其他服务包括对象级归档数据存储服务,以及管理、监视其他服务、与之交互或支持其他服务的服务。在其他配置中,服务提供商网络102还可以配置有本文未专门提到的其他服务。
本发明公开的实施方案可以依据如下条款来描述:
1.一种装置,其包括:
处理器;以及
非暂时计算机可读存储介质,其上存储有指令,所述指令可被所述处理器执行且在被执行时促使所述装置
将公共web服务应用编程接口(API)暴露在服务提供商网络内,所述API包括用于在所述服务提供商网络中执行的虚拟机(VM)实例内执行命令的方法,
接收对在所述VM实例内执行所述命令的所述方法的调用,以及
响应于接收到所述调用,促使向所述VM实例中执行的软件代理传送要执行所述命令的请求,所述软件代理配置成响应于接收到所述请求在所述VM实例中执行所述命令。
2.如条款1所述的装置,其中所述公共web服务API还包括用于请求标识能在所述VM实例内执行的命令的数据的方法,以及其中所述非暂时计算机可读存储介质上还存储有指令以:
接收对用于请求能在所述VM实例内执行的所述命令的数据的所述方法的调用;以及
响应于接收对用于请求标识能在所述VM实例内执行的所述命令的数据的所述方法的所述调用,促使向所述VM实例中执行的所述软件代理传送请求以获取标识能在所述VM实例内执行的所述命令的所述数据。
3.如条款1所述的装置,其中所述公共web服务API还包括用于请求标识能在所述VM实例内执行的命令的数据的方法,以及其中所述非暂时计算机可读存储介质上还存储有指令以:
促使向所述VM实例中执行的所述软件代理传送请求以获取标识能在所述VM实例内执行的所述命令的所述数据;
接收标识能在所述VM实例内执行的所述命令的所述数据;
将标识能在所述VM实例内执行的所述命令的所述数据存储在高速缓存中;以及
响应于对用于请求标识能在VM实例内执行的命令的数据的所述方法的调用,使用存储在所述高速缓存中的标识能在所述VM实例内执行的所述命令的所述数据。
4.如条款3所述的装置,其中所述非暂时计算机可读存储介质上还存储有指令,以利用标识能在所述VM实例内执行的所述命令的所述数据来生成用户接口(UI),所述用户接口(UI)配置成显示用于在所述VM实例内执行所述命令的UI控件。
5.如条款1所述的装置,其中所述公共web服务API还包括用于获取在所述VM实例内所述命令的所述执行的状态的方法,以及其中所述非暂时计算机可读存储介质上还存储有指令以:
接收对用于获取所述VM实例内所述命令的所述执行的状态的所述方法的调用;以及
响应于接收对用于获取在所述VM实例内所述命令的所述执行的状态的所述方法的所述调用,促使向所述VM实例中执行的所述软件代理传送请求以获取在所述VM实例内所述命令的所述执行的所述状态。
6.如条款1所述的装置,其中所述非暂时计算机可读存储介质上还存储有指令,以在促使向所述VM实例中执行的所述软件代理传送要执行所述命令的所述请求之前,确定与对用于执行所述命令的所述方法的所述调用关联的用户获授权执行所述命令。
7.如条款1所述的装置,其中所述命令包括以下中的一个或多个:用于在所述VM实例上重启进程的命令、用于清空高速缓存的命令、用于执行备份操作的命令、用于配置所述VM实例的命令或用于对所述VM实例执行测试的命令。
8.一种非暂时计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令在被计算机执行时促使所述计算机:
暴露公共web服务应用编程接口(API),所述API包括用于在虚拟机(VM)实例内执行命令的方法;
接收对在所述VM实例内执行所述命令的所述方法的调用;以及
促使向所述VM实例中执行的软件部件传送要执行所述命令的请求,所述软件部件配置成响应于接收到所述请求在所述VM实例中执行所述命令。
9.如条款8所述的非暂时计算机可读存储介质,其上还存储有计算机可执行指令,以记录所述VM实例中所述命令的所述执行。
10.如条款8所述的非暂时计算机可读存储介质,其中所述公共web服务API还包括用于请求标识能在所述VM实例内执行的命令的数据的方法。
11.如条款10所述的非暂时计算机可读存储介质,其上还存储有计算机可执行指令以:
接收对用于请求标识能在所述VM实例内执行的所述命令的数据的所述方法的调用;以及
促使向所述VM实例中执行的所述软件部件传送请求以获取标识能在所述VM实例内执行的所述命令的所述数据。
12.如条款10所述的非暂时计算机可读存储介质,其上还存储有计算机可执行指令以:
促使向所述VM实例中执行的所述软件部件传送请求以获取标识能在所述VM实例内执行的所述命令的所述数据;
接收标识能在所述VM实例内执行的所述命令的所述数据;
将标识能在所述VM实例内执行的所述命令的所述数据存储在高速缓存中;以及
响应于对用于请求标识能在所述VM实例内执行的命令的数据的所述方法的调用,利用存储在所述高速缓存中的标识能在所述VM实例内执行的所述命令的所述数据。
13.如条款10所述的非暂时计算机可读存储介质,其上还存储有计算机可执行指令,以利用标识能在所述VM实例内执行的所述命令的所述数据来生成用户接口(UI),所述用户接口(UI)配置成显示用于在所述VM实例内执行所述命令的UI控件。
14.如条款8所述的非暂时计算机可读存储介质,其中所述公共web服务API还包括用于获取在所述VM实例内所述命令的所述执行的状态的方法。
15.如条款14所述的非暂时计算机可读存储介质,其上还存储有计算机可执行指令以:
接收对用于获取所述VM实例内所述命令的所述执行的状态的所述方法的调用;以及
促使向所述VM实例中执行的所述软件部件传送请求以获取所述VM实例内所述命令的所述执行的所述状态。
16.一种用于在虚拟机(VM)实例内执行命令的计算机实现的方法,其包括:
将应用编程接口(API)公开地暴露在服务提供商网络内,所述API包括用于在所述服务提供商网络内执行的虚拟机(VM)实例内执行命令的方法;
接收对用于在所述VM实例内执行所述命令的所述方法的调用;以及
促使向所述VM实例中执行的软件部件传送要执行所述命令的请求,所述软件部件配置成响应于接收到所述请求在所述VM实例中执行所述命令。
17.如条款15所述的计算机实现的方法,其中所述API还包括用于请求标识能在所述VM实例内执行的命令的数据的方法。
18.如条款15所述的计算机实现的方法,其中所述API还包括用于获取在所述VM实例内所述命令的所述执行的状态的方法。
19.如权利要求15所述的计算机实现的方法,其还包括在促使向所述VM实例中执行的所述软件部件传送要执行所述命令的所述请求之前,确定与对用于执行所述命令的所述方法的所述调用关联的用户获授权执行所述命令。
20.如条款15所述的计算机实现的方法,其中所述命令包括以下中的一个或多个:用于在所述VM实例上重启进程的命令、用于清空高速缓存的命令、用于执行备份操作的命令、用于配置所述VM实例的命令或用于对所述VM实例执行测试的命令。
图8示出用于能够执行实现上文描述的功能的程序部件的计算机800的示例计算机架构。图8所示的计算机架构图示常规服务器计算机、工作站、桌上型计算机、膝上型计算机、平板计算机、网络电器、电子阅读器、智能电话或其他计算设备,以及可被利用来执行本文呈示的任何软件部件。
计算机800包括基板802或“主板”,基板802或“主板”是多个部件或设备可以通过系统总线或其他电通信路径连接到的印刷电路板。在一个说明性配置中,一个或多个中央处理单元(“CPU”)804与芯片组806一起操作。CPU 804可以是执行计算机800的操作所需的算术和逻辑运算的标准可编程处理器。
CPU 804通过操控区分两个离散物理状态并且改变这些状态的开关元件从一个离散物理状态转变到另一个离散物理状态来执行操作。开关元件一般性地可以包括维持二进制状态之一的电路,如触发器,以及基于一个或多个其他开关元件的状态的逻辑组合来提供输出状态的电路,如逻辑门。这些基本开关元件可以进行组合以创建更复杂的逻辑电路,包括寄存器、加法器-减法器、算术逻辑单元、浮点单元等。
芯片组806提供CPU 804与基板802上的其余部件和设备之间的接口。芯片组806可以提供至RAM 808的接口,其用作计算机800中的主存储器。芯片组806还可以提供至用于存储帮助启动计算机800和在各个部件和设备之间转移信息的基本例行程序的诸如只读存储器(“ROM”)810或非易失性RAM(“NVRAM”)的计算机可读存储介质的接口。ROM 810或NVRAM还可以存储计算机800根据本文描述的配置进行操作所需的其他软件部件。
计算机800可以使用经由如网络606的网络至远程计算设备和计算机系统的逻辑连接以在联网的环境中操作。芯片组806可以包括用于经由NIC 812如千兆以太网适配器提供网络连接的功能。NIC 812能够通过网络606将计算机800连接到其他计算设备。应该认识到多个NIC 812可以存在于计算机800中、将该计算机连接到其他类型的网络和远程计算机系统。
计算机800可以连接到为该计算机提供非易失性存储的大容量存储设备818。大容量存储设备818可以存储操作系统820、程序822和数据,本文中已予以更详细描述。大容量存储设备818可以经连接到芯片组806的存储控制器814连接到计算机800。大容量存储设备818可以由一个或多个物理存储单元组成。存储控制器814可以经串行连接的SCSI(“SAS”)接口、串行高级技术连接(“SATA”)接口、光纤信道(“FC”)接口或用于计算机与物理存储单元之间的物理连接和传输数据的其他类型的接口与物理存储单元实现对接。
计算机800可以通过变换物理存储单元的物理状态以反映正在存储的信息来将数据存储在大容量存储设备818上。在本说明书的不同实现中,物理状态的特定变换可以根据各种因素而定。此类因素的示例可以包括但不限于,用于实现物理存储单元的技术、大容量存储设备818是表征为主存储装置还是辅助存储装置等。
例如,计算机800可以通过存储控制器814发出指令以改变磁盘驱动器单元内特定位置的磁特征、光存储单元中特定位置的反射或折射特征或固态存储单元中特定电容器、晶体管或其他离散部件的电特征来将信息存储到大容量存储设备818。物理介质的其他变换是可能的且不背离本文描述的范围和精神,提供前文示例仅为了有助于本文描述。计算机800还可以通过检测物理存储单元内一个或多个特定位置的物理状态或特征从大容量存储设备818读取信息。
除了上文描述的大容量存储设备818外,计算机800可以对其他计算机可读存储介质具有访问权,以便存储和检索信息,如程序模块、数据结构或其他数据。本领域技术人员应该认识到计算机可读存储介质是用于提供数据的非暂时存储的且可以被计算机800访问的任何可用介质。
通过举例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机可读存储介质包括但不限于,RAM、ROM、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、闪存或其他固态存储器技术、压缩光盘ROM(“CD-ROM”)、数字多功能光盘(“DVD”)、高清DVD(“HD-DVD”)、蓝光或其他光存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或能够用于以非暂时方式存储期望的信息的任何其他介质。
如上文简要陈述的,大容量存储设备818可以存储利用来控制计算机800的操作的操作系统820。根据一个配置,操作系统包括LINUX操作系统。根据另一个配置,操作系统包括来自微软公司的SERVER操作系统。根据又一个配置,操作系统可包括UNIX操作系统或其变体之一。应该认识到,还可以利用其他操作系统。大容量存储设备818可以存储计算机800利用的其他系统或应用程序和数据。
在一个配置中,以计算机可执行指令对大容量存储设备818或其他计算机可读存储介质编码,所述计算机可执行指令在被加载到计算机800中时,将计算机从通用计算系统变换成能够实现本文描述的配置的专用计算机。这些计算机可执行指令通过指定CPU 804在状态之间如何转换来变换计算机800,如上文描述。根据一个配置,计算机800对存储计算机可执行指令的计算机可读存储介质具有访问权,所述计算机可执行指令在被计算机800执行时,执行上文关于图2-4描述的各种过程。计算机800还可以包括用于执行本文描述的任何其他计算机实现的操作的计算机可读存储介质。
计算机800还可以包括用于接收和处理来自多个输入设备的输入的一个或多个输入/输出控制器816,输入设备诸如键盘、鼠标、触控板、触控屏、电子笔或其他类型的输入设备。相似地,输入/输出控制器816可以向显示器提供输出,显示器诸如计算机监视器、平板显示器、数字投影机、打印机、绘图仪或其他类型的输出设备。将认识到的是,计算机800可以不包括图8所示的所有部件,可以包括图8中未显性示出的其他部件或可以利用与图8中所示完全不同的架构。
基于前文,应该认识到,本文呈示了用于在VM实例内执行命令的技术。而且,虽然本发明的主题是以针对计算机结构特征、方法动作和计算机可读介质的语言来描述的,但是应理解所附权利要求中定义的发明不一定限于本文描述的具体特征、动作或介质。相反,具体特征、动作和介质是作为实现权利要求的示例形式来公开的。
上文描述的主题仅通过说明形式来提供而不应视为限制。而且,该要求的主题不限于解决本发明公开任何部分中提到的任何一个或全部缺点的实现。可以在不遵循所图示和描述的示例配置和应用的情况下对本文描述的主题进行各种修改和更改,且不背离所附权利要求阐述的本发明的真实精神和范围。
Claims (15)
1.一种系统,其包括:
一个或多个计算机系统,所述一个或多个计算机系统中的每个计算机系统包括耦合到一个或多个存储器的一个或多个处理器,所述一个或多个存储器上存储有计算机可执行指令,所述计算机可执行指令被所述一个或多个处理器执行时,促使所述系统:
暴露公共web服务应用编程接口(API),所述API包括配置成在虚拟机(VM)实例内执行命令的可执行代码;
接收对在所述VM实例内执行所述命令的调用;以及
促使向所述VM实例中执行的软件部件传送要执行所述命令的请求,所述软件部件配置成响应于接收到所述请求在所述VM实例中执行所述命令。
2.如权利要求1所述的系统,其中所述一个或多个存储器上还存储有计算机可执行指令,以记录所述VM实例中所述命令的所述执行。
3.如权利要求1所述的系统,其中所述公共web服务API还包括配置成请求标识能在所述VM实例内执行的命令的数据的可执行代码。
4.如权利要求2所述的系统,其中所述一个或多个存储器上还存储有计算机可执行指令以:
接收调用,所述调用请求标识能在所述VM实例内执行的所述命令的数据;以及
促使向所述VM实例中执行的所述软件部件传送请求以获取标识能在所述VM实例内执行的所述命令的所述数据。
5.如权利要求3所述的系统,其中所述一个或多个存储器上还存储有计算机可执行指令以:
促使向所述VM实例中执行的所述软件部件传送请求以获取标识能在所述VM实例内执行的所述命令的所述数据;
接收标识能在所述VM实例内执行的所述命令的所述数据;
将标识能在所述VM实例内执行的所述命令的所述数据存储在高速缓存中;以及
响应于请求标识能在所述VM实例内执行的命令的数据的调用,利用存储在所述高速缓存中的标识能在所述VM实例内执行的所述命令的所述数据。
6.如权利要求3所述的系统,其中所述一个或多个存储器上还存储有计算机可执行指令,以利用标识能在所述VM实例内执行的所述命令的所述数据来生成用户接口(UI),所述用户接口(UI)配置成显示用于在所述VM实例内执行所述命令的UI控件。
7.如权利要求1所述的系统,其中所述公共web服务API还包括配置成获取在所述VM实例内所述命令的所述执行的状态的可执行代码。
8.如权利要求7所述的系统,其中所述一个或多个存储器上还存储有计算机可执行指令以:
接收获取所述VM实例内所述命令的所述执行的状态的调用;以及
促使向所述VM实例中执行的所述软件部件传送请求以获取所述VM实例内所述命令的所述执行的所述状态。
9.如权利要求8所述的系统,其中所述一个或多个存储器上还存储有计算机可执行指令,以在促使向所述VM实例中执行的所述软件部件传送要执行所述命令的所述请求之前,确定与所述调用关联的用户获授权执行所述命令。
10.如权利要求8所述的系统,其中所述命令包括以下中的一个或多个:用于在所述VM实例上重启进程的命令、用于清空高速缓存的命令、用于执行备份操作的命令、用于配置所述VM实例的命令或用于对所述VM实例执行测试的命令。
11.一种用于在虚拟机(VM)实例内执行命令的计算机实现的方法,其包括:
将应用编程接口(API)公开地暴露在服务提供商网络内,所述API包括用于在所述服务提供商网络内执行的虚拟机(VM)实例内执行命令的方法;
接收对在所述VM实例内执行所述命令的所述方法的调用;以及促使向所述VM实例中执行的软件部件传送要执行所述命令的请求,所述软件部件配置成响应于接收到所述请求在所述VM实例中执行所述命令。
12.如权利要求11所述的计算机实现的方法,其中所述API还包括用于请求标识能在所述VM实例内执行的命令的数据的方法。
13.如权利要求11所述的计算机实现的方法,其中所述API还包括用于获取在所述VM实例内所述命令的所述执行的状态的方法。
14.如权利要求11所述的计算机实现的方法,其还包括在促使向所述VM实例中执行的所述软件部件传送要执行所述命令的所述请求之前,确定与对用于执行所述命令的所述方法的所述调用关联的用户获授权执行所述命令。
15.如权利要求11所述的计算机实现的方法,其中所述命令包括以下中的一个或多个:用于在所述VM实例上重启进程的命令、用于清空高速缓存的命令、用于执行备份操作的命令、用于配置所述VM实例的命令或用于对所述VM实例执行测试的命令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/664,135 | 2015-03-20 | ||
US14/664,135 US9582298B2 (en) | 2015-03-20 | 2015-03-20 | Executing commands within virtual machine instances |
PCT/US2016/022686 WO2016153881A1 (en) | 2015-03-20 | 2016-03-16 | Executing commands within virtual machine instances |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107408064A true CN107408064A (zh) | 2017-11-28 |
CN107408064B CN107408064B (zh) | 2020-10-30 |
Family
ID=55702074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680014284.7A Active CN107408064B (zh) | 2015-03-20 | 2016-03-16 | 在虚拟机实例内执行命令的方法和用于实施该方法的系统 |
Country Status (8)
Country | Link |
---|---|
US (3) | US9582298B2 (zh) |
EP (1) | EP3271819B1 (zh) |
JP (1) | JP6564050B2 (zh) |
CN (1) | CN107408064B (zh) |
AU (1) | AU2016235759B2 (zh) |
CA (1) | CA2978183C (zh) |
SG (1) | SG11201706848VA (zh) |
WO (1) | WO2016153881A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158776A (zh) * | 2019-12-12 | 2020-05-15 | 杭州安恒信息技术股份有限公司 | 一种Web应用防护系统平滑重启方法 |
CN113826076A (zh) * | 2019-05-10 | 2021-12-21 | 康泰恩股份有限公司 | 可扩展且安全的容器 |
CN117271169A (zh) * | 2023-11-03 | 2023-12-22 | 广东保伦电子股份有限公司 | 一种面向容器调用宿主机命令的通讯方法 |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US7991910B2 (en) | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8433771B1 (en) | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US9582298B2 (en) | 2015-03-20 | 2017-02-28 | Amazon Technologies, Inc. | Executing commands within virtual machine instances |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) * | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US10469513B2 (en) | 2016-10-05 | 2019-11-05 | Amazon Technologies, Inc. | Encrypted network addresses |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
CN107291809B (zh) * | 2017-05-17 | 2019-09-03 | 四川新网银行股份有限公司 | 一种开放平台的文档管理方法及装置 |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10742593B1 (en) | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
CN112236988B (zh) * | 2018-06-06 | 2022-05-31 | 华为云计算技术有限公司 | 云计算中用于控制多租户缓存服务的管理操作和共享内存空间的系统和方法 |
US10996973B2 (en) | 2018-11-13 | 2021-05-04 | International Business Machines Corporation | Executing commands in a virtual environment |
US10862852B1 (en) * | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
US11588801B1 (en) * | 2020-03-12 | 2023-02-21 | Amazon Technologies, Inc. | Application-centric validation for electronic resources |
US11681550B2 (en) * | 2020-09-28 | 2023-06-20 | Western Digital Technologies, Inc. | Command management using allocated command identifier pools |
KR102491362B1 (ko) * | 2021-02-01 | 2023-01-26 | 주식회사 드림에이스 | 차량 가상화 구조 기반의 디바이스 제어 방법 및 장치 |
IL305657A (en) * | 2021-03-04 | 2023-11-01 | Profisea Labs Ltd | A system and method for managing the life cycle of temporary resources |
US11422927B1 (en) | 2021-06-04 | 2022-08-23 | Bank Of America Corporation | Application resiliency via context aware scriptless auditing equilibrium |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101410803A (zh) * | 2006-01-24 | 2009-04-15 | 思杰系统有限公司 | 用于提供对计算环境的访问的方法和系统 |
CN102420846A (zh) * | 2010-10-15 | 2012-04-18 | 微软公司 | 企业用户对主存的虚拟机的远程访问 |
CN102855138A (zh) * | 2012-07-20 | 2013-01-02 | 腾讯科技(深圳)有限公司 | 一种api的拦截方法、装置及移动终端 |
CN103034453A (zh) * | 2011-09-30 | 2013-04-10 | 国际商业机器公司 | 管理虚拟机实例中预安装应用的持久数据的方法和装置 |
CN102047218B (zh) * | 2008-06-02 | 2013-09-11 | 微软公司 | 进程中的调度器实例 |
CN103984589A (zh) * | 2014-04-25 | 2014-08-13 | 北京大学 | 一种基于虚拟机实现计算机实验教学的上机环境建立方法 |
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 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0612347A (ja) * | 1992-06-25 | 1994-01-21 | Hitachi Ltd | 分散コンピュータシステム上での遠隔操作コマンド実行制御方式 |
JPH11312190A (ja) * | 1998-04-28 | 1999-11-09 | Hitachi Ltd | 商品情報表示方法 |
US6865679B1 (en) * | 1999-10-01 | 2005-03-08 | International Business Machines Corporation | Method, system, and program for accessing a system without using a provided login facility |
US7962545B2 (en) * | 2002-12-27 | 2011-06-14 | Intel Corporation | Dynamic service registry for virtual machines |
US7536370B2 (en) * | 2004-06-24 | 2009-05-19 | Sun Microsystems, Inc. | Inferential diagnosing engines for grid-based computing systems |
US7747755B2 (en) * | 2005-09-30 | 2010-06-29 | Sap Ag | Method and apparatus for session management in an enterprise java bean session bean |
US8225313B2 (en) * | 2005-10-19 | 2012-07-17 | Ca, Inc. | Object-based virtual infrastructure management |
US7934222B2 (en) * | 2006-06-06 | 2011-04-26 | International Business Machines Corporation | Adapting command line interface messaging in a virtual operating system environment |
US8612971B1 (en) * | 2006-10-17 | 2013-12-17 | Manageiq, Inc. | Automatic optimization for virtual systems |
US8949825B1 (en) * | 2006-10-17 | 2015-02-03 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
US8280431B2 (en) * | 2006-12-29 | 2012-10-02 | Intel Corporation | Apparatus for end-user transparent utilization of computational, storage, and network capacity of mobile devices, and associated methods |
JP2009217497A (ja) * | 2008-03-10 | 2009-09-24 | Oki Electric Ind Co Ltd | 汎用サーバおよびそのコマンドガード方法 |
JP4906805B2 (ja) * | 2008-07-17 | 2012-03-28 | 株式会社日立ソリューションズ | プログラムの遠隔テスト実行システム |
JP2010122855A (ja) * | 2008-11-19 | 2010-06-03 | Oki Networks Co Ltd | オペレーション装置及びオペレーション方法 |
US9569240B2 (en) * | 2009-07-21 | 2017-02-14 | Adobe Systems Incorporated | Method and system to provision and manage a computing application hosted by a virtual instance of a machine |
US20110126193A1 (en) * | 2009-11-20 | 2011-05-26 | Dell Products, Lp | System and Method for Imaging and Provisioning of Information Handling System |
US8793323B2 (en) * | 2010-11-16 | 2014-07-29 | Successfactors, Inc. | System and method for interoperability |
US20120174096A1 (en) | 2010-12-30 | 2012-07-05 | Matthew Conover | Systems and methods to load applications and application data into a virtual machine using hypervisor-attached volumes |
US9143467B2 (en) * | 2011-10-25 | 2015-09-22 | Mellanox Technologies Ltd. | Network interface controller with circular receive buffer |
US20130283263A1 (en) | 2012-04-19 | 2013-10-24 | Dincloud, Inc. | System and method for managing resources in a virtual machine environment |
SG11201505650QA (en) * | 2013-01-22 | 2015-08-28 | Amazon Tech Inc | Instance host configuration |
US9559896B2 (en) * | 2013-07-08 | 2017-01-31 | Cisco Technology, Inc. | Network-assisted configuration and programming of gateways in a network environment |
US10908937B2 (en) * | 2013-11-11 | 2021-02-02 | Amazon Technologies, Inc. | Automatic directory join for virtual machine instances |
US10747620B2 (en) * | 2013-11-15 | 2020-08-18 | Netapp, Inc. | Network storage management at scale using service level objectives |
US9519513B2 (en) * | 2013-12-03 | 2016-12-13 | Vmware, Inc. | Methods and apparatus to automatically configure monitoring of a virtual machine |
US9532103B2 (en) * | 2013-12-16 | 2016-12-27 | Vmware, Inc. | Multi-user support for set top boxes and game consoles |
US20150332351A1 (en) * | 2014-05-16 | 2015-11-19 | Centurylink Intellectual Property Llc | System and Method for Service Provider Cloud Services - Cloud Marketplace |
US20160216988A1 (en) * | 2015-01-28 | 2016-07-28 | Microsoft Technology Licensing, Llc | Exposing storage entity consistency capability status |
US9582298B2 (en) | 2015-03-20 | 2017-02-28 | Amazon Technologies, Inc. | Executing commands within virtual machine instances |
-
2015
- 2015-03-20 US US14/664,135 patent/US9582298B2/en active Active
-
2016
- 2016-03-16 SG SG11201706848VA patent/SG11201706848VA/en unknown
- 2016-03-16 WO PCT/US2016/022686 patent/WO2016153881A1/en active Application Filing
- 2016-03-16 EP EP16715657.9A patent/EP3271819B1/en active Active
- 2016-03-16 CN CN201680014284.7A patent/CN107408064B/zh active Active
- 2016-03-16 CA CA2978183A patent/CA2978183C/en active Active
- 2016-03-16 JP JP2017547402A patent/JP6564050B2/ja active Active
- 2016-03-16 AU AU2016235759A patent/AU2016235759B2/en active Active
-
2017
- 2017-02-27 US US15/443,697 patent/US10120703B2/en not_active Expired - Fee Related
-
2018
- 2018-11-01 US US16/178,149 patent/US10768955B1/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101410803A (zh) * | 2006-01-24 | 2009-04-15 | 思杰系统有限公司 | 用于提供对计算环境的访问的方法和系统 |
CN102047218B (zh) * | 2008-06-02 | 2013-09-11 | 微软公司 | 进程中的调度器实例 |
CN102420846A (zh) * | 2010-10-15 | 2012-04-18 | 微软公司 | 企业用户对主存的虚拟机的远程访问 |
CN103034453A (zh) * | 2011-09-30 | 2013-04-10 | 国际商业机器公司 | 管理虚拟机实例中预安装应用的持久数据的方法和装置 |
CN102855138A (zh) * | 2012-07-20 | 2013-01-02 | 腾讯科技(深圳)有限公司 | 一种api的拦截方法、装置及移动终端 |
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 |
CN103984589A (zh) * | 2014-04-25 | 2014-08-13 | 北京大学 | 一种基于虚拟机实现计算机实验教学的上机环境建立方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113826076A (zh) * | 2019-05-10 | 2021-12-21 | 康泰恩股份有限公司 | 可扩展且安全的容器 |
CN113826076B (zh) * | 2019-05-10 | 2024-04-02 | 康泰恩股份有限公司 | 可扩展且安全的容器 |
CN111158776A (zh) * | 2019-12-12 | 2020-05-15 | 杭州安恒信息技术股份有限公司 | 一种Web应用防护系统平滑重启方法 |
CN111158776B (zh) * | 2019-12-12 | 2023-12-26 | 杭州安恒信息技术股份有限公司 | 一种Web应用防护系统平滑重启方法 |
CN117271169A (zh) * | 2023-11-03 | 2023-12-22 | 广东保伦电子股份有限公司 | 一种面向容器调用宿主机命令的通讯方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3271819A1 (en) | 2018-01-24 |
CA2978183C (en) | 2021-01-26 |
EP3271819B1 (en) | 2019-09-04 |
JP2018517189A (ja) | 2018-06-28 |
JP6564050B2 (ja) | 2019-08-21 |
AU2016235759B2 (en) | 2018-11-01 |
AU2016235759A1 (en) | 2017-09-07 |
US10120703B2 (en) | 2018-11-06 |
US9582298B2 (en) | 2017-02-28 |
WO2016153881A1 (en) | 2016-09-29 |
SG11201706848VA (en) | 2017-10-30 |
CN107408064B (zh) | 2020-10-30 |
US20170192813A1 (en) | 2017-07-06 |
CA2978183A1 (en) | 2016-09-29 |
US20160274929A1 (en) | 2016-09-22 |
US10768955B1 (en) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107408064A (zh) | 在虚拟机实例内执行命令 | |
CN105493099B (zh) | 用于托管虚拟机的加密证实资源 | |
US9720709B1 (en) | Software container recommendation service | |
CN106233690B (zh) | 在网络环境中供应数字证书 | |
JP6279705B2 (ja) | 自動化されたデスクトップ配置 | |
US10095549B1 (en) | Ownership transfer account service in a virtual computing environment | |
CN103890715B (zh) | 路由器和虚拟受信任运行时bios | |
CN109478149A (zh) | 混合云计算系统中的访问服务 | |
US10944560B2 (en) | Privacy-preserving identity asset exchange | |
US9866547B2 (en) | Controlling a discovery component, within a virtual environment, that sends authenticated data to a discovery engine outside the virtual environment | |
CN108351944A (zh) | 链式安全系统 | |
JP2018517189A5 (zh) | ||
US11495347B2 (en) | Blockchain framework for enforcing regulatory compliance in healthcare cloud solutions | |
JP2016521385A (ja) | 仮想デスクトップのアプリケーション市場 | |
CN106576114A (zh) | 基于策略的资源管理和分配系统 | |
JP2016517076A (ja) | 自動化されたデスクトップ配置 | |
CN109479062A (zh) | 混合云计算系统中的使用跟踪 | |
CN103959317A (zh) | 用于托管服务映像的可定制统一控制 | |
US10104163B1 (en) | Secure transfer of virtualized resources between entities | |
CN110036623A (zh) | 按需生成联络中心 | |
US20240195697A1 (en) | Data Center Monitoring and Management Operation Including Data Center Asset Parts Tracking Operation | |
Roberts | Public cloud service definition | |
US20230367766A1 (en) | Environmental impact tracking in public trust ledger actions via a database system | |
US20240176660A1 (en) | A change management service | |
Patsch | Survey on Hyperledger Fabric and comparison of Blockchain as a Service Providers |
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 |