CN107111519A - 用于管理和调度容器的系统 - Google Patents
用于管理和调度容器的系统 Download PDFInfo
- Publication number
- CN107111519A CN107111519A CN201580061134.7A CN201580061134A CN107111519A CN 107111519 A CN107111519 A CN 107111519A CN 201580061134 A CN201580061134 A CN 201580061134A CN 107111519 A CN107111519 A CN 107111519A
- Authority
- CN
- China
- Prior art keywords
- container
- cluster
- described group
- task
- instance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 141
- 238000013468 resource allocation Methods 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims description 123
- 238000005259 measurement Methods 0.000 claims description 70
- 230000004044 response Effects 0.000 claims description 36
- 230000015654 memory Effects 0.000 claims description 31
- 238000009826 distribution Methods 0.000 claims description 20
- 230000002776 aggregation Effects 0.000 claims description 9
- 238000004220 aggregation Methods 0.000 claims description 9
- 238000009434 installation Methods 0.000 claims description 2
- 238000003860 storage Methods 0.000 description 72
- 238000013500 data storage Methods 0.000 description 51
- 238000004891 communication Methods 0.000 description 39
- 230000009977 dual effect Effects 0.000 description 27
- 239000003795 chemical substances by application Substances 0.000 description 21
- 238000012795 verification Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 17
- 238000012544 monitoring process Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 230000008859 change Effects 0.000 description 11
- 238000002955 isolation Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 238000013475 authorization Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000003862 health status Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- AYCPARAPKDAOEN-LJQANCHMSA-N N-[(1S)-2-(dimethylamino)-1-phenylethyl]-6,6-dimethyl-3-[(2-methyl-4-thieno[3,2-d]pyrimidinyl)amino]-1,4-dihydropyrrolo[3,4-c]pyrazole-5-carboxamide Chemical compound C1([C@H](NC(=O)N2C(C=3NN=C(NC=4C=5SC=CC=5N=C(C)N=4)C=3C2)(C)C)CN(C)C)=CC=CC=C1 AYCPARAPKDAOEN-LJQANCHMSA-N 0.000 description 1
- VCUFZILGIRCDQQ-KRWDZBQOSA-N N-[[(5S)-2-oxo-3-(2-oxo-3H-1,3-benzoxazol-6-yl)-1,3-oxazolidin-5-yl]methyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C1O[C@H](CN1C1=CC2=C(NC(O2)=O)C=C1)CNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F VCUFZILGIRCDQQ-KRWDZBQOSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000014860 sensory perception of taste Effects 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
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/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
- 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/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/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/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/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/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)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于容器服务的系统和方法,所述容器服务获得软件容器的软件图像,所述软件容器已被配置来在由一个或多个处理器注册到集群的计算机系统实例内执行。所述容器服务被配置来接收根据任务定义启动所述软件图像的请求,其中所述任务定义指定所述软件容器的资源分配。所述容器服务可随后根据布局方案来确定根据所述任务定义启动所述软件图像的注册到所述集群的一组容器实例的子集。在确定所述组容器实例的所述子集之后,所述容器服务可根据所述任务定义来将所述软件图像启动为所述组容器实例中的一个或多个运行的软件容器。
Description
相关申请的交叉引用
本申请要求2014年11月11日提交的题为“用于管理和调度容器的系统(SYSTEMFOR MANAGING AND SCHEDULING CONTAINERS)”的共同未决的美国专利申请号14/538,663的优先权,所述申请的全部内容以引用的方式并入本文。
背景技术
寻求降低与维护自己的计算资源相关的费用和开支的企业和个人已转向购买远程计算服务,诸如通过由计算资源服务提供商向客户提供的多个虚拟机实例和远程数据存储库上的远程程序执行。这种远程计算服务通常是可配置和可缩放的,以满足计算资源服务提供商的客户的各种计算需求。然而,客户可能难以管理在多个虚拟机实例上运行的各种应用,并且这类应用可能不可移植到其他计算系统或者可能不可缩放来满足对资源的更多需求。
附图说明
将参考附图描述根据本公开的各种实施方案,在附图中:
图1示出根据实施方案的客户与容器服务交互的示例;
图2示出根据实施方案的容器服务的示例;
图3示出根据实施方案的容器服务的虚拟化的示例;
图4示出根据实施方案的容器实例的示例;
图5示出根据实施方案的容器实例内的资源分配的示例;
图6是根据实施方案的示出用于在集群上启动任务的示例性工作流程的框图;
图7是根据实施方案的示出创建集群的示例的框图;
图8是根据实施方案的示出注册容器实例的示例的框图;
图9是根据实施方案的示出注册任务的示例的框图;
图10是根据实施方案的示出开始任务的示例的框图;
图11是根据实施方案的示出停止任务的示例的框图;
图12是根据实施方案的示出注销任务的示例的框图;
图13是根据实施方案的示出注销容器的示例的框图;
图14是根据实施方案的示出删除集群的示例的框图;
图15示出根据实施方案的用于管理和调度容器的系统的示例性服务设计;并且
图16示出可实现各种实施方案的环境。
具体实施方式
在以下描述中,将描述各种实施方案。出于解释的目的,将阐述具体的配置和细节,以便提供各实施方案的透彻理解。然而,对于本领域技术人员还将明显的是,在没有具体细节的情况下也可实行各实施方案。此外,为了不使所描述的实施方案模糊,可能会省略或简化众所周知的特征。
描述和提出的技术包括用于创建用于为计算资源服务提供商的客户运行软件容器的软件容器实例的集群的系统和方法。软件容器实例可以是被配置来支持容器化的虚拟机实例,并且软件容器实例可根据需要从集群注册或注销,以适应客户需求。每个软件容器实例可包含容器代理,所述容器代理是被配置来当由计算机系统的一个或多个处理器执行时使用软件容器和软件容器实例来执行各种任务的应用,所述任务包括注册容器实例、注销容器实例、开始任务、停止任务、提供任务状态、发出任务心跳信号以及报告任务事件。软件容器可包括数据和一个或多个进程,其当在被配置来支持容器化的计算机系统实例中执行时,可与在同一计算机系统实例内运行的其他进程隔离。
软件容器可被配置来根据任务定义作为任务运行,并且任务定义可被存储为任务定义文件。任务定义文件可描述被分配成以组开始的一个或多个软件容器。可将软件容器的软件图像提供给计算资源服务提供商或其在任务定义中指定的位置,所述软件容器的软件图像可表示在生成软件图像时软件容器的特定状态的整个副本,所述软件容器已被配置来在软件容器实例内执行。任务定义还可指定资源需求、容器之间的关系、使用的网络端口以及共享资源。
在接收到开始任务定义的任务的请求时,调度器可根据布局方案来确定集群内的哪些软件容器实例来运行任务。在一些情况下,计算资源服务提供商可提供用于确定运行软件容器的位置的多租户调度器,并且在一些情况下,计算资源服务提供商可允许客户提供并配置他们自己的调度器以定制调度器如何操作。在一些情况下,调度器可被配置来使用随机选择方案以便随机地(根据某一随机分配方案)或者以循环方式来选择容器实例,以便托管给定的软件容器,同时考虑到在任务定义中指定的资源需求。容器代理可被配置来在它们各自的软件容器实例内开始任务。在一些实施方案中,遥测代理可被配置来收集数据,诸如关于运行的软件容器的控制组度量和日志事件信息,并将此数据报告给遥测服务。遥测服务可允许客户监测其容器实例内的软件容器的状态,并且客户可通过遥测服务指定用于响应于各种容器事件而执行的动作以及用于基于所收集的数据来提高警报的准则。
所描述和提出的技术通过提供一组用于管理软件容器的多租户容器化服务来改进计算领域,并且特别是虚拟化和容器化领域。此外,所描述和提出的技术通过允许计算系统的资源被有效地分配并隔离软件应用以使得它们不与彼此之间的资源竞争来改善计算机系统的功能。此外,所描述和提出的技术通过提高可移植性、提供多租户服务以及随需求增加或减少自动调整资源来提供一般虚拟化系统的有意义的优势。
图1示出可实行实施方案的环境100的一个方面。如图1所示,环境100可包括客户102,所述客户102将针对软件容器118的任务定义文件104连同启动任务的请求通过网络106发送到计算资源服务提供商110的容器服务108。诸如图2的调度器208的调度器可确定在任务定义文件104中指定的软件容器118应被启动的容器实例的集群116中的哪个容器实例114。在一些实施方案中,软件容器可被配置来共享由计算资源服务提供商110的其他服务122提供的资源120,诸如由计算资源服务提供商110的块级数据存储服务提供的存储卷。
客户102可以是与容器服务的客户帐户相关联的个体,或者可以是被授权代表与客户账户相关联的个体行事的个体、系统、资源计算装置或其他实体。此外,客户102的资源可由其他用户获得。例如,客户102可利用容器实例114为其他用户提供在线市场,并且随后这些其他用户可通过由客户102通过容器服务提供的在线市场来购买和/或出售商品和服务。客户102可通过网络106与计算资源服务提供商110的容器服务108通信,所述网络106可以是通信网络,诸如互联网、内联网、互联网服务提供商(ISP)网络和/或如下所述的某一其他这类网络。
在一些示例中,“任务定义”或“任务定义文件”可指指定被分配成以组开始的一组链接的容器(即,当在主机计算系统上运行时彼此相关联的一组容器)的文件。任务定义文件104还可指定容器118能够在单个物理机器上共享的磁盘和网络位置。随后,任务定义文件104可用于启动此组容器118。在一些实现中,任务定义文件104可定义并链接跨多个物理机器遍布的容器118。一个任务定义文件104可包含并调度许多任务。在一些示例中,“任务”可指任务定义文件104的实例化,并且可由一个或多个容器118组成。可通过对任务应用新的任务定义来修改任务。
任务定义文件104可包含将容器118布局在集群116中所需的所有信息,并且可通过应用编程接口调用来管理集群116。
任务定义的示例可以是:
示例性任务定义指定名为“db,”的第一任务具有位于路径“forest/postgresql”处的软件图像。分配第一任务从而处理1,000的共享和1吉字节存储器,并且第一任务使用端口5432。类似地,任务定义还指定名为“web”的第二任务具有位于路径“hub.web.com/rails:latest”处的软件图像。分配第二任务从而处理1,000的共享和1吉字节存储器,并且第二任务使用端口8000:8000。任务定义注意到第二任务(“web”)被允许链接到第一任务(“db”)。应注意,尽管此示例中使用的某些单位是作为固定数量给出的,诸如作为固定数量的中央处理单元共享给出的处理能力,但是预期其他单位和其他类型的值(例如,总处理能力的百分比、总存储器的百分比)可代替地使用以允许动态资源分配。
容器服务108可以是由计算资源服务提供商110提供的服务,以允许客户102执行集群116内的容器118。容器服务108可类似于结合图2描述的容器服务200。计算资源服务提供商110可以是类似于结合图15描述的计算资源服务提供商1502的计算资源服务提供商,并且可单独或作为分布式计算机系统的服务的组合来向其客户提供一个或多个计算资源服务。计算资源服务提供商110的一个或多个计算资源服务可通过网络106来访问,并且可包括诸如虚拟计算机系统服务、块级数据存储服务、密码服务、按需数据存储服务、通知服务、认证服务、策略管理服务、任务服务和/或其他此类服务的服务。并非所描述的所有实施方案都包括所描述的所有服务,并且除了明确描述的服务之外或作为其替代,可提供附加服务。
作为一个示例,计算资源服务提供商110可以是提供计算资源的实体,诸如数据存储服务、虚拟计算机系统服务和/或web服务。计算资源服务提供商110的客户可通过接口与一个或多个服务进行通信,所述接口可以是web服务接口或任何其他类型的客户接口。由计算资源服务提供商提供的每种服务可具有其自己的接口,并且除了公共接口之外或作为替代方案,所述服务的子集可具有对应的单独接口。
在一些示例中,“容器实例”可指被配置来启动和运行软件容器的计算机系统实例(虚拟的或非虚拟的,诸如运行操作系统的物理计算机系统)。因此,容器实例114可被配置来根据由客户102提供的任务定义文件104来运行容器118。一个或多个容器实例可包括集群。在一些示例中,“集群”可指已注册到集群(即,与集群相关联)的一个或多个容器实例的集合。因此,容器实例114可以是注册到集群116的许多不同的容器实例中的一个,并且集群116的其他容器实例可被配置来运行与容器118相同或不同类型的容器。集群内的容器实例可具有不同的实例类型或相同的实例类型,并且客户102可具有多于一个集群。因此,客户102可启动一个或多个集群,并且随后通过应用编程接口调用来管理每个集群内的容器118的用户和应用隔离。关于集群的更多细节可在图2的描述中发现。
容器(也称为软件容器或隔离的用户空间实例)可以是在包括程序、数据和系统库的计算机系统实例下运行的轻量级虚拟化实例。当运行容器时,正在运行的程序(即进程)与在同一计算机系统实例中运行的其他进程隔离。因此,容器118可每个在容器实例114的操作系统(例如,使用存储器、CPU和由操作系统分配的存储装置)操作系统上运行,并且彼此隔离地执行(例如,每个容器可已在操作系统的文件系统的隔离视图中)。每个容器118可具有其自己的命名空间,并且在容器118内运行的应用仅通过访问容器命名空间内可用的资源而被隔离。因此,容器118可以是在其自己的命名空间内运行一个或多个单一应用的有效方式。容器封装系统允许一个或多个容器在单一操作实例中运行,而不需要与开始并维护用于运行单独用户空间实例的虚拟机相关联的开销。示例性容器封装系统是Docker容器引擎。
可启动容器118以仅具有来自分配给容器实例114的资源的指定资源;也就是说,可启动容器以具有一定量的存储器并且不利用超过指定量的处理能力。可在任务定义文件104中指定用于容器118的资源分配。多个容器可在单个主机计算机或主机容器实例上同时运行,并且可在容器之间有效地分配主机资源。在一些实施方案中,主机可支持运行仅来自一名客户的容器实例中的容器。在其他实施方案中,单个主机可允许多名客户具有在主机上运行的容器实例。在后一种情况下,容器服务可提供安全性以确保客户无法访问其他的容器、集群或容器实例。
不同类型的任务可具有不同的资源需求,并且可具有不同的生命周期。因此,容器118可被动态地调度以通过容器服务110中的调度器服务独立于容器实例的底层操作系统来运行,并且因此容器实例114的底层操作系统可以是非常基本的。可替代地,容器118可被调度以通过安装在集群116的容器实例114内的调度器来运行。
其他服务122可以是诸如结合图15描述的计算资源服务提供商1502的服务1508-20和1524的服务。同样,其他资源120可包括可在诸如块级数据存储服务的存储卷的虚拟化实例之间共享的资源。
图2示出本公开的实施方案的示例性容器服务200。如图2所示,环境200可包括通过前端服务204来通信的计算资源服务提供商的客户202管理一个或多个容器实例218内的一个或多个容器。如上所述,由容器服务200提供或与容器服务200交接的容器封装系统可允许客户配置支持容器的操作系统的容器内的一个或多个应用。容器内运行的进程和资源可与父容器实例的其他进程隔离并且与同一主机系统的其他容器内运行的进程和资源隔离。客户可指定分配给容器的存储器的量和处理能力。基础容器及其内的应用和数据可随后封装成图像,包括一个或多个程序、数据以及程序在容器实例的操作系统上运行所需的任何系统依赖性(例如库、文件等)。在一些示例中,“图像”可指在生成图像时基础容器的特定状态的整个副本。此后的图像可用于启动一个或多个相同的容器,每个容器可被分配指定的资源量并且可彼此隔离。容器可在相同或不同的物理机器上启动,并且每个容器可预期以与基础容器完全相同的方式来运行。
每个容器实例218可被配置成包含一对代理(容器代理222和遥测代理224),其可允许容器被管理、可提供集群状态信息、并且可启用日志记录和遥测数据收集。容器服务200可包括一组服务,所述一组服务包括模板服务206、一个或多个调度器208、路由器服务210和遥测服务212。因为容器服务200可被配置成多租户服务(即,容器服务200的资源可同时服务于多名客户),并且因为由容器服务200提供的服务存在于容器实例218之外并且与容器实例218分离,所以客户202不需要在其各自的容器实例218内安装独立的软件应用来提供由服务给予的功能。客户202可通过前端服务204进行web服务应用编程接口功能调用来利用由这些服务提供的功能,所述前端服务204可被配置来从客户202接收请求并将请求转发到适当的服务,诸如适当的容器管理器后端服务214。
如上所述,客户可启动一个或多个集群,并且随后通过前端服务204管理每个集群内的用户和应用隔离。例如,客户可指定“实例1-10”应包括第一集群,并且“实例11-15”应包括第二集群。此后,当客户提交对容器的启动请求时,客户可指定应在第一集群还是在第二集群中启动容器。
每个集群可具有将所述集群彼此唯一区分开的集群标识符(ID)。可通过参考其各自的集群ID来指定集群。客户可针对不同类型的任务使用不同的集群。例如,客户可使用第一集群来启动服务,并且可使用第二集群来执行批量作业。第一集群中的实例可已针对运行服务器进行优化,并且第二服务器的实例可已针对提交短暂的暂时作业(如批量作业)进行优化。
对于集群可用的应用编程接口函数调用可包括CreateCluster、DescribeCluster、ListClusters和DeleteCluster。CreateCluster应用编程接口调用可引起创建集群。在某些情况下,在创建集群之后,前端服务204可向客户提供新创建集群的集群ID。集群ID可允许客户向集群注册容器实例;例如,客户可通过将集群ID作为参数传递给RegisterContainerInstance应用编程接口调用来引起容器实例被注册到集群。此外或可替代地,客户可将属于客户的一个或多个现有容器实例指定为CreateCluster应用编程接口调用的参数,以引起一个或多个现有容器实例被注册到集群,同时创建集群。类似地,在某些情况下,客户可在创建集群时在CreateCluster应用编程接口调用的参数中指定将要创建并注册到集群的容器实例的数量。图7中进一步示出CreateCluster应用编程接口函数调用。
一旦创建并运行集群,DescribeCluster应用编程接口调用就可由客户202或应用用来请求关于集群的信息。响应于DescribeCluster应用编程接口调用而返回的信息可包括集群中正在运行的应用的列表、集群可用的资源及其类型。随后可将从DescribeCluster应用编程接口调用返回的信息用作StartTask应用编程接口调用的参数,以启动所述集群内的任务。
调度器208可被配置来启动所描述的集群内的任务。可替代地,客户208可实现其自己的调度器而不是调度器208,并且使用由DescribeCluster应用编程接口调用检索到的信息结合客户调度器的布局逻辑来作出调度任务的布局决定。客户可设计和/或上传将要由他/她自己的调度器使用的布局算法,或者可从由计算资源服务提供商提供给客户的可能的布局算法的列表中进行选择。容器服务200可基于可用资源来确定是否接受或拒绝由客户调度器作出的布局决定。
调度器208可以是被配置来最佳地调度一组任务以与集群一起运行的多租户服务。以这种方式,客户202不需要选择应执行任务的位置。调度器208的布局方案可被配置来在集群上均匀地分配任务(例如,循环方式、随机分配方案等),并且可被配置来基于集群的当前或预计的资源消耗来分配任务,以便最有效地使用可用资源。调度器208可通过容器管理器后端服务214获得集群管理器元数据和关于集群中容器实例218的可用性的其他信息。集群管理器元数据和其他信息可包括关于分配给集群的容器实例218的当前状态的数据、容器实例内的可用资源、在容器实例内运行的容器以及由调度器208可用于做出布局决定的其他信息。DescribeCluster应用编程接口调用可引起集群管理器后端服务为指定集群提供集群元数据。
调度器208可至少部分地基于安全规则、安全组和/或安全角色来分配任务,具有亲和性和抗亲和性。例如,某个安全组中的任务可被配置来在可能或可行的情况下在同一个容器实例上启动,或者相反地可将其调度为在单独的容器实例中启动。作为另一示例,可将任务分配给某些安全组或指定为具有某些安全角色,并且基于所分配的特定安全组或所指定的安全角色,可分配任务以在特定集群或特定集群实例中运行,或者可对其他任务上的资源具有优先级。基于亲和性/抗亲和性的任务分配包括分配指示容器、容器实例和任务之间的关系的“标签”。作为至少部分基于亲和性的分配的示例,两个容器实例可被标记为“通用”,并且一个容器实例可被标记为“数据库”。在任务定义中,可使用“通用”启动约束来指定任务,从而提供任务将要被启动到标记为通用的容器实例中的一个(或多个)中的亲和性。作为抗亲和性任务分配的示例,某些容器实例可被标记为“安全信用卡处理”,并且某些其他容器实例可被标记为“http-网站”。因为http-网站容器可能正在服务来自不受信任的外部实体的流量,所以可能不希望与信用卡处理任务来共享这类容器。因此,任务定义被配置来指示“http-网站”对信用卡处理任务具有抗亲和性,以确保在“http-网站”标记的容器实例中不启动信用卡处理容器。在此示例中,调度器208可被配置来解析任务定义中的任何标签,并使用它来过滤不符合与标签相关联的准则的容器实例。接下来,调度器208可从过滤的集合中选择容器实例以托管容器。
在一些实施方案中,调度器208可直接与容器代理222通信以启动任务。在其他实施方案中,调度器208可与代理通信服务220通信,所述代理通信服务220随后将通信中继到容器代理222。在其他实施方案中,调度器208可向容器管理器后端服务214传达布局决定,所述容器管理器后端服务214可直接中继传达到容器代理222或代理通信服务220。如上所述,在一些实施方案中,客户202可以可替代地实现其自己的用于任务管理的调度器,而不是使用调度器208。
在某些情况下,容器可被配置来竞争资源,并且在冲突的情况下,与某些安全角色相关联的容器可对其他容器具有优先级。应注意,在所有情况下,布局方案可能会考虑容器实例中的可用资源和容器的资源需求。例如,如果特定任务的资源需求超过容器实例中的可用资源,那么可能不会为特定任务选择该容器实例。然而,在一些实现中,仍然可选择该容器实例,但是可延迟特定任务的启动,直到足够的资源在容器实例内可用于支持运行特定任务。
容器还可被配置来利用由计算资源服务提供商提供的其他资源。例如,每个容器可配置有虚拟网络接口,以允许容器通过虚拟网络与计算资源服务提供商的其他容器和/或其他资源进行通信。同样,可在每个容器的基础上分配安全凭证,以使得容器具有其自己的安全凭证来访问由计算资源服务提供商提供的其他资源。此外,容器服务可被配置成与在容器处引导的负载平衡工作负载的负载平衡服务集成。例如,客户可将与客户的容器和/或客户实例的虚拟网络相关联的互联网协议地址的列表呈现给负载平衡服务的负载平衡器,并指示负载平衡器来平衡互联网协议地址之间的工作负载。此外,容器服务可与自动缩放服务集成,以允许由容器利用的资源根据需要进行动态调整。
例如,客户可为单个集群实现多个调度器,并且所述多个调度器确定集群内的哪些实例用来启动容器。多个调度器可根据布局方案来相互竞争,诸如通过使用乐观并发控制方法来确定在何处启动容器。例如,一般来讲,使用乐观并发的每个调度器可假定容器不会彼此干扰,并且在一个容器已修改另一容器已读取的数据的情况下,读取容器可重新开始并重新读取修改的数据。
在一些情况下,调度器可被配置来最大化可用资源。例如,集群可主要用于运行长时间运行的服务,并且需要运行一个或多个短期批量作业。在这种示例中,被配置来最大化可用资源的调度器可寻找实例,所述实例正好具有足够的处理能力来支持批量作业,作为批量作业的最佳适合位置。可替代地,调度器可利用其最小的处理能力来寻找实例,并且利用此实例来调度批量作业。
在一些实现中,元调度器可被配置来在一个或多个调度器之上分层地运行,并且元调度器可决定启动批量作业的位置。例如,在一实现中,可存在两种类型的任务:短期批量作业任务和长期服务。两种类型的任务可具有不同的布局规则,诸如可能期望在一个或多个指定的集群中的可用容器实例之间均匀分配服务任务,而批量作业任务可被配置来在具有空间处理周期的任何可用容器实例中运行。在某些情况下,可将不同的调度器分配给每组布局规则。然而,在这种布局规则相互竞争或彼此冲突的情况下,或者在必须确定适当的调度器并将其分配给特定任务的情况下,元调度器可确定哪个竞争任务应占主导、同步调度器之间的信息或者确定用于布局任务的适当调度器。
可通过对前端服务204进行的应用编程接口调用来管理集群。例如,可进行应用编程接口调用,以请求可用集群的列表以及什么容器可在哪些集群上运行。ListClusters应用编程接口调用可列出客户访问的所有集群。DeleteCluster应用编程接口调用可删除指定集群,并且参考图14来进一步描述。
容器实例的可用的应用编程接口函数调用可包括RegisterContainerInstance、DescribeContainerInstance和DeregisterContainerInstance。容器实例的容器代理可使用RegisterContainerInstance应用编程接口调用,以便一旦容器实例被实例化就向集群管理器注册容器实例。在一些实现中,集群管理器由关于集群的元数据(例如,容器实例的分组)组成。在其他实现中,集群管理器可包括由客户安装或由计算资源服务提供商可用的配置管理软件。随后,调度器可在确定容器应启动到哪个容器实例中时参考向集群管理器注册的容器实例218。参考图8进一步描述RegisterContainerInstance。DescribeContainerInstance应用编程接口调用可返回关于容器实例的信息,包括容器实例可用的资源和容器实例内运行的任务。
因为容器可在集群中具有足够资源的任何可用容器实例中运行,所以可根据需要在集群内放大或缩小容器,只要有足够的容器实例可用。如果集群中的容器实例的数量不足,那么可通过集群管理器创建附加的容器实例并将其注册到集群。如果集群中存在过多的容器实例,那么某些容器实例可通过集群管理器从集群中注销。DeregisterContainerInstance应用编程接口调用可用于从指定的集群中注销使用RegisterContainerInstance应用编程接口调用而注册的容器实例。关于图13进一步描述DeregisterContainerInstance。
用于任务定义的可用的应用编程接口函数调用可包括RegisterTaskDefinition、DescribeTaskDefinition、ListTaskDefinitions和DeregisterTaskDefinition。RegisterTaskDefinition应用编程接口调用可用于注册用于启动任务的任务定义,并且结合图9进一步描述。DescribeTaskDefinition应用编程接口调用可用于返回关于任务定义的信息,包括任务定义文件的内容。ListTaskDefinitions应用编程接口调用可返回客户可用的任务定义的列表,或者可返回与特定集群ID或容器实例ID相关联的任务定义的列表。DeregisterTaskDefinition应用编程接口调用可注销使用RegisterTaskDefinition应用编程接口调用而注册的任务定义,并且进一步关于图12来描述。
用于任务的应用编程接口函数调用可包括StartTask、DescribeTask、ListTasks和StopTask。客户可将任务定义文件(或其各自的标识符)作为参数传递给StartTask应用编程接口调用,并且可进一步指定容器实例或集群以启动容器实例或集群内的一个或多个任务。例如,客户可响应于DescribeCluster应用编程接口调用已获得集群的一个或多个容器实例ID,并且可指定在一个或多个标识的容器实例上执行任务定义文件。如果客户直接运行任务,那么他们可调用StartTask应用编程接口并指定要启动的容器实例。可替代地,调度器208可使用StartTask应用编程接口来启动任务。此外,客户202可配置他们自己的调度器以使用StartTask应用编程接口来启动任务。
调度器208或客户安装的调度器也可被配置来开始任务定义文件内的任务,并确定将任务布局在集群内的位置。例如,调度器208可确定在集群的容器实例之间均匀地分配任务,在某种卡方分布中分配任务,或者可根据某一其他启发式或约束集合在集群的容器实例之间分配任务。传递给StartTask应用编程接口调用的参数可例如通过传递概述多个任务的任务定义文件来指定应开始多个任务。在一些实现中,客户202可指定集群或容器实例的列表而不是指定单个集群或容器实例,并且调度器208可确定在哪个容器实例中执行任务。参考图10更详细地描述StartTask应用编程接口调用。
DescribeTask应用编程接口调用可用于从容器代理222返回关于正在运行的任务的信息,包括关于分配的资源、年龄和运行状态的信息。ListTasks应用编程接口调用可用于返回运行的所有任务的列表,或者指定集群或容器实例中运行的所有任务的列表。StopTask应用编程接口调用可用于命令容器代理222停止使用StartTask应用编程接口调用开始的指定运行任务。进一步关于图11描述StopTask应用编程接口调用。
容器服务200可与计算资源服务提供商的认证系统(诸如图15的认证系统1518)进行交互,以认证对前端服务204进行的应用编程接口调用。在一些实施方案中,单独的安全组和安全角色可被配置并分配给单个主机上的不同容器。容器服务200还可被配置来启动虚拟私有云内的容器和容器实例218。
在一些实施方案中,容器可被配置成附接到计算资源服务提供商的其他服务,诸如块级数据存储服务和/或按需数据存储服务。在某些情况下,容器可被配置来与其他容器共享附接服务。作为示例,客户的容器实例可被映射到计算资源服务提供商的块级存储服务的块级存储卷,并且实例内的容器可每个被配置成能够从块级存储卷读出和/或写入块级存储卷中。在一些示例中,块级存储卷可在多个容器实例之间共享,诸如集群内的所有容器实例或多个集群,以使得一个或多个集群内的容器实例可都能够与它们的运行的容器共享块级存储卷。作为另一个示例,容器实例可映射到20个不同的块级存储卷,但仅为容器指定两个块级存储卷。
模板服务206可被配置来允许客户202为其容器定义任务定义。在一些示例中,“任务定义”可指可定义一组容器的脚本或元数据集合;例如,容器的数量、它们的类型、它们的部件、它们与其他容器的关系、描述相关联实例的信息以及其他元数据。任务定义还可指定将要协调启动的容器组。模板服务206可从客户202接收任务定义,将任务定义存储在数据库216中,并允许客户202创建、查看、更新、删除和以其他方式管理其任务定义。
模板服务206可授予客户202定义任务定义的能力。模板服务206可允许客户具有通过上传任务定义文件来提供任务定义的能力,或者可通过允许客户从各种选项中进行选择和/或改变默认设置来动态地创建任务定义文件来提供任务定义。模板服务206可允许客户注册任务定义。模板服务206还可提供用于编辑当前注册的任务定义的编辑界面。模板服务206可至少部分通过向容器管理器后端服务214提供将要存储在数据库216中的任务定义来注册任务定义。
在一些示例中,“机群”可指一组计算机系统(虚拟或物理)运行的实例,诸如本公开的容器实例或者容器服务200的其他应用。机群可划分为子机群,并且每个子机群可由容器管理器后端服务和专用于此子机群的代理通信服务来支持。代理通信服务220可被配置来与在子机群内的容器实例上运行的容器代理222和遥测代理224进行通信。
容器管理器后端服务214可被配置来向后端上的子机群提供其他管理服务和资源,诸如在本公开中描述的集群管理软件或集群管理器元数据。容器管理器后端服务可被配置来从模板服务206接收任务定义,将任务定义存储在数据库216中,从容器实例218或代理通信服务220接收集群管理器元数据,并且在请求时将任务定义信息和集群管理器元数据提供给调度器208或客户安装的调度器。响应于DescribeCluster应用编程接口调用,容器管理器后端服务可被配置来提供关于指定集群的信息,诸如集群管理器元数据。
代理通信服务220和容器管理器后端214可在子机群内的单独的计算机系统上实现,子机群内的分开的虚拟机实例,可在子机群内共享同一计算机系统和/或虚拟机实例,或者可在与其各自的子机群分开的计算机系统上运行但与其各自的子机群通信。每个子机群可存在多个容器实例218。在某些情况下,每个子机群可代表单一集群。在其他情况下,集群可跨越多个子集群。在其他情况下,每个子机群可托管多于一个集群。路由器服务210可被配置来将来自前端服务204的请求路由到适当的子机群。在一些实施方案中,路由器服务210可将请求路由到单个子机群。在其他实施方案中,路由器服务可在多个子机群之间路由请求。
遥测服务212可被配置来聚集控制组度量(例如,关于在容器内运行的进程的信息)和容器日志,并将聚集的度量和日志提供给资源监测服务,以允许客户202监测资源利用,诸如其各自的容器实例的处理器、存储装置和网络使用。控制组度量包括信息,诸如由容器进程使用的存储器量、进程触发页面错误的次数、容器进程的中央处理单元使用、中央处理单元代表容器进程执行系统调用的持续时间、容器进程的读取和写入次数、以及为容器进程排队的输入/输出操作的数量。
容器管理器后端服务214可被配置来通过前端服务204接收来自客户202的用于其容器的布局请求,并且可确保所请求的资源可用于容器。容器管理器后端服务214可随后将所需的容器状态写入数据库216中。在一些实现中,容器管理器后端服务负责可存储在数据库216中的集群管理器元数据,并且在请求时提供给调度器208或客户安装的调度器。此外,容器管理器后端服务可定期从单独的容器代理222接收信息,诸如与生命周期事件和心跳相关的信息(例如,由容器代理222发送以指示正常操作的周期信号)。在一些情况下,可通过前端服务204将此信息传达到适当的部件或实体。在一些实现中,容器代理通过代理通信服务220传送此信息,所述代理通信服务220随后可将信息直接传达给容器管理器后端服务214,或者在其他实现中,将信息存储在数据库216中,随后容器管理器后端服务214可读取所述信息。
数据库216可以是位于容器服务200的分布式计算系统内的数据存储区,或者可以是诸如关系数据库服务的计算资源服务提供商的不同服务的数据存储区。在一些实施方案中,数据库216可以是共享事务日志的一组分布式数据库。代理通信服务220可被配置来跟踪集群中的所有代理的状态,并且可推送运行命令和状态转换至其各自的实例。在一些实施方案中,容器服务的其他部件与容器和容器实例218的通信通过代理通信服务220来执行。每个机群可具有至少一个代理通信服务,其在机群的容器代理222之间中继消息。
容器代理222可以是被配置来在由客户202拥有的实例中运行的软件应用,并且可充当在它们各自的容器实例218与其他服务和实体(诸如容器管理器后端服务214)之间的接口。例如,容器代理222可充当其各自的容器实例218的运行任务与其他实体和服务之间的中介,以使得到达或来自容器的所有通信都通过容器代理。以这种方式,容器代理可被配置来在容器与和容器服务200一起运行的特定容器封装系统之间解释并翻译命令。这可允许对特定容器封装系统进行改变,而不需要对任务或任务定义进行更新;即,可仅需要更新容器代理222来反映对特定封装系统的改变。
因此,每个容器实例218可具有在其内运行的各自的容器代理,其与各自的容器管理器后端服务进行通信。容器代理本身可以是被配置来监测其各自的容器实例的容器,并且可向可用于启动容器、跟踪容器和监测集群状态的系统提供信息。容器代理还可执行注册和注销其各自的容器实例、开始和停止其各自容器实例内的任务的功能。容器代理还可被配置来响应描述其各自的容器实例的请求、列出在其各自的容器实例中运行的任务的请求、以及描述在其各自的容器实例中运行的任务的请求。容器代理222可被配置来监测各自的容器实例218内的容器的健康状况(例如,报告容器实例正在操作的心跳信号、报告容器的寿命、以及报告容器状态和容器错误的发生),并且可进一步被配置来基于某些事件的发生来执行动作。例如,如果容器代理检测到容器遇到错误并停止操作,那么容器代理可自动生成新的容器来替换故障容器。在其他实施方案中,调度器208可响应于由容器代理222向其报告的事件来采取某些动作。在上述示例中,可以是调度器208引起产生新容器来替换故障容器。容器的客户所有者可指定调度器208和/或容器代理的条件、事件和动作。例如,客户可指定客户的容器是否停止操作,诸如由于错误或断电,调度器208或容器代理没有为无效容器生成替换容器。相反,客户可指定调度器208或容器代理(例如,通过改变状态指示符、提供电子邮件消息等)通知客户发生问题。
容器代理222和/或遥测代理224可被配置成当其各自的容器实例218被实例化时自动启动。如果由容器服务200实现新的容器封装系统,那么容器实例218和容器所需的唯一变化可针对被配置成与将要创建的新容器封装系统以及将要交换用于新的容器代理的容器代理222兼容的新容器代理。在这种情况下,客户202应能够使用与容器服务200相同的应用编程接口,并且新的容器代理应被配置来支持相同的应用编程接口,而客户202未意识到对新的封装系统的改变。
容器代理222可通过容器封装系统轮询以将信息传达到容器封装系统。容器代理222可注册或注销容器实例218,从容器管理器后端服务214接收指令,并且确保遥测代理224已开始并正在运行。容器代理222还可对容器实例218中的容器进行更新,并且通过事件流来监测在容器实例218中运行的容器的状态。
遥测代理224可被配置来收集遥测数据,诸如一组控制组度量和容器封装系统日志,并且向遥测服务212提供这种遥测数据。遥测服务212可被配置来聚集从遥测代理224接收的数据,以用于计算资源服务提供商的资源监测服务,其继而可被配置来基于聚集的数据触发警报或采取一些其他动作。例如,如果遥测代理224将指示容器的错误状态的日志传达到遥测服务212,那么遥测服务212可向资源监测服务提供错误状态,所述资源监测服务通过触发通知客户容器已经历错误的警报来作出反应。作为另一示例,如果由遥测服务212提供的度量中的一个(例如,通过容器进程的中央处理单元使用)超过阈值,那么资源监测服务可触发警报。注意,在一些实现中,遥测服务212可被配置来指定警报条件和阈值。触发警报的示例包括向容器的客户所有者提供文本消息、向容器的客户所有者发送电子邮件、和/或在显示容器状态的界面上显示视觉指示符(例如,红色图标、弹出窗口等)。
容器服务200还可允许将数据卷链接到容器。这种数据卷可以是容器内的指定目录,并且可与可绕过容器实例的默认文件系统的一个或多个其他容器共享。以这种方式,数据可被永久地存储并且在容器实例内的其他容器之间共享。可通过任务定义文件中的条目来配置数据卷。在一些实现中,可通过为与前端服务204进行通信的目的而配置的用户界面来实现容器的一个或多个数据卷的创建和选择。容器服务200可利用计算资源服务提供商的其他数据存储服务,诸如图2的按需数据存储服务1514或块级数据存储服务1510,以便提供用于数据卷的存储装置。在其他实现中,数据卷可利用数据卷的容器实例的本地存储装置。
容器服务200可与计算资源服务提供商的其他服务集成。例如,容器实例可被标记和/或分配给计算资源服务提供商的自动缩放服务的自动缩放组。以这种方式,自动缩放服务可监测容器实例的资源使用,并且可根据需要(诸如容器实例的资源需求突然增加)来动态地调整/分配资源。同样,容器服务200可与计算资源服务提供商的负载平衡器服务集成。例如,负载平衡器服务可将流量分配到容器或容器实例,以便平衡容器实例之间的工作负载。
作为示例,客户可使用分配给自动缩放组的容器实例218来操作网站。网站可通过互联网接收来自多名用户的请求,并且负载平衡器服务的负载平衡器可根据负载平衡分配方案将请求分配到容器实例218。负载平衡器服务可以是被配置来将请求分配到分配给负载平衡器的容器实例218以便优化资源利用和/或避免任何特定主机计算机的过载的计算机系统或虚拟计算机系统。例如,负载平衡器可包括连接到服务器机架或者否则包括在数据中心中的物理硬件。在另一示例中,负载平衡器可包括由主机计算机支持的一个或多个虚拟机。同时,由于传入的请求,自动缩放服务可检测容器实例218是否需要更多或更少的资源,并且可根据需要向容器实例218分配更多或更少的资源。
图3示出可实行实施方案的环境300的一个方面。具体地,图3描绘根据至少一个实施方案的类似于容器服务1522的容器服务,所述容器服务执行被配置成容器实例320的多个虚拟机。容器服务可向计算资源服务提供商304的客户302提供系统硬件340,从而提供容器服务以在容器310内执行计算服务。系统硬件340可包括一个或多个主机342,也称为主机计算机系统。每个主机342可以是被配置来执行用于执行数据计算、操作或存储任务的指令的任何装置或设备,诸如计算机或服务器。主机342可配备有任何所需的处理能力,包括一个或多个处理器,诸如中央处理单元、图形处理单元或数字信号处理器。主机342还可配备有符合任何握手、通信或数据传输协议的存储器(例如,静态和动态存储器)、总线以及输入和输出端口。系统硬件340还可包括诸如存储盘和磁带的存储装置以及网络设备。存储装置可以是由数据存储服务管理的网络存储装置,诸如结合图15描述的块级数据存储服务1510。
系统硬件340中的虚拟化层344使得系统硬件340能够用于提供一个或多个容器实例320可在其上操作的计算资源。虚拟化层344可以是用于为容器实例320提供虚拟计算平台的任何装置、软件或固件。在主机342上执行的虚拟化层344使得能够使用这组系统硬件340来提供支持容器实例320所需的计算资源。此外,物理主机342可在相同的系统硬件340上托管相同或不同类型的多个虚拟化层。每个容器实例320可包括各种虚拟计算机部件,诸如一个或多个虚拟处理器、虚拟存储器和虚拟存储装置。容器实例320可被提供给计算资源服务提供商304的客户,并且客户可在每个容器实例320上运行操作系统306和应用。虚拟化层344的示例包括管理程序。
请求可由诸如图2的前端服务204的由计算资源服务提供商304操作的请求接口来接收。请求接口314可将请求引导到适当的容器实例。每个容器实例320可包括一个或多个软件代理308。软件代理308可被配置来允许客户302管理它们各自的容器310和容器实例。软件代理308可进一步被配置来执行事件的记录并收集与容器310和容器实例320有关的遥测数据。这种软件代理308的示例是结合图2描述的容器代理222和遥测代理224。
操作系统306可以是适于在容器实例320内运行并且提供隔离技术的任何操作系统,所述技术使得容器化方案能够将诸如容器310的虚拟化实例与在操作系统306下运行的其他进程隔离。这种操作系统的示例包括支持Linux内核中的资源隔离特征的Linux操作系统的各种实现。如上所述,容器310可以是根据一个或多个任务定义从应用图像启动的操作系统306内的虚拟化实例,并且可从其各自的容器实例320分配资源。
图4示出可实行实施方案的环境400的一个方面。如图4所示,环境400可包括在容器实例418内启动的一组容器402,其由容器代理422监测并向遥测代理424提供度量和日志信息。容器代理422继而可通过代理通信服务(诸如代理通信服务420,类似于代理通信服务220)传送监测信息。容器代理422还可与遥测代理424通信,并且容器代理422可周期性地监测遥测代理424的健康状况,以确保遥测代理424正在运行。如果遥测代理424停止运行或以其他方式遇到错误,那么容器代理424可根据需要重新开始遥测代理424。在一些实施方案中,响应于应用编程接口调用,来自容器代理222的监测信息可被提供给前端服务204。遥测代理424可将度量和日志信息传达到遥测服务412,类似于遥测服务212。在一些实施方案中,遥测代理直接与遥测服务412通信,而在其他实施方案中,遥测代理424可通过前端服务404与遥测服务412通信。
类似于在本公开其他位置讨论的容器,容器402可运行与容器实例内的其他进程隔离的变化寿命(例如,短期批量作业、长期后台进程等)的虚拟化实例(也称为任务)。关于容器402的度量可由遥测代理424收集、聚集并提供给遥测服务412。容器代理422充当容器402与在容器402的命名空间之外的资源、服务和其他实体之间的中介。在一些实现中,容器402可被配置来共享外部资源,诸如块级数据存储卷。在这些实现中的一些中,通过容器402访问共享的外部资源并与其进行通信可通过容器代理422进行。在其他实现中,容器实例418或容器实例418的操作系统可支持允许容器402在不经过容器代理422的情况下访问共享资源或与其通信。
集群管理器406可以是配置有一组规则的元数据或集群管理软件,所述一组规则用于确定容器402应在哪个容器实例418内被启动。例如,当容器实例418被实例化时,其容器代理422可用指示容器实例418可用于为客户托管容器的信息来更新集群管理器406。此后,如果通过前端服务404从客户或者从调度器接收到启动容器的请求,那么调度器可参考集群管理器406来选择容器实例418并告知容器实例418的容器代理422来启动容器。集群管理器406还可被配置来指定响应于某些类型的容器事件应采取什么动作。例如,如果容器402中的一个发生故障和/或停止操作,那么容器代理422可参考集群管理器406来确定是否重新启动故障或无效的容器。
注意,在一些实施方案中,调度器可与代理通信服务420通信或者直接与容器代理422通信,以指示容器代理422启动任务。在其他实施方案中,调度器将此布局和启动指令传达到容器管理器后端414,所述容器管理器后端414随后根据来自调度器的布局顺序来启动容器,诸如通过将启动指令直接或通过代理通信服务传达到容器代理422。集群管理器406可以是多租户;例如,集群管理器406可配置有用于管理计算资源服务提供商的多名客户的集群的信息。
如上所述,容器管理器后端414可被配置来为支持特定子机群中的容器和容器实例的其他进程提供环境,诸如集群管理器406。容器代理422可被配置来向集群管理器406提供由容器代理422监测的关于容器402的生命周期和健康信息。在一些实现中,容器代理422收集度量和日志信息,并将此信息传递给遥测代理424或直接传递给遥测服务。同样,在一些实现中,容器代理422可通过代理通信服务420更新集群管理器406。在一些实施方案中,容器代理与外部部件之间的通信可以是从容器代理422到代理通信服务420和外部部件的单向通信。在其他实施方案中,容器代理422与代理通信服务420之间的通信是双向的。在其他实现中,容器代理422可直接更新集群管理器406而不经过代理通信服务420。注意,容器代理422可以是在创建容器实例时启动的软件容器,并且在其他情况下,容器代理422可以是与容器402通信的容器实例的操作系统下运行的进程。
如上所述,遥测代理424可被配置来收集关于在容器实例418内运行的容器402的度量和日志信息,并将收集的度量和日志信息传递到遥测服务412。在一些实现中,遥测代理424可以是当创建容器实例418时启动的其自身的独立容器。在其他实现中,遥测代理可以是在容器实例418的操作系统下运行并且被配置来直接通过容器402或通过容器代理422来接收度量和日志信息的进程。注意,并非本公开的所有实现都需要遥测代理424和/或遥测服务412。
图5示出容器实例502与容器实例内的容器504A至504B之间的资源分配的示例500。容器实例502可以是被配置来支持容器实例(容器化)的计算机系统实例(虚拟或非虚拟)。容器实例502被描绘成具有一定量的分配的处理资源量506和一定量的存储器资源508。容器504A至504C中的每一个可通过软件图像以及从容器实例502的资源池(诸如处理资源506和存储器资源508)分配的一定量的资源量而在容器实例502内启动。如图所示,容器506A已被分配容器实例502的处理资源506的35%和存储器资源508的15%以运行其进程510A。类似地,容器506B已被分配容器实例502的处理资源506的40%和存储器资源508的50%以运行其进程510B。同样,容器504C已被分配容器实例502的处理资源506的10%和存储器资源508的20%以运行其进程510C。总之,容器实例502的处理资源506的85%和存储器资源的85%已分配给容器504A至504C。
容器实例可包括容器代理512。如上所述,容器代理512可以是被配置来在容器504A至504C与容器实例502外部的实体之间交接的单独运行的容器。可在任务定义内指定将要分配给容器504A至504C的资源量。如在本说明书中所描述的,调度器可基于一组容器实例(容器实例502是其成员)内的布局方案和/或可用资源来确定在其中启动容器504A至504C的容器实例502。随后,调度器可通知容器实例502或容器代理512将由任务定义指定的资源量分配给容器504A至504C,并且容器代理512可按调度器的指示将资源分配给容器504A至504C。此外,一旦为容器504A至504C中的每一个分配资源,调度器就可通知容器实例502或容器代理512来启动容器504A至504C中的每一个作为在其自己的命名空间内运行的容器(即,任务)并独家使用其各自地分配的资源。在被通知之后,容器代理512可按调度器的指示启动容器实例502内的容器504A至504C。
图6是根据各种实施方案的示出用于将任务启动到集群中的进程600的示例的框图。进程600可由任何合适的系统执行,诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或者任何电子客户端装置,诸如结合图16描述的电子客户端装置1602。进程600包括一系列操作,其中获得用于容器的软件图像和任务定义、创建集群并将容器实例注册到集群、描述集群、根据任务定义在确定的容器实例内启动图像、并且更新集群的描述。
在602中,计算资源服务提供商从计算资源服务提供商的客户接收软件图像。如上所述,软件图像可指代表软件应用在其成像时的整个状态的数据,以使得在这一点上可通过恢复/启动软件图像来恢复软件应用。在某些情况下,602中的操作可以是获取可执行安装或应用文件而不是图像。注意,在某些情况下,接收软件图像包括诸如通过在任务定义文件中指定的资源位置使计算资源服务提供商可访问软件图像。在一些情况下,软件图像可存储在诸如计算资源服务提供商的图2的数据库216的数据存储区中。
在604中,计算资源服务提供商可接收描述在一个或多个实例内运行的任务/容器的任务定义。任务定义可以是任务定义文件的形式,或者可由计算资源服务提供商响应于客户通过用户界面选择的选项来生成。任务定义可指定信息,诸如任务/容器的描述、发现任务/容器的图像的位置、分配给任务/容器的资源量、共享资源、其他容器之间的关系、以及其他信息。如上所述,任务定义可存储在诸如计算资源服务提供商的图2的数据库216的数据存储区中。
在606中,可实例化容器实例。如上所述,容器实例可以是支持容器化的虚拟机实例。在某些情况下,实例化容器实例包括在容器实例内启动容器代理。容器代理可在容器实例的操作系统下运行,并且容器代理本身可以是容器。
在608中,可创建一个或多个集群。如上所述,集群可以是一个或多个容器实例的逻辑分组。集群可用于各种目的,包括通过功能分离任务、将不同类型的容器实例分组在一起、以及基于计算资源服务提供商基础设施内的物理主机机器的位置对容器实例进行分组。一旦创建集群,就可通过集群管理器将一个或多个容器实例注册为集群的成员。如上所述,在某些情况下,容器实例可以是多于一个集群的成员。注意,操作606至608可一起发生或以任何顺序发生。例如,可在容器实例之前创建集群,并且在容器实例被实例化时,容器实例内的容器代理可自动引起容器实例注册到集群。
在610中,计算资源服务提供商向可负责请求任务启动的客户或其他实体提供集群或集群ID。在某些情况下,此另一实体可以是调度器,诸如由容器服务提供的图2的调度器208或由客户安装的调度器。可在608中响应于创建集群的请求而提供集群ID。在其他时间,可将集群ID提供给进行ListClusters应用编程接口调用的请求实体。
在612中,可从负责请求任务启动的客户或其他实体(例如,调度器)接收DescribeCluster应用编程接口调用,从而(例如,通过将610的集群ID作为参数进行传递)指定集群来描述。响应于DescribeCluster应用编程接口调用,计算资源服务提供商在614中可提供关于集群的信息,包括集群内的容器实例的数量和ID、集群内可用的资源、集群中使用的资源、运行任务等。此信息可由客户或调度器用于确定特定任务应在何处(例如,哪个容器实例)被启动(例如,以实现某些性能目标,以平衡负载等)。
在616中,计算资源服务提供商接收根据在604中获得的任务定义中指定的信息来运行一个或多个任务的请求。在某些情况下,所述请求可指定在哪些容器实例中运行一个或多个任务。在其他情况下,请求可指定在哪个集群中运行一个或多个任务,并且诸如图2的调度器216的调度器可根据布局方案来确定任务应被启动到哪个容器实例中。布局方案可包括基于资源使用或其他准则的循环布局方案、随机分配的布局或启发式方法。
一旦确定任务的目标位置(例如,在确定在其中启动任务的容器实例的实例ID之后),在618中,与602的软件图像相对应的任务可根据604的任务定义而启动到一个或多个容器实例中。在某些情况下,任务的启动可通过在确定的容器实例中运行的容器代理执行。618与620之间的虚线表示虚线以下的操作可不是集群中任务的启动所不可或缺的,而是提供关于在602至618中启动的运行任务的信息。
在620中,类似于612中的请求,可接收描述集群的请求。在622中,计算资源服务提供商可查询运行任务的容器实例的一个或多个容器代理关于容器实例中的运行任务的状态信息。在624中,类似于614的操作,计算资源服务提供商可响应于620的请求来提供描述集群的信息。然而,与614不同,信息现在应反映出分配给启动到集群中的正在运行的任务618和/或分配给运行任务的资源的效果。注意,在602至620中执行的一个或多个操作可以各种顺序和组合来执行,包括并行执行。
图7是根据各种实施方案的示出用于创建集群的进程700的示例的框图。进程700可由任何合适的系统执行,诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或者任何电子客户端装置,诸如结合图16描述的电子客户端装置1602。进程700包括一系列操作,其中从请求者接收CreateCluster应用编程接口调用、认证请求者、随后如果认证那么将集群元数据存储在数据库中、并且生成集群ID并将其提供给请求者。
在702中,计算资源服务提供商接收来自客户或其他实体的应用编程接口调用以创建集群。创建集群可包括为集群生成集群ID、将集群ID连同关于集群的其他元数据一起存储在数据库中。在某些情况下,请求者可通过CreateCluster应用编程接口调用来指示在创建集群时将容器实例注册到集群。在这种情况下,可在集群创建期间与集群ID相关联地注册指定的容器实例(例如,作为应用编程接口调用中的参数传递的一个或多个容器实例ID)或可用的容器实例。在其他这种情况下,如果未指定现有容器实例,并且没有容器实例可用,那么可在创建集群期间将新的容器实例实例化并注册到集群。应注意,在一些实现中,计算资源服务提供商可为客户提供默认集群;在这种情况下,客户不需要利用CreateCluster应用编程接口,并且可仅将容器实例注册到默认集群,除非需要额外的集群或者如果删除默认集群。
在704中,计算资源服务提供商确定请求者是否具有足够的权限来履行请求。例如,请求者可已提供身份和所有权证明的凭证作为CreateCluster应用编程接口调用的参数。例如,请求者可提供足以证明有权使用凭证的信息作为对应于身份的所有权证明的凭证,诸如密码、密码的密码散列/摘要、由签名密钥产生的加密数字签名、或者计算资源服务提供商可验证的用于授权请求者的身份的其他密钥。计算资源服务提供商可向诸如图15的认证系统1518的认证服务提供该身份和证明,所述认证系统随后可验证请求者的身份和凭证证明。一旦验证请求者的身份,计算资源服务提供商或认证服务就可确定与此身份相关联的安全策略和/或角色是否授予足够的权限来允许履行此请求。
如果计算资源服务提供商无法确定身份(例如,在安全数据库中未发现),凭证证明不足以证明身份(例如错误的密码),或者否则请求者的身份可能无法确认,那么执行进程700的系统在进程700中可不会进一步前进。执行进程700的系统可针对认证失败利用至请求者的错误消息来响应和/或在安全日志中注册认证失败。否则,如果请求者被认证并被确定具有足够的权限来履行CreateCluster请求,那么执行进程700的系统可前进到706。
在706中,执行进程700的系统可将集群ID和集群元数据存储在数据存储区中,诸如结合图2描述的数据库216。如上所述,在一些情况下,集群可以是与一个或多个容器实例(例如,注册到集群的容器实例)相关联地存储的元数据。调度器可参考集群管理器来确定在集群中的哪个容器实例中启动容器。在一些示例中,“集群管理器”至少部分地指集群元数据。在其他示例中,集群管理器可以是管理集群元数据并与调度器通信的软件应用或服务。应注意,在一些实现中,将集群元数据存储在数据存储区中可能会导致生成集群ID。集群元数据可包括诸如集群中的容器实例的主机的地理区域、分配给或被允许分配给集群的容器实例的数量、以及创建集群的日期/时间的信息。
一旦存储,在708中,执行进程700的系统可通知请求者已成功创建集群。在某些情况下,此通知可包括关于集群的附加信息/元数据,包括注册到集群的任何容器实例的ID和可用资源(例如,存储器和/或处理能力)。此后,请求者如果被认证,那么可利用DescribeCluster应用编程接口调用,将集群ID作为参数传递,并且计算资源服务提供商可通过提供信息来响应,所述信息包括元数据信息、被注册到指定集群的容器实例的列表、集群容器实例内运行的任务列表、集群中的可用资源、集群中使用的资源、关于由遥测服务(例如图2的遥测服务212)收集的集群的容器实例的度量、与集群或集群容器实例相关联的任务定义、以及关于集群的其他状态信息。
图8是根据各种实施方案的示出用于注册容器实例的进程800的示例的框图。进程800可由任何合适的系统执行,诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或者任何电子客户端装置,诸如结合图16描述的电子客户端装置1602。进程800包括一系列操作,其中执行进程800的系统从请求者接收应用编程接口调用以注册容器实例。随后系统对请求者进行认证、注册容器实例、并通知请求者成功注册。
在802中,计算资源服务提供商接收用于注册容器实例的应用编程接口调用。在某些情况下,可从客户或容器服务外部的其他实体接收此请求。在这些情况中的一些下,通过前端服务接收请求,并将其传达给容器代理,所述容器代理注册容器实例。在其他情况下,此请求可从容器代理到前端服务。例如,当容器实例用容器代理实例化时,容器代理可自动地试图向指定的集群或默认集群来注册容器实例。注册容器实例可包括将已特别被配置来支持容器化的现有虚拟机实例与特定集群相关联,或者将具有支持容器化的现有虚拟机实例与特定集群相关联。此关联可存储在诸如图2的数据库216的数据库中,作为实例的ID与集群ID之间的关系。在这种情况下,请求者可在RegisterContainerInstance函数调用中提供实例ID(或其他标识属性)和集群ID作为参数。
在某些情况下,请求者可能不指定特定的现有容器实例,并且在这种情况下,计算资源服务提供商可从适合容器化的一组预先实例化的容器实例中选择容器。在其他情况下,如果合适的预先实例化容器实例不可用,那么计算资源服务提供商可实例化适用于容器实例的新的容器实例,并将新实例化的容器实例注册到指定的集群。在一些实现中,RegisterContainerInstance应用编程接口调用可用于将现有容器实例注册到与当前注册的集群不同的集群。在这种情况下,请求者可指定容器实例ID和集群ID作为应用编程接口调用的参数。
在804中,计算资源服务提供商确定请求者是否具有足够的权限来履行请求。例如,请求者可已提供身份和所有权证明的凭证作为RegisterContainerInstance应用编程接口调用的参数。例如,请求者可提供足以证明有权使用凭证的信息作为对应于身份的所有权证明的凭证,诸如密码、密码的密码散列/摘要、由签名密钥产生的加密数字签名、或者计算资源服务提供商可验证的用于授权请求者的身份的其他密钥。计算资源服务提供商可向诸如图15的认证系统1518的认证服务提供该身份和证明,所述认证系统随后可验证请求者的身份和凭证证明。一旦验证请求者的身份,计算资源服务提供商或认证服务就可确定与此身份相关联的安全策略和/或角色是否授予足够的权限来允许履行请求。
如果计算资源服务提供商无法确定身份(例如,在安全数据库中未发现),凭证证明不足以证明身份(例如错误的密码),或者否则请求者的身份可能无法确认,那么执行进程800的系统在进程800中可不会进一步前进。执行进程800的系统可针对认证失败利用至请求者的错误消息来响应和/或在安全日志中注册认证失败。否则,如果请求者被认证并被确定具有足够的权限来履行RegisterContainerInstance请求,那么执行进程800的系统可前进到806。
在806中,执行进程800的系统可尝试查找诸如数据库216的相关数据库中的容器实例ID(如果指定的话)。如果发现并确定容器实例ID已与不同的集群ID相关联,那么在某些情况下,执行进程800的系统可在806中将容器实例从其当前注册的集群中注销并注册指定的集群。在这些情况中的一些下,可在认证请求者之后自动执行此注销/重新注册。在其他情况下,执行进程800的系统可在系统执行注销/重新注册操作之前提示请求者进行确认以从其当前注册的集群中注销所述容器实例。在其他实现中,容器实例可同时被注册到多个集群,并且在这种实现中,已注册的容器实例可能不会被从其当前注册的集群中注销。
如果容器实例尚未注册到集群、已从集群注销,或者如果所述实现方式支持容器实例注册到多个集群,那么执行进程800的系统可将容器实例ID存储在与指定集群相关联的数据库中。执行进程800的系统随后可通知请求者已成功将容器实例注册到指定集群,并且在某些情况下,特别是创建新的容器实例的情况下,系统可将容器实例ID包括在响应中。在随后的DescribeContainerInstance应用编程接口调用中,计算资源服务提供商可向请求者(如果被认证)提供关于容器实例的信息,包括可用资源、在容器实例内运行的任务、以及容器实例被注册到哪个或哪些集群。
图9是根据各种实施方案的示出用于注册任务的进程900的示例的框图。进程900可由任何合适的系统执行,诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或者任何电子客户端装置,诸如结合图16描述的电子客户端装置1602。进程900包括一系列操作,其中执行进程900的系统从请求者接收应用编程接口调用以注册任务定义。随后,系统对请求者进行认证、注册任务定义、并且用任务定义ID来响应。在一些实现中,任务定义可用请求者的ID来注册。例如,如果请求者是计算资源服务提供商的客户,那么可与客户的帐户ID相关联地注册任务定义。在其他实现中,任务定义可诸如通过在线市场是公众可用的,并且可与在线市场、购买者或某一其他实体或服务相关联地注册。
在902中,计算资源服务提供商接收来自客户或其他实体的应用编程接口调用以注册任务。注册任务可包括将任务定义或任务定义文件存储在数据库中。在一些实现中,请求者不需要创建并上传单独的任务定义,而是可从由计算资源服务提供商提供的用户界面中选择各种选项,并且计算资源服务提供商可基于所选择的选项来动态生成任务定义。在某些情况下,计算资源服务提供商可提供文本输入界面,以允许客户通过界面来键入或剪切/粘贴任务定义。在某些情况下,注册任务的请求可能伴随着与任务定义中指定的软件图像相对应的一个或多个软件图像。在一些实现中,所述请求可指定一个或多个集群ID来与任务定义相关联。在其他实现中,所述请求可指定一个或多个容器实例ID来与任务定义相关联。在其他实现中,可独立于任何指定的集群或容器实例来注册任务定义。
在904中,计算资源服务提供商确定请求者是否具有足够的权限来履行请求。例如,请求者可已提供身份和所有权证明的凭证作为RegisterTaskDefinition应用编程接口调用的参数。例如,请求者可提供足以证明有权使用凭证的信息作为对应于身份的所有权证明的凭证,诸如密码、密码的密码散列/摘要、由签名密钥产生的加密数字签名、或者计算资源服务提供商可验证的用于授权请求者的身份的其他密钥。计算资源服务提供商可向诸如图15的认证系统1518的认证服务提供该身份和证明,所述认证系统随后可验证请求者的身份和凭证证明。一旦验证请求者的身份,计算资源服务提供商或认证服务就可确定与此身份相关联的安全策略和/或角色是否授予足够的权限来允许履行此请求。
如果计算资源服务提供商无法确定身份(例如,在安全数据库中未发现),凭证证明不足以证明身份(例如错误的密码),或者否则请求者的身份可能无法确认,那么执行进程900的系统在进程900中可不会进一步前进。执行进程900的系统可针对认证失败利用至请求者的错误消息来响应和/或在安全日志中注册认证失败。否则,如果请求者被认证并被确定具有足够的权限来履行RegisterTaskDefinition请求,那么执行进程900的系统可前进到906。
在906中,执行进程900的系统可将任务定义存储在数据存储区中,诸如结合图2描述的数据库216。在一些实现中,可与计算资源服务提供商的帐户的客户ID相关联地注册任务定义。在其他实现中,可将任务定义注册到从网站、计算资源服务提供商或计算资源服务提供商(例如,来自在线市场的任务定义的购买者)获得任务定义的用户的身份。在其他实现中,可将任务定义存储并链接到一个或多个集群ID和/或容器实例ID。一旦存储,任务定义唯一的任务定义ID就可通过计算资源服务提供商或者通过数据库来生成。还应注意,在一些实现中,任务定义ID可随RegisterTaskDefinition应用编程接口调用提供,以便更新已存储在数据库中的任务定义。也就是说,请求者可将更新的任务定义和现有任务定义ID作为RegisterTaskDefinition应用编程接口调用的参数来提交,并且计算资源服务提供商可定位与现有任务定义ID相对应的任务定义条目并且用更新的任务定义来更新对应于任务定义ID的任务定义。
因此,在908中,执行进程900的系统可将此任务定义ID提供给请求者,作为对成功注册任务定义的确认并且还作为用于请求者后期指定在数据库中存储的任务定义的一种方式。在某些情况下,一个或多个软件图像可伴随RegisterTaskDefinition应用编程接口调用,并且这些软件图像可存储在与任务定义相同或不同的数据存储区中。在某些情况下,这些软件图像可由任务定义ID参考,而在其他情况下,软件图像可接收可连同存储的任务定义的任务定义ID一起提供给请求者的软件图像ID。
图10是根据各种实施方案的示出用于开始任务的进程1000的示例的框图。进程1000可由任何合适的系统执行,诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或者任何电子客户端装置,诸如结合图16描述的电子客户端装置1602。进程1000包括一系列操作,其中接收开始任务的请求、认证请求者、并且如果认证那么就确定启动任务的适当位置并启动任务。
在1002中,计算资源服务提供商接收用于开始任务的应用编程接口调用。在某些情况下,此应用编程接口调用可通过前端服务从客户或容器服务外部的其他实体来接收。在其他情况下,此应用编程接口调用可响应于来自调度器的通信通过容器代理进行以便开始任务。StartTask应用编程接口可用于从例如软件容器的图像或者从一个或多个可执行应用文件开始运行软件容器。StartTask应用编程接口调用可包括用于存储在诸如数据库216的数据存储区中的任务定义的一个或多个任务定义ID的参数。在某些情况下,任务定义本身而不是任务定义ID可作为参数传递给StartTask应用编程接口调用。在其他情况下,指示一个或多个任务定义文件的位置(例如,统一资源定位符、网络资源定位符、文件路径等)的参数可作为参数传递给StartTask应用编程接口。在其他情况下,容器服务可被配置来在没有单独的程序定义的情况下开始任务;例如,StartTask应用编程接口可具有默认参数,并且用于开始任务的请求者所需或偏离默认值的任何信息都可作为参数传递给StartTask应用编程接口调用。
StartTask应用编程接口也可将代表基础容器图像的软件图像的一个或多个图像ID作为参数接受。在某些情况下,可传递指示图像文件的位置的参数,而不是图像文件。在其他情况下,任务定义可包含用于定位容器软件以作为任务开始运行的信息。请求者还可将一个或多个集群ID指定为StartTask应用编程接口调用的参数,以指示所述一个或多个任务应开始到哪些集群中。类似地,请求者可将一个或多个容器实例ID指定为StartTask应用编程接口调用的参数,以指示所述一个或多个任务应开始到哪些容器实例中。可通过ListClusters应用编程接口调用来获得集群的ID。注册的容器实例的ID可从DescribeCluster应用编程接口调用获得。
在1004中,计算资源服务提供商确定请求者是否具有足够的权限来履行请求。例如,请求者可已提供身份和所有权证明的凭证作为StartTask应用编程接口调用的参数。例如,请求者可提供足以证明有权使用凭证的信息作为对应于身份的所有权证明的凭证,诸如密码、密码的密码散列/摘要、由签名密钥产生的加密数字签名、或者计算资源服务提供商可验证的用于授权请求者的身份的其他密钥。计算资源服务提供商可向诸如图15的认证系统1518的认证服务提供该身份和证明,所述认证系统随后可验证请求者的身份和凭证证明。一旦验证请求者的身份,计算资源服务提供商或认证服务就可确定与此身份相关联的安全策略和/或角色是否授予足够的权限来允许履行此请求。
如果计算资源服务提供商无法确定身份(例如,在安全数据库中未发现),凭证证明不足以证明身份(例如错误的密码),或者否则请求者的身份可能无法确认,那么执行进程1000的系统在进程1000中可不会进一步前进。执行进程1000的系统可针对认证失败利用至请求者的错误消息来响应和/或在安全日志中注册认证失败。否则,如果请求者被认证并被确定具有足够的权限来履行StartTask请求,那么执行进程1000的系统可前进到1006。
在1006中,执行进程1000的系统可确定将任务开始到其中的容器实例。在一些实施方案中,容器服务的调度器(诸如图2的调度器208)可根据布局方案来确定一个或多个任务应当被开始到指定集群和/或容器实例的列表中的哪个容器实例。布局方案可以是各种布局方案中的任何一种,包括循环、伪随机随机布局方案或者将容器状态(例如,可用资源的当前数量等)考虑在内的布局方案。在一些实现中,帐户的客户可已在虚拟机实例内安装调度器应用。在这种实现中,StartTask应用编程接口调用可将指示所安装的调度器的位置的ID或资源定位符作为参数来接收,并且进程1000还可包括执行进程1000的系统与所安装的调度器通信以确定一个或多个任务应被开始到哪个容器实例中。在某些情况下,指定的任务可已开始。在这种情况下,执行进程1000的系统可停止正在运行的任务并重新开始此任务。在这些情况中的一些下,执行进程1000的系统可通知请求者此任务已开始,并且可请求确认是否停止正在运行的任务并重新开始此任务。
在某些情况下,执行进程1000的系统可确定在集群或容器实例的列表中可获得的资源不足以启动一个或多个任务。例如,任务定义文件可已指定将要分配给软件容器的(与在指定集群的容器实例中当前可用的存储器相比)更多存储器。在这些情况中的一些下,执行进程1000的系统可等待预定时间段(例如,10毫秒),并且再次尝试开始任务,重复直到系统能够开始任务或者直到已发生阈值数量的尝试。
如果执行进程1000的系统无法开始任务,那么系统可通知请求者由于遇到特定问题,任务无法开始。在一些实现中,如果没有足够的资源可用于开始任务,那么容器服务可与自动缩放服务交互以生成额外的资源来支持开始任务。例如,执行进程1000的系统可实例化一个或多个新的容器实例并将其注册到集群中,并且在新的容器实例中开始一个或多个任务。作为另一示例,执行进程1000的系统可获得容器实例的快照、使用升级的资源(例如,处理能力和存储器)重新开始容器实例、并且从快照恢复容器实例。
在1008中,执行进程1000的系统可将容器图像或指定的应用启动到确定的容器实例中。如上所述,将容器图像或指定的应用启动到容器实例中可包括为任务生成一个或多个任务ID、将任务ID与确定的容器实例ID相关联地存储在诸如图2的数据库216的数据存储区中、为容器指定单独的命名空间、为容器分配指定的资源、并且将指定的容器图像和/或指定的应用恢复到容器命名空间中。这可针对任务定义中定义的每个容器来执行。任务定义还可指示容器之间的链接;例如,被配置来用作web服务的容器可被链接到被配置来用作数据库的容器,并且这两个容器可被配置来在启动时彼此通信。同样,在一些实现中,容器可共享计算资源服务提供商的其他服务的指定资源。例如,任务定义文件可指定两个容器共享特定的块级数据存储卷。
一旦启动,执行此进程的系统就可通知请求者一个或多个任务已被成功启动。在某些情况下,这可以是改变监测界面的图标以指示任务已开始并且任务现在正在特定集群或实例内运行的问题。在其他情况下,这可以是记录事件的问题。在其他情况下,可通过从对应于正在运行的任务的系统接收有效的任务ID来通知请求者。可从ListTasks应用编程接口调用获取运行任务的列表。可通过使用DescribeTask应用编程接口并指定任务ID来获得关于任务的数据,诸如容器的健康、容器的年龄、以及容器的资源使用。
图11是根据各种实施方案的示出用于停止任务的进程1100的示例的框图。进程1100可由任何合适的系统执行,诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或者任何电子客户端装置,诸如结合图16描述的电子客户端装置1602。进程1100包括一系列操作,其中接收指定任务停止的停止任务请求、认证请求者、并且停止指定的任务从而释放分配给任务的资源。
在1102中,计算资源服务提供商接收用于停止正在运行的任务的应用编程接口调用。在某些情况下,应用编程接口调用可从客户或容器服务外部的其他实体接收到前端服务。在其他情况下,容器代理可响应于来自调度器的停止任务的通信来进行应用编程接口调用。StopTask可将运行任务的一个或多个任务ID作为参数来接收。在1104中,计算资源服务提供商确定请求者是否具有足够的权限来履行请求。例如,请求者可已提供身份和所有权证明的凭证作为StopTask应用编程接口调用的参数。例如,请求者可提供足以证明有权使用凭证的信息作为对应于身份的所有权证明的凭证,诸如密码、密码的密码散列/摘要、由签名密钥产生的加密数字签名、或者计算资源服务提供商可验证的用于授权请求者的身份的其他密钥。计算资源服务提供商可向诸如图15的认证系统1518的认证服务提供该身份和证明,所述认证系统随后可验证请求者的身份和凭证证明。一旦验证请求者的身份,计算资源服务提供商或认证服务就可确定与此身份相关联的安全策略和/或角色是否授予足够的权限来允许履行此请求。
如果计算资源服务提供商无法确定身份(例如,在安全数据库中未发现),凭证证明不足以证明身份(例如错误的密码),或者否则请求者的身份可能无法确认,那么执行进程1100的系统在进程1100中可不会进一步前进。执行进程1100的系统可针对认证失败利用至请求者的错误消息来响应和/或在安全日志中注册认证失败。否则,如果请求者被认证并被确定具有足够的权限来履行StopTask请求,那么执行进程1100的系统可前进到1106。
在1106中,可停止指定的一个或多个运行任务,并且先前分配给一个或多个任务的资源可被释放/垃圾收集并被添加到主机容器实例的可用资源。在某些情况下,任务ID可能会被禁用、存档或从数据存储区中移除。在其他情况下,任务的状态可更新为“已停止”,并且状态的这种改变可反映在用于查看运行的任务的状态的任何界面中。还可通知请求者与任务ID相关联的任务已被成功停止。
图12是根据各种实施方案的示出用于注销容器实例的进程1200的示例的框图。进程1200可由任何合适的系统执行,诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或者任何电子客户端装置,诸如结合图16描述的电子客户端装置1602。进程1200包括一系列操作,其中接收注销任务定义的请求,认证请求者、并且如果请求者具有足够的权限那么就可注销任务定义。
在1202中,计算资源服务提供商接收用于注销任务的应用编程接口调用。在某些情况下,可从客户或其他实体至容器服务接收此请求。注销任务可包括从已根据用于注册任务的进程900而注册的数据存储区中禁用、存档或移除任务。因此,在进程900中生成的任务定义ID可被随DeregisterTaskDefinition应用编程接口调用提供,以识别哪个任务将要被注销。
在1204中,计算资源服务提供商确定请求者是否具有足够的权限来履行请求。例如,请求者可已提供身份和所有权证明的凭证作为DeregisterTaskDefinition应用编程接口调用的参数。例如,请求者可提供足以证明有权使用凭证的信息作为对应于身份的所有权证明的凭证,诸如密码、密码的密码散列/摘要、由签名密钥产生的加密数字签名、或者计算资源服务提供商可验证的用于授权请求者的身份的其他密钥。计算资源服务提供商可向诸如图15的认证系统1518的认证服务提供该身份和证明,所述认证系统随后可验证请求者的身份和凭证证明。一旦验证请求者的身份,计算资源服务提供商或认证服务就可确定与此身份相关联的安全策略和/或角色是否授予足够的权限来允许履行此请求。
如果计算资源服务提供商无法确定身份(例如,在安全数据库中未发现),凭证证明不足以证明身份(例如错误的密码),或者否则请求者的身份可能无法确认,那么执行进程1200的系统在进程1200中可不会进一步前进。执行进程1200的系统可针对认证失败利用至请求者的错误消息来响应和/或在安全日志中注册认证失败。否则,如果请求者被认证并被确定具有足够的权限来履行DeregisterTaskDefinition请求,那么执行进程1200的系统可前进到1206。
在1206中,执行进程1200的系统可从在906中存储任务定义的数据存储区中禁用、存档或移除任务定义。指示任务定义与集群、容器实例、软件图像或其他容器之间的关系的任何数据条目也可被禁用、存档或移除。在某些情况下,如果与任务定义相关联的一个或多个任务正在运行,那么可根据用于停止任务的进程1100来停止任务。一旦任务被注销,就可通知请求者成功地注销任务。
图13是根据各种实施方案的示出用于注销容器实例的进程1300的示例的框图。进程1300可由任何合适的系统执行,诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或者任何电子客户端装置,诸如结合图16描述的电子客户端装置1602。进程1300包括一系列操作,其中接收从集群中注销注册的容器实例的请求、认证请求者并且将容器实例从集群中注销。
在1302中,计算资源服务提供商接收来自客户或其他实体的应用编程接口调用以注销容器实例。注销容器实例可包括从指定集群分离根据用于注册容器实例的进程800而注册的容器实例。可在诸如图2的数据库216的数据库中发现这种关联,如作为DeregisterContainerInstance应用编程接口调用的参数传递的注册的容器实例的ID与集群ID之间的关系。在这种情况下,可从前端服务接收此请求并与容器代理进行通信,所述容器代理注销其各自的容器实例。在其他情况下,此请求可从容器代理到前端服务。例如,当容器实例将要被撤销、从集群中移除并转移到不同的集群时,容器代理可自动尝试将容器实例从其当前注册到的集群中注销。在这些情况中的一些下,请求者可指定注册的容器的实例ID,如可通过DescribeCluster应用编程接口调用来揭示,并且执行进程1300的系统可将指定的容器实例从其注册到的所有集群中注销。在某些情况下,如果容器实例被注册到多个集群,那么执行进程1300的系统可提示请求者确认应从哪个或哪些集群注销容器实例。在其他情况下,实例ID和集群ID都可作为参数传递到DeregisterContainerInstance应用编程接口调用,并且假设请求者具有如1304中确定的足够权限,那么可从指定集群中注销容器实例。
在1304中,计算资源服务提供商确定请求者是否具有足够的权限来履行请求。例如,请求者可已提供身份和所有权证明的凭证作为DeregisterContainerInstance应用编程接口调用的参数。例如,请求者可提供足以证明有权使用凭证的信息作为对应于身份的所有权证明的凭证,诸如密码、密码的密码散列/摘要、由签名密钥产生的加密数字签名、或者计算资源服务提供商可验证的用于授权请求者的身份的其他密钥。计算资源服务提供商可向诸如图15的认证系统1518的认证服务提供该身份和证明,所述认证系统随后可验证请求者的身份和凭证证明。一旦验证请求者的身份,计算资源服务提供商或认证服务就可确定与此身份相关联的安全策略和/或角色是否授予足够的权限来允许履行此请求。
如果计算资源服务提供商无法确定身份(例如,在安全数据库中未发现),凭证证明不足以证明身份(例如错误的密码),或者否则请求者的身份可能无法确认,那么执行进程1300的系统在进程1300中可不会进一步前进。执行进程1300的系统可针对认证失败利用至请求者的错误消息来响应和/或在安全日志中注册认证失败。否则,如果请求者被认证并被确定具有足够的权限来履行RegisterContainerInstance请求,那么执行进程1300的系统可前进到1306。
在1306中,执行进程1300的系统可在注册容器实例的数据存储区中查找指定的实例ID。应注意,在指定的容器实例中运行的任务可在容器实例被注销之前根据用于停止任务的进程1100而停止。在某些情况下,如果任务在指定的容器实例中运行,那么执行进程1300的系统可在系统将注销容器实例之前请求来自请求者的停止运行的任务的确认。如上所述,在一些实现中,可将容器实例注册到多个集群,并且请求者可指定容器实例仅从集群的子集中注销。在这种实现中,如果与集群的指定子集相关联的任务在容器实例内运行并且由请求者确认为将要停止,那么只有与集群的指定子集相关联的任务才可被停止,并且可只剩下剩余的运行任务。
在1308中,在已在数据库中发现实例ID并且相关任务已停止之后,实例ID可能会被禁用、存档或从数据存储区中移除。在某些情况下,实例的状态可更新为“已注销”,并且状态的这种改变可反映在用于查看集群状态的任何界面中。如果容器实例被注册到多个集群,那么指定的容器实例可仅与集群的指定子集分离,并且容器实例可保留注册到剩余的集群。一旦注销,请求者还可被通知与此实例相关联的容器实例已成功在从其注销的一个或多个集群中注销。
在本公开的一些实现中,未注册到任何集群的容器实例可被撤销,并且分配给容器实例的任何资源可被释放。可替代地,可将容器实例添加到可用于注册到集群的实例的队列中。以这种方式,当根据用于注册容器实例的进程800需要容器实例来注册到集群时,可从可用容器实例中选择容器实例,而不需要提供用于注册的新的容器实例的开销。
图14是根据各种实施方案的示出用于删除集群的进程1400的示例的框图。进程1400可由任何合适的系统执行,诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或者任何电子客户端装置,诸如结合图16描述的电子客户端装置1602。进程1400包括一系列操作,其中接收删除集群的请求、认证请求者、注销集群中的任何容器实例、并且删除或者否则禁用集群。
在1402中,计算资源服务提供商接收来自客户或其他实体的应用编程接口调用以删除集群。将要删除的集群可以是由计算资源服务提供商提供的默认集群,或者可以是根据用于创建集群的进程700而创建的集群。DeleteCluster应用编程接口可将要删除的集群的集群ID作为参数来接收。因此,集群ID和集群元数据可存储在诸如图2的数据库216的数据存储区中。在创建集群时,此集群ID可已提供给请求者,或者可通过ListClusters应用编程接口调用来确定。
在1404中,计算资源服务提供商确定请求者是否具有足够的权限来履行请求。例如,请求者可已提供身份和所有权证明的凭证作为DeleteCluster应用编程接口调用的参数。例如,请求者可提供足以证明有权使用凭证的信息作为对应于身份的所有权证明的凭证,诸如密码、密码的密码散列/摘要、由签名密钥产生的加密数字签名、或者计算资源服务提供商可验证的用于授权请求者的身份的其他密钥。计算资源服务提供商可向诸如图15的认证系统1518的认证服务提供该身份和证明,所述认证系统随后可验证请求者的身份和凭证证明。一旦验证请求者的身份,计算资源服务提供商或认证服务就可确定与此身份相关联的安全策略和/或角色是否授予足够的权限来允许履行此请求。
如果计算资源服务提供商无法确定身份(例如,在安全数据库中未发现),凭证证明不足以证明身份(例如错误的密码),或者否则请求者的身份可能无法确认,那么执行进程1400的系统在进程1400中可不会进一步前进。执行进程1400的系统可针对认证失败利用至请求者的错误消息来响应和/或在安全日志中注册认证失败。否则,如果请求者被认证并被确定具有足够的权限来履行DeleteCluster请求,那么执行进程1400的系统可前进到1406。
在1406中,如果任何容器实例被注册到指定集群,那么根据用于注销容器实例的进程1300,可从集群中注销每个容器实例。在1408中,与指定集群ID相关联的集群的一个或多个条目可位于数据存储区中,并且被禁用、存档或从数据存储区中移除。如果集群被禁用或存档,那么可保留关于集群的元数据,并且集群可通过具有这么做的权限的实体来重新激活。随后可通知请求者集群已被成功删除,并且容器实例无法再被注册到集群ID。例如,可更新显示集群状态的界面,以反映出指定集群的“已删除”,并且集群可能不再被反映在ListClusters应用编程接口调用响应中。
图15示出根据至少一个实施方案的客户连接到计算资源服务提供商的示例。计算资源服务提供商1502可向客户1504提供各种服务,并且客户1504可通过接口1526与计算资源服务提供商1502通信,所述接口1526可以是web服务接口或任何其他类型的客户接口。虽然图15示出用于计算资源服务提供商1502的服务的一个接口1526,但是每个服务可具有其自己的接口,并且通常服务的子集可具有除了接口1526之外的或作为接口1526的替代的对应的接口。客户1504可以是可利用由计算资源服务提供商1502提供的一个或多个服务来为其员工(可位于各种地理位置处)维护并传递信息的组织。另外,客户1504可以是利用计算资源服务提供商1502的服务将内容递送到远程定位的工作组的个体。如图15所示,客户1504可通过网络1506与计算资源服务提供商1502通信,由此网络1506可以是诸如互联网、内联网或互联网服务提供商(ISP)网络的通信网络。从客户1504到计算资源服务提供商1502的一些通信可引起计算资源服务提供商1502根据所描述的一个或多个实施方案或其变型来进行操作。
计算资源服务提供商1502可向其客户提供各种计算资源服务。在此示例中,由计算资源服务提供商1502提供的服务包括虚拟计算机系统服务1508、块级数据存储服务1510、密码服务1512、按需数据存储服务1514、通知服务1516、认证系统1518、策略管理服务1520、容器服务1522、以及一种或多种其他服务1524。应注意,并非所描述的所有实施方案都包括参考图15描述的服务1508-24,并且除了明确描述的服务之外或作为其替代,可提供附加服务。如所描述的,服务1508-24中的每一个可包括使得客户1504能够通过web服务请求向各种服务提交适当配置的API调用的一个或多个web服务接口。此外,每种服务可包括一个或多个服务接口,所述一个或多个服务接口使服务能够相互访问(例如,使虚拟计算机系统服务1508的虚拟计算机系统能够将数据存储在按需数据存储服务1514中或从按需数据存储服务1514检索数据,和/或访问由块级数据存储服务1510提供的一个或多个块级数据存储装置)。
虚拟计算机系统服务1508可以是被配置来代表客户1504实例化虚拟机实例的计算资源的集合。客户1504可与虚拟计算机系统服务1508(通过适当配置和认证的API调用)交互,以提供和操作在由计算资源服务提供商1502托管和操作的物理计算装置上实例化的虚拟计算机系统。虚拟计算机系统可用于各种目的,诸如作为支持网站的服务器来操作、操作业务应用,或者一般地,充当客户的计算能力。用于虚拟计算机系统的其他应用可用来支持数据库应用、电子商务应用、业务应用和/或其他应用。虽然在图15中示出虚拟计算机系统服务1508,但是可在计算资源服务提供商1502中利用任何其他计算机系统或计算机系统服务,诸如不采用虚拟化或实例化的计算机系统或计算机系统服务,而是在专用或共享计算机/服务器和/或其他物理装置上提供计算资源。
块级数据存储服务1510可包括一个或多个计算资源,所述一个或多个计算资源共同操作以使用块级存储装置(和/或其虚拟化)来为客户1504存储数据。块级数据存储服务1510的块级存储装置可例如可操作地附接到由虚拟计算机系统服务1508提供的虚拟计算机系统,以用作所述计算机系统的逻辑单元(例如虚拟驱动器)。块级存储装置可使得能够永久存储由对应的虚拟计算机系统使用/产生的数据,其中虚拟计算机系统服务1508仅可提供短暂的数据存储。
计算资源服务提供商1502还包括密码服务1512。密码服务1512可利用计算资源服务提供商1502的一个或多个存储服务来以加密形式存储客户的密钥,由此密钥可用于解密客户1504的仅可由密码服务1512的特定装置访问的密钥。
计算资源服务提供商1502还包括按需数据存储服务1514。按需数据存储服务1514可以是被配置来同步地处理存储和/或访问数据的请求的计算资源的集合。按需数据存储服务1514可使用使得按需数据存储服务1514能够快速定位和检索数据的计算资源(例如,数据库)来操作,以允许响应于对数据的请求来提供数据。例如,按需数据存储服务1514可维持存储的数据,其方式使得当检索到对数据对象的请求时,可响应于所述请求来提供数据对象(或者可开始数据对象的流式传输)。如上所述,存储在按需数据存储服务1514中的数据可被组织成数据对象。除了可能对大小进行某些限制之外,数据对象可具有任意大小。因此,按需数据存储服务1514可存储不同大小的多个数据对象。按需数据存储服务1514可操作为将数据对象与数据对象的标识符相关联的键值存储区,所述数据对象的标识符可由客户1504使用,以检索或执行与由按需数据存储服务1514存储的数据对象有关的其他操作。
在图15所示的环境中,包括通知服务1516。通知服务1516可包括共同配置来提供web服务或其他接口和基于浏览器的管理控制台的计算资源的集合。管理控制台可用于配置客户寻求以接收通知的主题、配置应用(或人员)、订阅客户端主题、发布消息或配置通过客户端选择的协议(即超文本传输协议(HTTP)、电子邮件和短消息服务(SMS)等)的消息递送。通知服务1516可使用“推送”机制为客户端提供通知,而不需要针对新信息和更新定期检查或“轮询”。通知服务1516还可用于各种目的,诸如监测虚拟计算机系统服务1508中执行的应用、工作流程系统、对时间敏感的信息的更新、移动应用和许多其他应用。
如图15中所示,在各种实施方案中,计算资源服务提供商1502包括认证系统1518和策略管理服务1520。在实施方案中,认证系统1518是被配置来执行涉及对客户的用户进行认证的操作的计算机系统(即,计算资源的集合)。例如,服务1508-1516和1520-24中的一个可将来自用户的信息提供给认证系统1518,以作为回报接收指示用户请求是否是可信的信息。
策略管理服务1520在实施方案中是被配置来代表计算资源服务提供商1502的客户(诸如客户1504)来管理策略的计算机系统。策略管理服务1520可包括使得客户能够提交与策略管理有关的请求的接口。这类请求例如可以是添加、删除、更改或另外修改用于客户的策略的请求,或针对其他管理动作(诸如提供现有策略的库存等)的请求。
在各种实施方案中,计算资源服务提供商1502还配备有容器服务1522。容器服务1522被配置来以针对图2的容器服务200描述的方式为计算资源服务提供商的客户1504创建和管理软件容器和容器实例。容器服务1522可被配置来使用计算资源服务提供商1502的其他资源,诸如块级数据存储服务1510。例如,容器服务1522可允许在容器实例内运行的任务共享一个或多个指定的块级数据存储卷。
计算资源服务提供商1502至少部分地基于其客户1504的需要另外维护一个或多个其他服务1524。例如,计算资源服务提供商1502可维持用于其客户1504的数据库服务。数据库服务可以是共同操作来为一名或多名客户1504运行一个或多个数据库的计算资源的集合。客户1504可通过利用适当配置的API调用来操作和管理来自数据库服务的数据库。这继而可允许客户1504维持并潜在地缩放数据库中的操作。其他服务包括但不限于对象级存档数据存储服务,以及管理和/或监测其他服务的服务。
应注意,除非另有规定,否则在描述公开的实施方案的上下文中,使用关于可执行指令(也称为代码、应用、代理等)的表达执行指令通常不独立执行的操作(例如,数据传输、计算等)表示指令正在由机器执行,从而引起机器执行指定操作。
可鉴于以下条款对本公开的各个实施方案进行描述:
1.一种计算机实现的方法,其包括:
在被配置有可执行指令的一个或多个计算机系统的控制下,
创建集群和识别所述集群的集群标识符,其中所述集群表示注册到所述集群并被配置来运行一个或多个软件容器的与计算资源服务提供商的客户相关联的一组容器实例;
获得被配置来在计算机系统实例内执行的软件容器的图像,其中所述软件容器包括数据和一个或多个进程,所述进程当在所述计算机系统实例中执行时,与所述计算机系统实例中运行的其他进程隔离,并且其中所述图像是在生成所述图像时所述软件容器的特定状态的整个副本;
接收根据任务定义启动包括所述软件容器的所述图像的一组图像的请求,其中所述任务定义识别包括所述软件容器的一组软件容器,所述组软件容器被分配成以组开始并,且指定对所述组软件容器的资源分配,其中所述请求指定所述集群的所述集群标识符;以及
响应于启动所述一个或多个图像的所述请求,
确定启动所述组软件容器的所述集群标识符指定的所述集群所表示的所述组容器实例的子集,其中一个或多个容器实例根据布局方案来确定;以及
将所述组图像作为在所述组容器实例的所述子集内的运行的软件容器来启动,以使得所述运行的软件容器被根据在所述任务定义中指定的所述资源分配来分配资源。
2.如条款1所述的计算机实现的方法,其中所述组容器实例的所述子集由多租户调度器服务来确定,所述多租户调度器服务被配置来至少部分地基于所述布局方案和所述任务定义来确定所述组容器实例的所述子集。
3.如条款1或2所述的计算机实现的方法,其中引起所述组图像通过在所述组容器实例的所述子集内运行的单独的容器代理来启动,其中所述单独的容器代理是每个被配置来在各自的容器实例中运行并且充当所述运行的软件容器与所述各自容器实例外部的实体之间的中介的软件应用。
4.如条款1至3中任一项所述的计算机实现的方法,其中所述方法还包括向遥测服务提供关于所述运行的软件容器的度量和日志信息,其中所述遥测服务可被配置来聚集所述度量和日志信息并将所述聚集的度量和日志信息提供给资源监测服务。
5.一种系统,其包括:
一个或多个处理器;
存储器,所述存储器包括当由所述一个或多个处理器执行时引起所述系统至少实现以下各项的指令:
后端服务,所述后端服务:
接收针对一组容器实例的布局请求,其中所述组容器实例托管一组对应的容器代理,
确保由任务定义指定的资源在所述组容器实例中可用,以及
从所述组容器代理接收关于所述组容器实例中的一组运行的容器的状态的信息,
将所述信息提供给调度器;以及
所述调度器,所述调度器至少部分地基于布局方案、所述任务定义以及由所述后端服务提供的所述信息来:
确定注册到集群的所述组容器实例的子集,在所述子集内放置所述组容器的单独的容器,
通知所述容器代理根据将要分配给由所述任务定义指定的所述单独的容器的所述资源来为所述子集内的所述单独的容器分配资源,以及
通知所述容器代理在所述子集内并且从由所述任务定义指定的软件图像的位置来将所述组容器启动为所述组运行容器。
6.如条款5所述的系统,其中所述组容器实例的所述子集由计算资源服务提供商的多租户调度器服务来确定。
7.如条款5或6所述的系统,其中所述组容器实例的所述子集由通过计算资源服务提供商的客户安装的调度器应用来确定。
8.如条款5至7中任一项所述的系统,其中所述指令还包括当由所述一个或多个处理器执行时引起所述系统实现遥测代理的指令,所述遥测代理为遥测服务收集关于在所述组运行容器内运行的进程的数据,其中所述遥测服务聚集所述数据并将所述聚集的数据提供给资源监测服务。
9.如条款5至8中任一项所述的系统,其中引起所述系统确定所述组容器实例的所述子集的所述指令包括当由所述一个或多个处理器执行时引起所述系统至少部分地基于将要分配给所述组容器中的所述单独的容器的所述资源以及注册到所述集群的所述组容器实例的单独的容器实例内的可用资源量来确定所述组容器实例的所述子集的指令。
10.如条款5至9中任一项所述的系统,其中所述指令还包括当由所述一个或多个处理器执行时引起所述系统实现产生所述任务定义的模板服务以使得所述任务定义为所述组容器指定用于所述组容器中的单独的容器的所述软件图像的所述位置以及将要分配给所述组容器中的所述单独的容器的所述资源的指令。
11.如条款5至10中任一项所述的系统,其中所述指令还包括当由所述一个或多个处理器执行时引起所述系统实现在所述组容器实例内运行的所述组容器代理的指令,所述组容器代理:
将所述组容器实例注册到所述集群,
响应于来自所述调度器的分配所述资源的通知,为所述组容器实例分配所述资源,
响应于来自所述调度器的启动所述组容器的通知,将所述组容器启动为所述组运行容器,
监测所述组容器实例中的所述组运行容器的所述状态,以及
向所述后端服务提供关于所述状态的所述信息。
12.如条款11所述的系统,其中所述组容器代理被进一步配置来提供一个或多个周期信号,以指示所述单独的容器的正常操作、所述单独的容器的状态以及由所述单独的容器发生的错误。
13.如条款11或12所述的系统,其中实现所述组容器代理的所述指令还包括当由所述一个或多个处理器执行时引起所述系统实现所述组容器代理完成以下各项的指令:
使所述组运行容器停止运行;
从所述集群中注销所述组容器实例;以及
删除所述集群。
14.一种非暂时性计算机可读存储介质,其具有存储在其上的可执行指令,所述可执行指令当由计算机系统的一个或多个处理器执行时,引起所述计算机系统至少:
获得被配置来在计算机系统实例内执行的软件容器的软件图像;
接收根据任务定义启动所述软件图像的请求,其中所述任务定义指定所述软件容器的资源分配;
确定根据所述任务定义启动所述软件图像的一组容器实例,其中根据布局方案来确定所述组容器实例;以及
根据所述任务定义将所述软件图像启动为所述组容器实例中的一个或多个运行的软件容器。
15.如条款14所述的非暂时计算机可读存储介质,其中所述布局方案是循环布局方案或随机分配的布局方案中的一种。
16.如条款14或15所述的非暂时计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时引起所述计算机系统响应于应用编程接口调用而创建用于表示一组计算机系统实例的集群的指令,其中所述计算机系统实例是所述组的成员。
17.如条款14至16中任一项所述的非暂时性计算机可读存储介质,其中引起所述计算机系统确定所述组容器实例的所述指令还包括当由所述一个或多个处理器执行时引起所述计算机系统至少部分地基于分配给所述软件图像的一个或多个安全组或安全角色来确定所述组容器实例的指令。
18.如条款14至17中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时引起所述计算机系统响应于应用编程接口调用来将所述计算机系统实例注册到表示一组计算机系统实例的集群的指令。
19.如条款14至18中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时引起所述计算机系统响应于应用编程接口调用来将所述任务定义注册到计算资源服务提供商的客户的帐户的指令。
20.如条款14-19中任一项所述的非暂时性计算机可读存储介质,其中启动所述软件图像的所述请求是通过应用编程接口调用接收以根据所述任务定义来启动所述软件图像的请求。
21.如条款14-20中任一项所述的非暂时性计算机可读存储介质,其中所述组容器实例是注册到集群的容器实例的子集,并且所述指令还包括当由所述一个或多个处理器执行时引起所述计算机系统响应于应用编程接口调用而返回关于什么软件图像在注册到所述集群的所述容器实例中运行以及什么资源在被注册到所述集群的所述容器实例中可用的信息的指令。
图16示出根据各个实施方案的用于实现各方面的示例性环境1600的各方面。如将了解,尽管出于解释目的使用基于web的环境,但是可视情况使用不同环境来实现各个实施方案。环境包括电子客户端装置1602,所述电子客户端装置1602可包括可操作来通过适当网络1604发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回装置用户的任意适当装置。此类客户端装置的示例包括个人计算机、手机、手持式消息传送装置、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入计算机系统、电子书阅读器等。网络可包括任意适当网络,包括内部网、互联网、蜂窝网、局域网、卫星网或任意其他网络和/或上述网络的组合。用于这种系统的部件可至少部分地取决于所选择的网络和/或环境的类型。用于通过此类网络通信的协议和部件是众所周知的,且将不再详细论述。通过网络的通信可通过有线或无线连接及其组合来实现。在此示例中,网络包括互联网,因为环境包括用于接收请求并且响应于所述请求而提供内容的web服务器1606,但是对于其他网络来说,可使用服务类似目的替代装置,如本领域普通技术人员所明白的。
说明性环境包括应用服务器1608和数据存储区1610。应当理解,可存在可链接起来或以其他方式配置的若干应用服务器、层或其他元件、过程或部件,这些应用服务器、层或其他元件、过程或部件可交互来执行诸如从适当的数据存储区获得数据的任务。如所使用的,服务器可以各种方式实现,诸如硬件装置或虚拟计算机系统。在一些上下文中,服务器可指在计算机系统上执行的编程模块。如所使用的,除非另行指出或从上下文中明确可知,术语“数据存储区”是指能够存储、访问和检索数据的任意装置或装置组合,所述装置或装置组合可包括任意标准、分布式、虚拟或集群式环境中的任意组合和任意数目的数据服务器、数据库、数据存储装置和数据存储介质。应用服务器可包括任何适当硬件、软件和固件,所述硬件、软件和固件视执行客户端装置的一个或多个应用的各方面的需要而与数据存储区集成、处理应用的一些或所有数据访问和业务逻辑。应用服务器可提供与数据存储区协作的访问控制服务,并且能够生成可用于提供给用户的内容,所述内容包括文本、图片、音频、视频和/或其他内容,所述内容可以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、层叠样式表(“CSS”)或另一种适当客户端侧结构化语言的形式由web服务器提供给用户。传送给客户端装置的内容可由客户端装置处理,以便提供呈一种或多种形式的内容,所述形式包括用户可通过听觉、视觉和/或通过其他感觉(包括触觉、味觉和/或嗅觉)来感知的形式。全部请求和响应的处理以及电子客户端装置1602与应用服务器1608之间的内容递送可由web服务器使用以下PHP来处理:在此示例中为超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML或另一种适当服务器侧结构化语言。应当理解,web服务器和应用服务器不是必要的,且仅仅是示例性部件,因为所论述的结构化代码可在如其他地方所论述的任意适当装置或主机上执行。此外,除非上下文另外清楚规定,否则如由单个装置执行的所述的操作可由可形成分布式和/或虚拟系统的多个装置共同执行。
数据存储区1610可包括用于存储与本公开的特定方面相关的数据的若干单独数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机构和介质。例如,所示数据存储区可包括用于存储生成数据1612和用户信息1616的机构,其可用于提供用于生产侧的内容。数据存储区还被示出为包括用于存储日志数据1614的机构,所述日志数据可用于报告、分析或其他目的。应当理解,可能存在可能需要存储在数据存储区中的许多其他方面,诸如页面图像信息和访问权信息,所述方面可视情况存储在上文列出的机构中的任意机构中或存储在数据存储区1610中的额外机构中。数据存储区1610可通过与其相关联的逻辑来操作,以便从应用服务器1608接收指令,并且响应于所述指令而获得、更新或以其他方式处理数据。应用服务器1608可响应于所接收指令提供静态数据、动态数据或静态数据和动态数据的组合。动态数据(诸如web日志(博客)、购物应用、新闻服务以及其他应用中使用的数据)可由如所描述的服务器侧结构化语言生成,或者可由在应用服务器上操作或在其控制下的内容管理系统(“CMS”)提供。在一个示例中,用户通过由用户操作的装置可提交针对某种类型的项目的搜索请求。在这种情况下,数据存储区可能访问用户信息来验证用户的身份,并且可访问目录详细信息以获得关于所述类型的项目的信息。随后,可将信息诸如以网页上的结果列表的形式返回给用户,用户能够通过电子客户端装置1602上的浏览器来查看所述网页。可在浏览器的专用页面或窗口中查看感兴趣的特定项目的信息。然而,应当注意,本公开的实施方案不一定限于网页的内容,但是可更一般地适用于处理基本请求,其中请求不一定是针对内容的请求。
每个服务器通常将包括提供用于此服务器的基本管理和操作的可执行程序指令的操作系统,并且通常将包括计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),其存储当由服务器的处理器执行时允许服务器执行其预期功能的指令。服务器的操作系统和基本功能的合适实现是已知的或可商购获得的,并且由本领域普通技术人员特别是根据本公开而容易地实现。
在一个实施方案中,环境是利用通过通信链路、使用一个或多个计算机网络或直接连接来互连的多个计算机系统和部件的分布式和/或虚拟计算环境。然而,本领域普通技术人员应了解,这种系统可在具有比图16中所示的部件更少或更多数量的部件的系统中同样顺利地操作。因此,图16中的示例性环境1600的描绘本质上应视为说明性的,并且不限制本公开的范围。
各种实施方案还可在各种各样的操作环境中实现,所述操作环境在一些情况下可包括可用于操作多个应用中的任何一个的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可包括许多通用个人计算机中的任何一个,诸如运行标准操作系统的台式机、膝上计算机或平板计算机,以及运行移动软件并且能够支持多个网络和消息传送协议的蜂窝、无线和手持装置。这种系统还可包括运行多种可商购获得的操作系统和其他已知应用中的任何一种的许多工作站,以用于诸如开发和数据库管理的目的。这些装置还可包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统和能够通过网络进行通信的其他装置。这些装置还可包括虚拟装置,诸如虚拟机、管理程序和能够通过网络通信的其他虚拟装置。
本公开的各种实施方案利用本领域技术人员可能熟悉的网络来支持使用多种可商购获得的协议中的任一种进行通信,所述协议诸如传输控制协议/互联网协议("TCP/IP")、用户数据报协议("UDP")、在开放系统互连("OSI")模型的各个层中操作的协议、文件传送协议("FTP")、通用即插即用("UpnP")、网络文件系统("NFS")、公共互联网文件系统("CIFS")以及AppleTalk。网络可以是例如局域网、广域网、虚拟专用网、互联网、内联网、外联网、公共交换电话网、红外网、无线网、卫星网以及上述网络的任何组合。
在利用web服务器的实施方案中,web服务器可运行多种服务器或中间层级应用中的任一种,包括超文本传送协议("HTTP")服务器、FTP服务器、通用网关接口("CGI")服务器、数据服务器、Java服务器、Apache服务器和业务应用服务器。服务器还能够响应于来自用户装置的请求而执行程序或脚本,诸如通过执行可实现为以任何编程语言(诸如C、C#或C++)或任何脚本语言(诸如Ruby、PHP、Perl、Python或TCL)以及其组合写成的一个或多个脚本或程序的一个或多个web应用。服务器也可包括数据库服务器,其包括可从和商购获得的数据库服务器、以及开源服务器(诸如MySQL、Postgres、SQLite、MongoDB)以及能够存储、检索和访问结构化数据或非结构化数据的任何其他服务器。数据库服务器可包括基于表格的服务器、基于文档的服务器、非结构化服务器、关系式服务器、非关系式服务器或这些的组合和/或其他数据库服务器。
环境可包括如上文所论述的各种各样的数据存储区以及其他存储器和存储介质。这些可驻留在各种位置,诸如在存储介质上,所述存储介质在一个或多个计算机的本地(和/或驻留在其中),或者远离网络中的任何或所有计算机。在一组特定实施方案中,信息可驻留在本领域技术人员熟悉的存储区域网络(“SAN”)中。类似地,在适当情况下,用于执行归因于计算机、服务器或其他网络装置的功能的任何必要文件可在本地和/或远程存储。在系统包括计算机化装置的情况下,每个这种装置可包括可通过总线电耦合的硬件元件,所述元件包括例如中央处理单元(“CPU”或“处理器”)、输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和输出装置(例如,显示装置、打印机或扬声器)。这种系统还可包括一个或多个存储装置诸如磁盘驱动器、光存储装置和诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)的固态存储装置、以及可移动媒体装置、存储卡、闪存卡等。
这种装置还可包括计算机可读存储介质读取器、通信装置(例如,调制解调器、无线或有线网卡、红外通信装置等)以及如上所述的工作存储器。计算机可读存储介质读取器可与表示远程、本地、固定和/或可移动存储装置以及用于临时和/或更永久地包含、存储、发送和检索计算机可读信息的存储介质的计算机可读存储介质连接或被配置来接收所述计算机可读存储介质。系统和各种装置通常还将包括位于工作存储器装置内的许多软件应用、模块、服务或其他元件,包括诸如客户端应用或网络浏览器的操作系统和应用。应当理解,替代实施方案可具有自上述的许多变化。例如,还可使用定制硬件和/或特定元件可在硬件、软件(包括便携式软件,例如小程序)或两者中实现。此外,可采用与其他计算装置(诸如网络输入/输出装置)的连接。
用于包含代码或代码部分的存储介质和计算机可读介质可包括本领域中已知或使用的任何适当的介质,所述介质包括存储介质和通信介质,诸如以任何方法或技术实现用于存储和/或传输信息的易失性和非易失性、可移动和不可移动介质,所述信息诸如计算机可读指令、数据结构、程序模块或其他数据,所述介质包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、闪速存储器或其他存储器技术、光盘只读存储器(“CD-ROM”)、数字通用盘(DVD)或其他光存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储装置或者可用来存储所需信息并且可由系统装置访问的任何其他介质。基于所提供的公开内容和教义,本领域普通技术人员将了解实现各个实施方案的其他方式和/或方法。
因此,说明书和附图相应地视为说明性而非限制性意义。然而,明显的是,在不脱离如权利要求所阐述的本发明的更广泛的精神和范围的情况下,可进行各种修改和改变。
其他变化在本公开的精神内。因此,虽然技术易于进行各种修改和替代构造,但是其某些示出的实施方案在附图中示出并已在上文详细描述。然而,应当理解,不意图将本发明限制为所公开的一种或多种具体形式,相反,本发明旨在覆盖落入本发明的精神和范围内的所有修改、替代构造和等效物,如所附权利要求中所限定的。
在描述实施方案(特别是在所附权利要求的上下文中)的上下文中使用术语“一(a)”、“一(an)”和“所述”以及类似的指示物应被解释为涵盖单数和复数,除非另外指明或上下文明显矛盾。术语“包括”、“具有”、“包含”和“含有”均被解释为开放式术语(即意味着“包括但不限于”),除非另有说明。术语“连接的”在未经修改且涉及物理连接的情况下,应解释为部分地或整体地包含在内、附接到或接合在一起,即使会有一些物件介于其间。除非另有说明,否则值的范围的叙述仅用于作为单独参考落在所述范围内的每个单独值的速记方法,并且将每个单独数值并入本说明书中,如同单独列举每个单独数值一样。术语“集”(例如,“项目集”)或“子集”的使用除非另有说明或与上下文相矛盾,否则应被解释为包括一个或多个成员的非空集合。此外,除非另有说明或与上下文相矛盾,否则对应集合的术语“子集”不一定表示对应集合的适当子集,但子集和对应集合可相等。
除非另外特别规定或另外与上下文明显矛盾,否则连接性语言,诸如具有形式“A、B、以及C中的至少一个”或“A、B以及C中的至少一个”的短语与上下文一般使用来理解为呈现项目、项等可以是A或B或C,或A和B和C的集合的任何非空子集。例如,在具有三个成员的集合的说明性示例中,连接性短语“A、B、和C中的至少一个”和“A、B和C中的至少一个”是指以下集合中的任一:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,此类连接性语言一般并非意图暗示某些实施方案需要A中的至少一个、B中的至少一个以及C中的至少一个每个存在。
所描述的进程的操作可以任何合适的顺序执行,除非另外指明或者否则上下文明显矛盾。所描述的进程(或其变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可被实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、通过硬件实现或其组合。代码可存储在计算机可读存储介质上,例如以包括可由一个或多个处理器执行的指令的计算机程序的形式进行存储。计算机可读存储介质可以是非暂时性的。
所提供的任何示例或示例性语言(例如“诸如”)的使用仅旨在更好地说明本发明的实施方案,并且不对本发明的范围构成限制,除非另有说明。说明书中的任何语言都不应解读为指示任何未要求保护的要素是实行本发明所必需的。
描述了本公开的实施方案,包括本发明人已知的用于执行本发明的最佳模式。在阅读前面的描述之后,这些实施方案的变型对于本领域普通技术人员来说可能变得明显。本发明人期望本领域技术人员在适当情况下使用这种变型,并且本发明人希望本公开的实施方案以不同于具体描述的方式来实行。因此,本公开的范围包括根据适用法律允许的所附权利要求中所述的主题的所有修改和等效物。此外,除非另外指明或者否则上下文明显矛盾,否则所有可能变型的上述元素的任何组合都包含在本公开的范围内。
所引用的所有参考文献(包括公布、专利申请和专利)据此以引用方式并入,其程度等同于每个参考文献单独地且具体地被表示为以引用方式并入并且以其全文得以陈述。
Claims (15)
1.一种系统,其包括:
一个或多个处理器;
存储器,所述存储器包括当由所述一个或多个处理器执行时引起所述系统至少实现以下各项的指令:
后端服务,所述后端服务:
接收针对一组容器实例的布局请求,其中所述组容器实例托管一组对应的容器代理,
确保由任务定义指定的资源在所述组容器实例中可用,以及
从所述组容器代理接收关于所述组容器实例中的一组运行的容器的状态的信息,
将所述信息提供给调度器;以及
所述调度器,所述调度器至少部分地基于布局方案、所述任务定义以及由所述后端服务提供的所述信息来:
确定注册到集群的所述组容器实例的子集,在所述子集内放置所述组容器的单独的容器,
通知所述容器代理根据将要分配给由所述任务定义指定的所述单独的容器的所述资源来为所述子集内的所述单独的容器分配资源,以及
通知所述容器代理在所述子集内并且从由所述任务定义指定的软件图像的位置来将所述组容器启动为所述组运行容器。
2.如权利要求1所述的系统,其中所述组容器实例的所述子集由计算资源服务提供商的多租户调度器服务来确定。
3.如权利要求1所述的系统,其中所述组容器实例的所述子集由通过计算资源服务提供商的客户安装的调度器应用来确定。
4.如权利要求1所述的系统,其中所述指令还包括当由所述一个或多个处理器执行时引起所述系统实现遥测代理的指令,所述遥测代理为遥测服务收集关于在所述组运行容器内运行的进程的数据,其中所述遥测服务聚集所述数据并将所述聚集的数据提供给资源监测服务。
5.如权利要求1所述的系统,其中引起所述系统确定所述组容器实例的所述子集的所述指令包括当由所述一个或多个处理器执行时引起所述系统至少部分地基于将要分配给所述组容器中的所述单独的容器的所述资源以及注册到所述集群的所述组容器实例的单独的容器实例内的可用资源量来确定所述组容器实例的所述子集的指令。
6.如权利要求1所述的系统,其中所述指令还包括当由所述一个或多个处理器执行时引起所述系统实现产生所述任务定义的模板服务以使得所述任务定义为所述组容器指定用于所述组容器中的单独的容器的所述软件图像的所述位置以及将要分配给所述组容器中的所述单独的容器的所述资源的指令。
7.如权利要求1所述的系统,其中所述指令还包括当由所述一个或多个处理器执行时引起所述系统实现在所述组容器实例内运行的所述组容器代理的指令,所述组容器代理:
将所述组容器实例注册到所述集群,
响应于来自所述调度器的分配所述资源的通知,为所述组容器实例分配所述资源,
响应于来自所述调度器的启动所述组容器的通知,将所述组容器启动为所述组运行容器,
监测所述组容器实例中的所述组运行容器的所述状态,以及
向所述后端服务提供关于所述状态的所述信息。
8.如权利要求7所述的系统,其中实现所述组容器代理的所述指令还包括当由所述一个或多个处理器执行时引起所述系统实现所述组容器代理完成以下各项的指令:
使所述组运行容器停止运行;
从所述集群中注销所述组容器实例;以及
删除所述集群。
9.一种计算机实现的方法,其包括:
获得被配置来在计算机系统实例内执行的软件容器的软件图像;
接收根据任务定义启动所述软件图像的请求,其中所述任务定义指定所述软件容器的资源分配;
确定根据所述任务定义启动所述软件图像的一组容器实例,其中根据布局方案来确定所述组容器实例;以及
根据所述任务定义将所述软件图像启动为所述组容器实例中的一个或多个运行的软件容器。
10.如权利要求9所述的方法,其中所述布局方案是循环布局方案或随机分配的布局方案中的一种。
11.如权利要求9所述的方法,其还包括:响应于应用编程接口调用,创建用于表示一组计算机系统实例的集群,其中所述计算机系统实例是所述组的成员。
12.如权利要求9所述的方法,其还包括:至少部分地基于分配给所述软件图像的一个或多个安全组或安全角色来确定所述组容器实例。
13.如权利要求9所述的方法,其还包括:响应于应用编程接口调用,将所述计算机系统实例注册到表示一组计算机系统实例的集群。
14.如权利要求9所述的方法,其还包括:响应于应用编程接口调用,将所述任务定义注册到计算资源服务提供商的客户的帐户。
15.如权利要求9所述的方法,其还包括:响应于应用编程接口调用,返回关于什么软件图像在注册到所述集群的所述容器实例中运行以及什么资源在被注册到所述集群的所述容器实例中可用的信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/538,663 US9256467B1 (en) | 2014-11-11 | 2014-11-11 | System for managing and scheduling containers |
US14/538,663 | 2014-11-11 | ||
PCT/US2015/059983 WO2016077367A1 (en) | 2014-11-11 | 2015-11-10 | System for managing and scheduling containers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107111519A true CN107111519A (zh) | 2017-08-29 |
Family
ID=54771180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580061134.7A Pending CN107111519A (zh) | 2014-11-11 | 2015-11-10 | 用于管理和调度容器的系统 |
Country Status (9)
Country | Link |
---|---|
US (5) | US9256467B1 (zh) |
EP (1) | EP3218808A1 (zh) |
JP (2) | JP6522750B2 (zh) |
KR (2) | KR102042988B1 (zh) |
CN (1) | CN107111519A (zh) |
AU (3) | AU2015346530C1 (zh) |
RU (3) | RU2666475C1 (zh) |
SG (2) | SG10201913839VA (zh) |
WO (1) | WO2016077367A1 (zh) |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844371A (zh) * | 2017-10-12 | 2018-03-27 | 北京京东尚科信息技术有限公司 | 任务处理方法、系统及电子设备 |
CN108920259A (zh) * | 2018-03-30 | 2018-11-30 | 华为技术有限公司 | 深度学习作业调度方法、系统和相关设备 |
CN109067840A (zh) * | 2018-06-29 | 2018-12-21 | 优刻得科技股份有限公司 | 人工智能在线服务的方法、系统和存储介质 |
CN109491762A (zh) * | 2018-11-09 | 2019-03-19 | 网易(杭州)网络有限公司 | 容器状态控制方法及装置、存储介质、电子设备 |
CN109656723A (zh) * | 2019-03-13 | 2019-04-19 | 联想(北京)有限公司 | 容器资源调度方法及装置 |
CN110134519A (zh) * | 2019-05-21 | 2019-08-16 | 中国太平洋保险(集团)股份有限公司 | 一种基于容器平台实现网站管理的控制方法及装置 |
CN110187869A (zh) * | 2019-05-14 | 2019-08-30 | 上海直真君智科技有限公司 | 一种大数据异构存储计算模型间的统一互操作系统及方法 |
CN110209380A (zh) * | 2019-05-30 | 2019-09-06 | 上海直真君智科技有限公司 | 一种面向大数据异构模型的统一动态元数据处理方法 |
CN110262871A (zh) * | 2019-05-17 | 2019-09-20 | 平安科技(深圳)有限公司 | 容器应用的容器实例启停方法、装置、计算机设备及存储介质 |
CN110311973A (zh) * | 2019-06-28 | 2019-10-08 | 东北大学 | 一种面向多租户的影像云服务系统及方法 |
CN110333939A (zh) * | 2019-06-17 | 2019-10-15 | 腾讯科技(成都)有限公司 | 任务混合调度方法、装置、调度服务器及资源服务器 |
CN110347476A (zh) * | 2019-06-27 | 2019-10-18 | 苏州浪潮智能科技有限公司 | 一种信息化系统的耗时任务管理方法和装置 |
CN110580194A (zh) * | 2019-08-29 | 2019-12-17 | 上海仪电(集团)有限公司中央研究院 | 基于内存热插拔技术的容器调度方法及管理节点调度器 |
CN110612705A (zh) * | 2017-11-08 | 2019-12-24 | 华为技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
CN110838939A (zh) * | 2019-10-11 | 2020-02-25 | 许继集团有限公司 | 一种基于轻量级容器的调度方法及边缘物联管理平台 |
CN110955490A (zh) * | 2019-10-25 | 2020-04-03 | 北京浪潮数据技术有限公司 | 一种资源的异步创建方法、装置、设备及介质 |
CN111078356A (zh) * | 2019-11-22 | 2020-04-28 | 北京达佳互联信息技术有限公司 | Gpu集群资源控制系统、方法、装置、设备及存储介质 |
CN111176830A (zh) * | 2019-12-03 | 2020-05-19 | 支付宝实验室(新加坡)有限公司 | 信息流的分配方法、装置及服务器系统 |
CN111240822A (zh) * | 2020-01-15 | 2020-06-05 | 华为技术有限公司 | 任务调度方法、装置、系统及存储介质 |
CN111263933A (zh) * | 2017-09-30 | 2020-06-09 | 甲骨文国际公司 | 部署的容器平台中的实时调试实例 |
CN111527474A (zh) * | 2018-01-03 | 2020-08-11 | 国际商业机器公司 | 软件功能的动态交付 |
CN111539198A (zh) * | 2020-04-15 | 2020-08-14 | 北京宝兰德软件股份有限公司 | 一种基于Java的表单验证方法及装置 |
CN111935110A (zh) * | 2020-07-24 | 2020-11-13 | 北京金山云网络技术有限公司 | 一种对租户访问容器实例的权限的控制方法和装置 |
WO2021051576A1 (zh) * | 2019-09-19 | 2021-03-25 | 平安科技(深圳)有限公司 | 弹性执行热容器方法、装置、设备和存储介质 |
CN113010261A (zh) * | 2021-02-20 | 2021-06-22 | 博普乐科技(北京)有限公司 | 一种虚拟编程环境构建方法 |
CN113364706A (zh) * | 2021-06-03 | 2021-09-07 | 上海中通吉网络技术有限公司 | 服务流量集中的方法 |
CN113467817A (zh) * | 2021-07-14 | 2021-10-01 | 广域铭岛数字科技有限公司 | 一种应用管理方法、系统、介质及电子终端 |
CN113779517A (zh) * | 2020-06-09 | 2021-12-10 | 武汉斗鱼鱼乐网络科技有限公司 | 一种权限获取方法、装置、设备及存储介质 |
CN113821331A (zh) * | 2020-06-18 | 2021-12-21 | 北京字节跳动网络技术有限公司 | 一种服务获取方法、装置、终端设备及介质 |
CN114296405A (zh) * | 2020-09-22 | 2022-04-08 | 罗克韦尔自动化技术公司 | 使用容器编排系统和操作技术设备实现无服务器功能 |
CN114424172A (zh) * | 2019-10-11 | 2022-04-29 | 国际商业机器公司 | 虚拟存储器元数据管理 |
WO2023169175A1 (zh) * | 2022-03-08 | 2023-09-14 | 北京字节跳动网络技术有限公司 | 一种请求处理方法、装置、计算机设备和存储装置 |
Families Citing this family (347)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8019732B2 (en) * | 2008-08-08 | 2011-09-13 | Amazon Technologies, Inc. | Managing access of multiple executing programs to non-local block data storage |
US9225638B2 (en) | 2013-05-09 | 2015-12-29 | Vmware, Inc. | Method and system for service switching using service tags |
US10366102B2 (en) * | 2014-02-19 | 2019-07-30 | Snowflake Inc. | Resource management systems and methods |
JP2015197845A (ja) * | 2014-04-02 | 2015-11-09 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びにプログラム |
US10291548B2 (en) | 2014-08-08 | 2019-05-14 | Oracle International Corporation | Contribution policy-based resource management and allocation system |
US9912609B2 (en) * | 2014-08-08 | 2018-03-06 | Oracle International Corporation | Placement policy-based allocation of computing resources |
US10693946B2 (en) | 2014-09-16 | 2020-06-23 | Amazon Technologies, Inc. | Instance backed mobile devices |
US9755898B2 (en) | 2014-09-30 | 2017-09-05 | Nicira, Inc. | Elastically managing a service node group |
US10225137B2 (en) | 2014-09-30 | 2019-03-05 | Nicira, Inc. | Service node selection by an inline service switch |
US9256467B1 (en) | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
US9886306B2 (en) * | 2014-11-21 | 2018-02-06 | International Business Machines Corporation | Cross-platform scheduling with long-term fairness and platform-specific optimization |
US9853868B2 (en) * | 2014-12-05 | 2017-12-26 | Accenture Global Services Limited | Type-to-type analysis for cloud computing technical components |
US9882968B1 (en) | 2014-12-09 | 2018-01-30 | Amazon Technologies, Inc. | Virtual network interface multiplexing |
US9692666B2 (en) * | 2014-12-22 | 2017-06-27 | Rovio Entertainment Ltd. | Container manager |
US9967334B2 (en) | 2015-03-02 | 2018-05-08 | Dell Products Lp | Computing device configuration and management using a secure decentralized transaction ledger |
US9965628B2 (en) | 2015-03-02 | 2018-05-08 | Dell Products Lp | Device reporting and protection systems and methods using a secure distributed transactional ledger |
US10484168B2 (en) * | 2015-03-02 | 2019-11-19 | Dell Products L.P. | Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger |
US10592985B2 (en) | 2015-03-02 | 2020-03-17 | Dell Products L.P. | Systems and methods for a commodity contracts market using a secure distributed transaction ledger |
US9967333B2 (en) | 2015-03-02 | 2018-05-08 | Dell Products Lp | Deferred configuration or instruction execution using a secure distributed transaction ledger |
CN107430526B (zh) * | 2015-03-24 | 2021-10-29 | 瑞典爱立信有限公司 | 用于调度数据处理的方法和节点 |
US10594743B2 (en) | 2015-04-03 | 2020-03-17 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
CN106155764A (zh) | 2015-04-23 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 调度虚拟机输入输出资源的方法及装置 |
CN106201839B (zh) | 2015-04-30 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 一种业务对象的信息加载方法和装置 |
CN106209741B (zh) | 2015-05-06 | 2020-01-03 | 阿里巴巴集团控股有限公司 | 一种虚拟主机及隔离方法、资源访问请求处理方法及装置 |
CN106293869A (zh) * | 2015-05-26 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种资源分配方法和装置 |
US9781124B2 (en) * | 2015-06-11 | 2017-10-03 | International Business Machines Corporation | Container-based system administration |
US10379889B2 (en) * | 2015-06-15 | 2019-08-13 | Microsoft Technology Licensing, Llc | Monitoring and reporting performance of collaboration services using a monitoring service native to the collaboration service |
US10298259B1 (en) | 2015-06-16 | 2019-05-21 | Amazon Technologies, Inc. | Multi-layered data redundancy coding techniques |
US10270475B1 (en) | 2015-06-16 | 2019-04-23 | Amazon Technologies, Inc. | Layered redundancy coding for encoded parity data |
US10977128B1 (en) | 2015-06-16 | 2021-04-13 | Amazon Technologies, Inc. | Adaptive data loss mitigation for redundancy coding systems |
CA2990405A1 (en) * | 2015-06-22 | 2016-12-29 | Draios Inc. | Monitoring of applications isolated in containers |
US9747119B2 (en) * | 2015-06-23 | 2017-08-29 | Vmware, Inc. | Methods and apparatus to monitor virtual computing environments |
US10609122B1 (en) | 2015-06-29 | 2020-03-31 | Amazon Technologies, Inc. | Instance backed building or place |
US11061969B1 (en) | 2015-06-29 | 2021-07-13 | Amazon Technologies, Inc. | Instance backed mobile devices with multiple instances |
US10394762B1 (en) | 2015-07-01 | 2019-08-27 | Amazon Technologies, Inc. | Determining data redundancy in grid encoded data storage systems |
CN106708819A (zh) | 2015-07-17 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种数据缓存的预热方法及其装置 |
CN106445473B (zh) * | 2015-08-06 | 2019-12-06 | 华为技术有限公司 | 一种容器部署方法及装置 |
US10911404B1 (en) | 2015-08-24 | 2021-02-02 | Amazon Technologies, Inc. | Attribute based authorization |
US9690622B1 (en) | 2015-08-24 | 2017-06-27 | Amazon Technologies, Inc. | Stateless instance backed mobile devices |
CN106487708B (zh) | 2015-08-25 | 2020-03-13 | 阿里巴巴集团控股有限公司 | 网络访问请求控制方法和装置 |
US9853913B2 (en) * | 2015-08-25 | 2017-12-26 | Accenture Global Services Limited | Multi-cloud network proxy for control and normalization of tagging data |
US11422840B2 (en) * | 2015-08-28 | 2022-08-23 | Vmware, Inc. | Partitioning a hypervisor into virtual hypervisors |
US11386060B1 (en) | 2015-09-23 | 2022-07-12 | Amazon Technologies, Inc. | Techniques for verifiably processing data in distributed computing systems |
US10223534B2 (en) * | 2015-10-15 | 2019-03-05 | Twistlock, Ltd. | Static detection of vulnerabilities in base images of software containers |
US10693899B2 (en) | 2015-10-01 | 2020-06-23 | Twistlock, Ltd. | Traffic enforcement in containerized environments |
US10922418B2 (en) | 2015-10-01 | 2021-02-16 | Twistlock, Ltd. | Runtime detection and mitigation of vulnerabilities in application software containers |
US10586042B2 (en) | 2015-10-01 | 2020-03-10 | Twistlock, Ltd. | Profiling of container images and enforcing security policies respective thereof |
US10943014B2 (en) | 2015-10-01 | 2021-03-09 | Twistlock, Ltd | Profiling of spawned processes in container images and enforcing security policies respective thereof |
US10706145B2 (en) | 2015-10-01 | 2020-07-07 | Twistlock, Ltd. | Runtime detection of vulnerabilities in software containers |
US10664590B2 (en) | 2015-10-01 | 2020-05-26 | Twistlock, Ltd. | Filesystem action profiling of containers and security enforcement |
US10599833B2 (en) | 2015-10-01 | 2020-03-24 | Twistlock, Ltd. | Networking-based profiling of containers and security enforcement |
US10567411B2 (en) | 2015-10-01 | 2020-02-18 | Twistlock, Ltd. | Dynamically adapted traffic inspection and filtering in containerized environments |
US9940470B2 (en) * | 2015-10-06 | 2018-04-10 | Symantec Corporation | Techniques for generating a virtual private container |
US10778446B2 (en) * | 2015-10-15 | 2020-09-15 | Twistlock, Ltd. | Detection of vulnerable root certificates in software containers |
US9569180B1 (en) * | 2015-10-29 | 2017-02-14 | International Business Machines Corporation | Application development in cloud based environment |
US10782990B1 (en) | 2015-11-24 | 2020-09-22 | Amazon Technologies, Inc. | Container telemetry |
US10394789B1 (en) | 2015-12-07 | 2019-08-27 | Amazon Technologies, Inc. | Techniques and systems for scalable request handling in data processing systems |
US10642813B1 (en) | 2015-12-14 | 2020-05-05 | Amazon Technologies, Inc. | Techniques and systems for storage and processing of operational data |
US10324790B1 (en) | 2015-12-17 | 2019-06-18 | Amazon Technologies, Inc. | Flexible data storage device mapping for data storage systems |
US10261782B2 (en) | 2015-12-18 | 2019-04-16 | Amazon Technologies, Inc. | Software container registry service |
US10002247B2 (en) | 2015-12-18 | 2018-06-19 | Amazon Technologies, Inc. | Software container registry container image deployment |
US10032032B2 (en) | 2015-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Software container registry inspection |
US11513850B2 (en) | 2016-02-05 | 2022-11-29 | Sas Institute Inc. | Coordinated performance controller failover in many task computing |
US11734064B2 (en) * | 2016-02-05 | 2023-08-22 | Sas Institute Inc. | Automated virtual machine resource management in container-supported many task computing |
US11474863B2 (en) | 2018-06-22 | 2022-10-18 | Sas Institute Inc. | Federated area coherency across multiple devices in many-task computing |
US11455190B2 (en) | 2016-02-05 | 2022-09-27 | Sas Institute Inc. | Implicit status in many task computing |
US10360187B1 (en) * | 2016-03-05 | 2019-07-23 | Virtuozzo International Gmbh | Hybrid storage for virtual machines and containers |
US11379416B1 (en) * | 2016-03-17 | 2022-07-05 | Jpmorgan Chase Bank, N.A. | Systems and methods for common data ingestion |
US9898354B2 (en) | 2016-03-21 | 2018-02-20 | Microsoft Technology Licensing, Llc | Operating system layering |
US10268514B1 (en) * | 2016-03-22 | 2019-04-23 | Amazon Technologies, Inc. | Performance analysis of stateless compute functions using function call intercept |
US10324766B1 (en) * | 2016-03-24 | 2019-06-18 | Amazon Technologies, Inc. | Task profile collection |
US10592336B1 (en) | 2016-03-24 | 2020-03-17 | Amazon Technologies, Inc. | Layered indexing for asynchronous retrieval of redundancy coded data |
US10061668B1 (en) | 2016-03-28 | 2018-08-28 | Amazon Technologies, Inc. | Local storage clustering for redundancy coded data storage system |
US10678664B1 (en) | 2016-03-28 | 2020-06-09 | Amazon Technologies, Inc. | Hybridized storage operation for redundancy coded data storage systems |
US10013213B2 (en) * | 2016-04-22 | 2018-07-03 | EMC IP Holding Company LLC | Container migration utilizing state storage of partitioned storage volume |
US10135837B2 (en) | 2016-05-17 | 2018-11-20 | Amazon Technologies, Inc. | Versatile autoscaling for containers |
WO2017200878A1 (en) * | 2016-05-17 | 2017-11-23 | Amazon Technologies, Inc. | Versatile autoscaling |
WO2017205223A1 (en) * | 2016-05-23 | 2017-11-30 | William Turner | Hyperconverged system including a user interface, a services layer and a core layer equipped with an operating system kernel |
US11394685B2 (en) * | 2016-05-27 | 2022-07-19 | Walmart Apollo, Llc | Systems and methods of database instance container deployment |
KR20170139872A (ko) * | 2016-06-10 | 2017-12-20 | 삼성에스디에스 주식회사 | 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 |
US10594798B2 (en) * | 2016-06-16 | 2020-03-17 | Veniam, Inc. | Systems and methods for managing containers in a network of moving things |
US10013265B2 (en) * | 2016-06-23 | 2018-07-03 | International Business Machines Corporation | Management of container host clusters |
US10305747B2 (en) * | 2016-06-23 | 2019-05-28 | Sap Se | Container-based multi-tenant computing infrastructure |
WO2018004403A1 (en) * | 2016-06-28 | 2018-01-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Managing a lifecycle of a software container |
US11119824B2 (en) | 2016-06-30 | 2021-09-14 | Intel Corporation | Technologies for implementing consolidated device infrastructure systems |
US10169156B2 (en) | 2016-07-21 | 2019-01-01 | International Business Machines Corporation | Automatic restarting of containers |
WO2018020610A1 (ja) * | 2016-07-27 | 2018-02-01 | 株式会社オプティム | コンテナイメージ配信システム、コンテナイメージ配信方法及びプログラム |
US10615998B2 (en) | 2016-08-17 | 2020-04-07 | Red Hat, Inc. | State analysis of remote computing images |
US10366091B2 (en) | 2016-08-18 | 2019-07-30 | Red Hat, Inc. | Efficient image file loading and garbage collection |
US10210024B2 (en) * | 2016-08-23 | 2019-02-19 | Samsung Electronics Co., Ltd. | Intelligent controller for containerized applications |
US10432638B2 (en) | 2016-08-29 | 2019-10-01 | Cisco Technology, Inc. | Infrastructure aware adaptive resource allocation |
WO2018045541A1 (zh) * | 2016-09-08 | 2018-03-15 | 华为技术有限公司 | 一种容器分配的优化方法及处理设备 |
CN109791504B (zh) * | 2016-09-21 | 2023-04-18 | 埃森哲环球解决方案有限公司 | 针对应用容器的动态资源配置 |
US10154065B1 (en) | 2016-09-22 | 2018-12-11 | Trend Micro Incorporated | Policy management in software container computing environments |
US11250056B1 (en) | 2016-09-26 | 2022-02-15 | Splunk Inc. | Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system |
US20180089324A1 (en) | 2016-09-26 | 2018-03-29 | Splunk Inc. | Dynamic resource allocation for real-time search |
US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
US11243963B2 (en) | 2016-09-26 | 2022-02-08 | Splunk Inc. | Distributing partial results to worker nodes from an external data system |
US12013895B2 (en) | 2016-09-26 | 2024-06-18 | Splunk Inc. | Processing data using containerized nodes in a containerized scalable environment |
US11321321B2 (en) | 2016-09-26 | 2022-05-03 | Splunk Inc. | Record expansion and reduction based on a processing task in a data intake and query system |
US11003714B1 (en) | 2016-09-26 | 2021-05-11 | Splunk Inc. | Search node and bucket identification using a search node catalog and a data store catalog |
US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
US11550847B1 (en) | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
US11023463B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US11314753B2 (en) | 2016-09-26 | 2022-04-26 | Splunk Inc. | Execution of a query received from a data intake and query system |
US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
US11294941B1 (en) | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in a data intake and query system |
US11222066B1 (en) | 2016-09-26 | 2022-01-11 | Splunk Inc. | Processing data using containerized state-free indexing nodes in a containerized scalable environment |
US11126632B2 (en) | 2016-09-26 | 2021-09-21 | Splunk Inc. | Subquery generation based on search configuration data from an external data system |
US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
US11106734B1 (en) * | 2016-09-26 | 2021-08-31 | Splunk Inc. | Query execution using containerized state-free search nodes in a containerized scalable environment |
US11163758B2 (en) | 2016-09-26 | 2021-11-02 | Splunk Inc. | External dataset capability compensation |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US10984044B1 (en) | 2016-09-26 | 2021-04-20 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system |
US11281706B2 (en) | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US10977260B2 (en) | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US11416528B2 (en) | 2016-09-26 | 2022-08-16 | Splunk Inc. | Query acceleration data store |
US11620336B1 (en) | 2016-09-26 | 2023-04-04 | Splunk Inc. | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
US10353965B2 (en) | 2016-09-26 | 2019-07-16 | Splunk Inc. | Data fabric service system architecture |
US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
US11232100B2 (en) | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
US11567993B1 (en) | 2016-09-26 | 2023-01-31 | Splunk Inc. | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
US11137980B1 (en) | 2016-09-27 | 2021-10-05 | Amazon Technologies, Inc. | Monotonic time-based data storage |
US10810157B1 (en) | 2016-09-28 | 2020-10-20 | Amazon Technologies, Inc. | Command aggregation for data storage operations |
US11204895B1 (en) | 2016-09-28 | 2021-12-21 | Amazon Technologies, Inc. | Data payload clustering for data storage systems |
US10496327B1 (en) | 2016-09-28 | 2019-12-03 | Amazon Technologies, Inc. | Command parallelization for data storage systems |
US10437790B1 (en) | 2016-09-28 | 2019-10-08 | Amazon Technologies, Inc. | Contextual optimization for data storage systems |
US10657097B1 (en) | 2016-09-28 | 2020-05-19 | Amazon Technologies, Inc. | Data payload aggregation for data storage systems |
US11281624B1 (en) | 2016-09-28 | 2022-03-22 | Amazon Technologies, Inc. | Client-based batching of data payload |
US10871995B2 (en) * | 2016-09-29 | 2020-12-22 | Amazon Technologies, Inc. | Managed container instances |
US10614239B2 (en) | 2016-09-30 | 2020-04-07 | Amazon Technologies, Inc. | Immutable cryptographically secured ledger-backed databases |
US10303388B1 (en) * | 2016-09-30 | 2019-05-28 | EMC IP Holding Company LLC | Storage filtering using container images |
US10412022B1 (en) | 2016-10-19 | 2019-09-10 | Amazon Technologies, Inc. | On-premises scaling using a versatile scaling service and an application programming interface management service |
US10732951B2 (en) * | 2016-10-28 | 2020-08-04 | Hewlett Packard Enterprise Development Lp | Container images |
US10523581B2 (en) | 2016-10-31 | 2019-12-31 | Microsoft Technology Licensing Llc | Flighting of node controller in pilot mode in resource management system |
US10521447B2 (en) | 2016-11-14 | 2019-12-31 | International Business Machines Corporation | Container application execution using image metadata |
US10296764B1 (en) | 2016-11-18 | 2019-05-21 | Amazon Technologies, Inc. | Verifiable cryptographically secured ledgers for human resource systems |
US10409642B1 (en) | 2016-11-22 | 2019-09-10 | Amazon Technologies, Inc. | Customer resource monitoring for versatile scaling service scaling policy recommendations |
US11269888B1 (en) | 2016-11-28 | 2022-03-08 | Amazon Technologies, Inc. | Archival data storage for structured data |
US10346189B2 (en) * | 2016-12-05 | 2019-07-09 | Red Hat, Inc. | Co-locating containers based on source to improve compute density |
US10921991B1 (en) | 2016-12-20 | 2021-02-16 | Amazon Technologies, Inc. | Rule invalidation for a block store management system |
US10268593B1 (en) | 2016-12-20 | 2019-04-23 | Amazon Technologies, Inc. | Block store managamement using a virtual computing system service |
US11507283B1 (en) | 2016-12-20 | 2022-11-22 | Amazon Technologies, Inc. | Enabling host computer systems to access logical volumes by dynamic updates to data structure rules |
US10809920B1 (en) * | 2016-12-20 | 2020-10-20 | Amazon Technologies, Inc. | Block store management for remote storage systems |
US11023215B2 (en) | 2016-12-21 | 2021-06-01 | Aon Global Operations Se, Singapore Branch | Methods, systems, and portal for accelerating aspects of data analytics application development and deployment |
US10572226B2 (en) * | 2016-12-21 | 2020-02-25 | Aon Global Operations Ltd (Singapore Branch) | Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment |
US10353603B1 (en) | 2016-12-27 | 2019-07-16 | EMC IP Holding Company LLC | Storage container based replication services |
US10423634B1 (en) | 2016-12-27 | 2019-09-24 | EMC IP Holding Company LLC | Temporal queries on secondary storage |
US10394599B2 (en) | 2017-01-05 | 2019-08-27 | International Business Machines Corporation | Breaking dependence of distributed service containers |
US10169023B2 (en) | 2017-02-06 | 2019-01-01 | International Business Machines Corporation | Virtual container deployment |
US10909136B1 (en) | 2017-02-08 | 2021-02-02 | Veritas Technologies Llc | Systems and methods for automatically linking data analytics to storage |
US11093297B2 (en) * | 2017-02-08 | 2021-08-17 | Dell Products L.P. | Workload optimization system |
US10216455B1 (en) * | 2017-02-14 | 2019-02-26 | Veritas Technologies Llc | Systems and methods for performing storage location virtualization |
US10360053B1 (en) * | 2017-02-14 | 2019-07-23 | Veritas Technologies Llc | Systems and methods for completing sets of computing tasks |
US10685033B1 (en) | 2017-02-14 | 2020-06-16 | Veritas Technologies Llc | Systems and methods for building an extract, transform, load pipeline |
WO2018152582A1 (en) * | 2017-02-22 | 2018-08-30 | Woodside Energy Technologies Pty Ltd | A model management system |
US10613885B2 (en) * | 2017-02-24 | 2020-04-07 | International Business Machines Corporation | Portable aggregated information calculation and injection for application containers |
US10691816B2 (en) | 2017-02-24 | 2020-06-23 | International Business Machines Corporation | Applying host access control rules for data used in application containers |
US10176106B2 (en) | 2017-02-24 | 2019-01-08 | International Business Machines Corporation | Caching mechanisms for information extracted from application containers including applying a space guard and a time guard |
US10318314B2 (en) * | 2017-02-24 | 2019-06-11 | International Business Machines Corporation | Techniques for managing software container dependencies |
US10606682B2 (en) | 2017-03-09 | 2020-03-31 | International Business Machines Corporation | System and method of collecting serviceability data in containers based cloud infrastructure |
US10606646B1 (en) | 2017-03-13 | 2020-03-31 | Veritas Technologies Llc | Systems and methods for creating a data volume from within a software container and initializing the data volume with data |
US10936549B2 (en) | 2017-03-16 | 2021-03-02 | Cisco Technology, Inc. | Cluster-wide container optimization and storage compression |
US10356048B2 (en) * | 2017-03-17 | 2019-07-16 | Verizon Patent And Licensing Inc. | Container deployment for a network |
US10341198B2 (en) * | 2017-03-17 | 2019-07-02 | Verizon Patent And Licensing Inc. | Configuring a back-end container and a corresponding front-end proxy container on a network device |
US10614117B2 (en) | 2017-03-21 | 2020-04-07 | International Business Machines Corporation | Sharing container images between mulitple hosts through container orchestration |
US10540191B2 (en) | 2017-03-21 | 2020-01-21 | Veritas Technologies Llc | Systems and methods for using dynamic templates to create application containers |
EP3379413A1 (en) * | 2017-03-21 | 2018-09-26 | Nokia Solutions and Networks Oy | Optimization of a software image layer stack |
US20180316547A1 (en) * | 2017-04-27 | 2018-11-01 | Microsoft Technology Licensing, Llc | Single management interface to route metrics and diagnostic logs for cloud resources to cloud storage, streaming and log analytics services |
US10547672B2 (en) | 2017-04-27 | 2020-01-28 | Microsoft Technology Licensing, Llc | Anti-flapping system for autoscaling resources in cloud networks |
KR101826498B1 (ko) | 2017-05-02 | 2018-02-07 | 나무기술 주식회사 | 클라우드 플랫폼 시스템 |
KR101807806B1 (ko) * | 2017-05-02 | 2017-12-11 | 나무기술 주식회사 | 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법 |
US10387204B2 (en) | 2017-05-12 | 2019-08-20 | International Business Machines Corporation | Resource pooling in a virtualized cloud container environment |
US10922205B2 (en) * | 2017-05-16 | 2021-02-16 | Vmware, Inc. | Monitoring applications running on containers |
US10467046B2 (en) * | 2017-05-30 | 2019-11-05 | Red Hat, Inc. | Fast and greedy scheduling machine based on a distance matrix |
US11100243B2 (en) * | 2017-06-06 | 2021-08-24 | Microsoft Technology Licensing, Llc | Selective persistence of data utilized by software containers |
US11140455B1 (en) | 2017-06-09 | 2021-10-05 | Amazon Technologies, Inc. | Video encoder network sandboxing |
US10650139B2 (en) | 2017-06-12 | 2020-05-12 | Daniel Maurice Lerner | Securing temporal digital communications via authentication and validation for wireless user and access devices with securitized containers |
US10909165B2 (en) | 2017-06-20 | 2021-02-02 | Red Hat, Inc. | Sharing filesystems between containers |
US10719354B2 (en) | 2017-06-20 | 2020-07-21 | Samsung Electronics Co., Ltd. | Container workload scheduler and methods of scheduling container workloads |
US10567359B2 (en) * | 2017-07-18 | 2020-02-18 | International Business Machines Corporation | Cluster of secure execution platforms |
US10466899B2 (en) | 2017-07-28 | 2019-11-05 | Hewlett Packard Enterprise Development Lp | Selecting controllers based on affinity between access devices and storage segments |
US11989194B2 (en) | 2017-07-31 | 2024-05-21 | Splunk Inc. | Addressing memory limits for partition tracking among worker nodes |
US11921672B2 (en) | 2017-07-31 | 2024-03-05 | Splunk Inc. | Query execution at a remote heterogeneous data store of a data fabric service |
US10459769B2 (en) * | 2017-08-04 | 2019-10-29 | Unisys Corporation | Elastic container management system |
US10592315B2 (en) * | 2017-08-28 | 2020-03-17 | General Electric Company | Software container messaging mechanism |
US10691480B2 (en) * | 2017-08-30 | 2020-06-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Apparatus and method for configuring and enabling virtual applications |
US11151137B2 (en) | 2017-09-25 | 2021-10-19 | Splunk Inc. | Multi-partition operation in combination operations |
US10896182B2 (en) | 2017-09-25 | 2021-01-19 | Splunk Inc. | Multi-partitioning determination for combination operations |
JP6612826B2 (ja) * | 2017-09-29 | 2019-11-27 | 株式会社日立製作所 | コンテナ管理装置、コンテナ管理方法、及びコンテナ管理プログラム |
US10740143B2 (en) | 2017-10-06 | 2020-08-11 | International Business Machines Corporation | Controlling asynchronous tasks |
CN109710397A (zh) * | 2017-10-26 | 2019-05-03 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、存储介质、处理器和系统 |
US10805181B2 (en) | 2017-10-29 | 2020-10-13 | Nicira, Inc. | Service operation chaining |
US10956563B2 (en) * | 2017-11-22 | 2021-03-23 | Aqua Security Software, Ltd. | System for securing software containers with embedded agent |
KR102310509B1 (ko) * | 2017-11-22 | 2021-10-08 | 한국전자기술연구원 | 컨테이너 기반 지능형 컴포넌트에 대한 원격 호출 방법 |
KR102310515B1 (ko) * | 2017-11-22 | 2021-10-08 | 한국전자기술연구원 | 지능형 컴포넌트를 위한 컨테이너 기반 관리 방법 |
US11055134B2 (en) * | 2017-11-30 | 2021-07-06 | International Business Machines Corporation | Performing an action on a composite of software instances |
KR102016238B1 (ko) | 2017-12-05 | 2019-08-29 | 숭실대학교산학협력단 | 도커 컨테이너 관리 시스템 및 방법, 이를 수행하기 위한 기록매체 |
US11030016B2 (en) | 2017-12-07 | 2021-06-08 | International Business Machines Corporation | Computer server application execution scheduling latency reduction |
KR20190070659A (ko) * | 2017-12-13 | 2019-06-21 | 주식회사 넥스클라우드 | 컨테이너 기반의 자원 할당을 지원하는 클라우드 컴퓨팅 장치 및 방법 |
WO2019133326A1 (en) * | 2017-12-27 | 2019-07-04 | Daniel Maurice Lerner | Securing temporal digital communications |
US20190034716A1 (en) * | 2017-12-28 | 2019-01-31 | Intel Corporation | Privacy-preserving demographics identification |
US11023529B2 (en) | 2018-01-04 | 2021-06-01 | Red Hat, Inc. | System and method for generating container image suggestions |
US10997283B2 (en) * | 2018-01-08 | 2021-05-04 | Aqua Security Software, Ltd. | System for securing software containers with encryption and embedded agent |
US10740132B2 (en) | 2018-01-30 | 2020-08-11 | Veritas Technologies Llc | Systems and methods for updating containers |
US11010185B2 (en) * | 2018-01-30 | 2021-05-18 | Vmware, Inc. | Monitoring applications running on containers |
US10956593B2 (en) | 2018-02-15 | 2021-03-23 | International Business Machines Corporation | Sharing of data among containers running on virtualized operating systems |
US10083059B1 (en) | 2018-03-19 | 2018-09-25 | Capital One Services, Llc | Method and system of hydrating of virtual machines |
US10805192B2 (en) | 2018-03-27 | 2020-10-13 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
US10768998B2 (en) | 2018-04-05 | 2020-09-08 | International Business Machines Corporation | Workload management with data access awareness in a computing cluster |
US10585714B2 (en) | 2018-04-05 | 2020-03-10 | International Business Machines Corporation | Workload management with data access awareness using an ordered list of hosts in a computing cluster |
US10761891B2 (en) | 2018-04-05 | 2020-09-01 | International Business Machines Corporation | Workload management with data access awareness by aggregating file locality information in a computing cluster |
US11132293B2 (en) | 2018-04-10 | 2021-09-28 | Red Hat Israel, Ltd. | Intelligent garbage collector for containers |
US20190317825A1 (en) * | 2018-04-16 | 2019-10-17 | Kazuhm, Inc. | System for managing deployment of distributed computing resources |
US11307980B2 (en) | 2018-04-20 | 2022-04-19 | Seagate Technology Llc | Distributed data storage system with passthrough operations |
US10732903B2 (en) | 2018-04-27 | 2020-08-04 | Hewlett Packard Enterprise Development Lp | Storage controller sub-LUN ownership mapping and alignment |
US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
US11169996B2 (en) | 2018-05-15 | 2021-11-09 | Red Hat, Inc. | Query optimizer injection for dynamically provisioned database containers |
US11132324B2 (en) | 2018-06-18 | 2021-09-28 | Seagate Technology, Llc | Data network with container virtualization |
KR102092458B1 (ko) * | 2018-06-19 | 2020-03-23 | 한국과학기술원 | 서버리스 컴퓨팅 환경에서 가상화된 gpu 자원 지원 방법 및 시스템 |
KR102092459B1 (ko) * | 2018-06-20 | 2020-03-23 | 한국과학기술원 | 컨테이너 기반 가상화 환경에서 gpu 메모리 자원 관리 및 스케줄링 방법 및 시스템 |
CN109062658B (zh) * | 2018-06-29 | 2021-06-04 | 优刻得科技股份有限公司 | 实现计算资源服务化的调度方法、装置、介质、设备及系统 |
US11263098B2 (en) | 2018-07-02 | 2022-03-01 | Pivotal Software, Inc. | Database segment load balancer |
CN108874549B (zh) * | 2018-07-19 | 2021-02-02 | 北京百度网讯科技有限公司 | 资源复用方法、装置、终端和计算机可读存储介质 |
JP7037059B2 (ja) * | 2018-07-23 | 2022-03-16 | 日本電信電話株式会社 | リソース管理システム、および、リソース割当プログラム |
CN110764882A (zh) * | 2018-07-25 | 2020-02-07 | 北京京东尚科信息技术有限公司 | 分布式管理方法、分布式管理系统及装置 |
WO2020036482A1 (en) * | 2018-08-15 | 2020-02-20 | Mimos Berhad | System and method for identifying container image and dynamically creating the container image |
US11057273B2 (en) * | 2018-08-22 | 2021-07-06 | Verizon Media Inc. | Decentralized auto-scaling of network architectures |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
US11070590B2 (en) * | 2018-09-14 | 2021-07-20 | Northrop Grumman Systems Corporation | System and method for secure multitenant operations of a distributed computing cluster |
CN110955501B (zh) * | 2018-09-27 | 2024-06-14 | 北京京东尚科信息技术有限公司 | 服务请求处理方法、装置、电子设备及可读介质 |
US11146474B2 (en) * | 2018-09-28 | 2021-10-12 | Atlassian Pty Ltd. | Systems and methods for testing resilience of a distributed network |
US10860078B2 (en) * | 2018-10-25 | 2020-12-08 | Dell Products, L.P. | Managing power request during cluster operations |
US11210361B2 (en) * | 2018-11-01 | 2021-12-28 | Bank Of Montreal | Systems and methods for generating a snapshot view of virtual infrastructure |
KR102160119B1 (ko) * | 2018-11-07 | 2020-09-25 | 숭실대학교산학협력단 | 도커 컨테이너 로그 분석 프레임워크 장치 및 이를 이용한 특성 분석 방법 |
CN109542600B (zh) * | 2018-11-15 | 2020-12-25 | 口碑(上海)信息技术有限公司 | 分布式任务调度系统及方法 |
US11086908B2 (en) | 2018-11-20 | 2021-08-10 | International Business Machines Corporation | Ontology for working with container images |
KR102650976B1 (ko) * | 2018-11-26 | 2024-03-26 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
KR101992066B1 (ko) * | 2018-11-30 | 2019-06-21 | 건국대학교 산학협력단 | 컨테이너 관리 방법 및 장치 |
US10841153B2 (en) | 2018-12-04 | 2020-11-17 | Bank Of America Corporation | Distributed ledger technology network provisioner |
US10909740B2 (en) * | 2018-12-07 | 2021-02-02 | Intel Corporation | Apparatus and method for processing telemetry data in a virtualized graphics processor |
US10922123B2 (en) * | 2018-12-12 | 2021-02-16 | Microsoft Technology Licensing, Llc | Container migration in computing systems |
CN109918180A (zh) * | 2018-12-14 | 2019-06-21 | 深圳壹账通智能科技有限公司 | 一种任务调度方法、装置、计算机系统及可读存储介质 |
US11579908B2 (en) | 2018-12-18 | 2023-02-14 | Vmware, Inc. | Containerized workload scheduling |
KR102125354B1 (ko) * | 2018-12-19 | 2020-06-22 | 주식회사 와이즈넛 | 마이크로 서비스 아키텍처를 사용하는 스트리밍 빅데이터 처리 모듈 관리를 위한 수퍼바이저 시스템 및 그 방법 |
KR102032521B1 (ko) | 2018-12-26 | 2019-10-15 | 래블업(주) | 컨테이너 기반의 gpu 가상화 방법 및 시스템 |
US10831399B2 (en) * | 2019-01-28 | 2020-11-10 | EMC IP Holding Company LLC | Method and system for enabling agentless backup and restore operations on a container orchestration platform |
US10810003B2 (en) * | 2019-01-30 | 2020-10-20 | Salesforce.Com, Inc. | Method and system for optimization of container image layering |
US11726758B2 (en) * | 2019-02-07 | 2023-08-15 | Microsoft Technology Licensing, Llc | Efficient scaling of a container-based application in a distributed computing system |
KR102223141B1 (ko) | 2019-02-12 | 2021-03-04 | 성균관대학교산학협력단 | 컨테이너 환경에서의 스토리지 드라이버의 동작 방법 및 스토리지 드라이버 장치 |
US11397604B2 (en) | 2019-02-22 | 2022-07-26 | Vmware, Inc. | Service path selection in load balanced manner |
KR20200109819A (ko) * | 2019-03-14 | 2020-09-23 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
CN110012087B (zh) * | 2019-03-28 | 2022-02-01 | 中国工商银行股份有限公司 | 数据处理系统及数据处理方法 |
CN111752701B (zh) * | 2019-03-29 | 2024-01-26 | 北京数安鑫云信息技术有限公司 | 一种系统集群及其资源调度方法 |
KR102101602B1 (ko) * | 2019-04-04 | 2020-04-17 | 한국전자통신연구원 | 트래픽 관리 장치 및 방법 |
US20200341789A1 (en) * | 2019-04-25 | 2020-10-29 | Vmware, Inc. | Containerized workload scheduling |
WO2020220216A1 (en) | 2019-04-29 | 2020-11-05 | Splunk Inc. | Search time estimate in data intake and query system |
US11715051B1 (en) | 2019-04-30 | 2023-08-01 | Splunk Inc. | Service provider instance recommendations using machine-learned classifications and reconciliation |
US11836505B2 (en) * | 2019-05-07 | 2023-12-05 | Ab Initio Technology Llc | Dynamic distribution of container images |
WO2020230673A1 (ja) * | 2019-05-10 | 2020-11-19 | 日本電気株式会社 | 環境構築支援システム、装置、方法、プログラム |
DE102019112485A1 (de) * | 2019-05-13 | 2020-11-19 | Eberhard-Karls-Universität Tübingen | Verfahren zum selektiven Ausführen eines Containers |
US11093288B2 (en) * | 2019-06-13 | 2021-08-17 | Vmware, Inc. | Systems and methods for cluster resource balancing in a hyper-converged infrastructure |
US10922125B2 (en) | 2019-06-13 | 2021-02-16 | Micro Focus Llc | Capability liveness of containerized services |
US11150935B2 (en) | 2019-07-05 | 2021-10-19 | International Business Machines Corporation | Container-based applications |
WO2021006899A1 (en) * | 2019-07-10 | 2021-01-14 | Hewlett-Packard Development Company, L.P. | Executing containers during idle states |
RU2722576C1 (ru) * | 2019-07-23 | 2020-06-01 | Общество с ограниченной ответственностью "РадиоТех" | Способ автоматизированного беспроводного мониторинга наполнения и очистки мусорного контейнера и устройство для его осуществления |
US11669246B2 (en) * | 2019-08-19 | 2023-06-06 | International Business Machines Corporation | Storage allocation enhancement of microservices |
US11669365B1 (en) | 2019-08-26 | 2023-06-06 | Amazon Technologies, Inc. | Task pool for managed compute instances |
US11294733B2 (en) * | 2019-09-12 | 2022-04-05 | Pivotal Software, Inc. | Dynamic autoscaler for cloud platform |
WO2021055952A1 (en) | 2019-09-20 | 2021-03-25 | Sonatus, Inc. | System, method, and apparatus to support mixed network communications on a vehicle |
US11538287B2 (en) | 2019-09-20 | 2022-12-27 | Sonatus, Inc. | System, method, and apparatus for managing vehicle data collection |
CN110602253B (zh) * | 2019-09-30 | 2022-04-26 | 新华三大数据技术有限公司 | 一种任务调度方法、装置及系统 |
US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
US11140218B2 (en) | 2019-10-30 | 2021-10-05 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11475022B2 (en) * | 2019-11-13 | 2022-10-18 | Nutanix, Inc. | System and method for constructing a compound object in a distributed object storage system |
US11743155B2 (en) * | 2019-11-14 | 2023-08-29 | Trideum Corporation | Systems and methods of monitoring and controlling remote assets |
KR20210059229A (ko) * | 2019-11-15 | 2021-05-25 | 한국전자기술연구원 | 클라우드 기반 서버리스 플랫폼에서의 실시간성 서비스 제공 방법 |
US11537809B2 (en) | 2019-11-21 | 2022-12-27 | Kyndryl, Inc. | Dynamic container grouping |
US11422844B1 (en) | 2019-11-27 | 2022-08-23 | Amazon Technologies, Inc. | Client-specified network interface configuration for serverless container management service |
US11392422B1 (en) * | 2019-11-27 | 2022-07-19 | Amazon Technologies, Inc. | Service-managed containers for container orchestration service |
CN112882827A (zh) * | 2019-11-29 | 2021-06-01 | 伊姆西Ip控股有限责任公司 | 用于负载均衡的方法、电子设备和计算机程序产品 |
US11334364B2 (en) | 2019-12-16 | 2022-05-17 | Microsoft Technology Licensing, Llc | Layered composite boot device and file system for operating system booting in file system virtualization environments |
KR102090911B1 (ko) | 2019-12-16 | 2020-03-19 | 주식회사 케이비시스 | 컨테이너 기반의 클라우드 서비스 제공 시스템 |
CN114846444A (zh) * | 2019-12-19 | 2022-08-02 | 皇家飞利浦有限公司 | 基于动态要求的动态个性化平台生成 |
KR102318863B1 (ko) * | 2019-12-30 | 2021-10-28 | 주식회사 카카오 | 클라우드 서비스를 제공하는 서버의 동작 방법 |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
JP7476541B2 (ja) * | 2020-01-28 | 2024-05-01 | コニカミノルタ株式会社 | 情報処理システム、制御装置、周辺装置制御方法および周辺装置制御プログラム |
US11922222B1 (en) | 2020-01-30 | 2024-03-05 | Splunk Inc. | Generating a modified component for a data intake and query system using an isolated execution environment image |
JP7455601B2 (ja) | 2020-02-05 | 2024-03-26 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
WO2021178979A1 (en) * | 2020-03-06 | 2021-09-10 | Sonatus, Inc. | System, method, and apparatus for managing vehicle data collection |
US11772583B2 (en) | 2020-03-06 | 2023-10-03 | Sonatus, Inc. | System, method, and apparatus for managing vehicle automation |
KR102209044B1 (ko) * | 2020-03-12 | 2021-01-29 | 주식회사 케이비시스 | 클라우드 네이티브 데이터베이스 구조를 갖는 클라우드 시스템 |
US11487571B2 (en) * | 2020-03-30 | 2022-11-01 | Wipro Limited | Method and system for efficient utilization of resources in containers |
US11528219B2 (en) | 2020-04-06 | 2022-12-13 | Vmware, Inc. | Using applied-to field to identify connection-tracking records for different interfaces |
US11632294B2 (en) * | 2020-05-19 | 2023-04-18 | Microsoft Technology Licensing, Llc | Configuration techniques for managed host operating systems and containerized applications instantiated thereby |
US11687379B2 (en) * | 2020-05-27 | 2023-06-27 | Red Hat, Inc. | Management of containerized clusters by virtualization systems |
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 |
US11748161B1 (en) | 2020-06-30 | 2023-09-05 | Stripe, Inc. | Cluster job submission |
CN111813497A (zh) * | 2020-06-30 | 2020-10-23 | 绿盟科技集团股份有限公司 | 一种容器环境异常检测的方法、装置、介质及计算机设备 |
CN111970240B (zh) * | 2020-07-10 | 2023-03-24 | 北京金山云网络技术有限公司 | 集群纳管方法、装置及电子设备 |
CN111831450B (zh) * | 2020-07-20 | 2023-07-28 | 北京百度网讯科技有限公司 | 用于分配服务器资源的方法、装置、电子设备及存储介质 |
CN111880899B (zh) * | 2020-07-27 | 2022-08-16 | 山东迪特智联信息科技有限责任公司 | 一种基于云原生架构的大数据流处理方法和装置 |
US11336504B2 (en) | 2020-08-24 | 2022-05-17 | Juniper Networks, Inc. | Intent-based distributed alarm service |
EP4222597A4 (en) * | 2020-09-30 | 2024-06-19 | Nokia Technologies Oy | COORDINATION OF TASK RESPONSIBILITIES |
US11422871B1 (en) | 2020-09-30 | 2022-08-23 | Amazon Technologies, Inc. | Event archiving and replay |
US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
US11836523B2 (en) | 2020-10-28 | 2023-12-05 | Red Hat, Inc. | Introspection of a containerized application in a runtime environment |
CN112035221B (zh) * | 2020-11-03 | 2021-01-26 | 江苏苏宁银行股份有限公司 | 一种基于定时调度的PaaS平台无效容器清理方法和系统 |
US11256493B1 (en) | 2020-11-03 | 2022-02-22 | Bank Of America Corporation | Container image optimizer |
US11762850B2 (en) | 2020-11-09 | 2023-09-19 | International Business Machines Corporation | Content-aware node selection for container creation |
KR102446717B1 (ko) * | 2020-11-12 | 2022-09-27 | 한국과학기술정보연구원 | 컨테이너 처리 방법, 컨테이너 처리 장치 및 컨테이너 처리 시스템 |
US11740936B2 (en) * | 2020-11-16 | 2023-08-29 | Diamanti, Inc. | Method and system for managing cloud resources |
CN112486513B (zh) * | 2020-11-25 | 2022-08-12 | 湖南麒麟信安科技股份有限公司 | 一种基于容器的集群管理方法及系统 |
US20220171646A1 (en) * | 2020-11-30 | 2022-06-02 | Red Hat, Inc. | Scalable visualization of a containerized application in a multiple-cluster environment |
US11853807B1 (en) | 2020-12-01 | 2023-12-26 | Amazon Technologies, Inc. | Cluster scaling based on task state information |
US11366650B1 (en) * | 2020-12-04 | 2022-06-21 | International Business Machines Corporation | Automatic generation of affinity and anti-affinity rules |
US11941453B2 (en) | 2020-12-08 | 2024-03-26 | International Business Machines Corporation | Containerized computing environments |
US11481254B2 (en) * | 2020-12-14 | 2022-10-25 | Adp, Inc. | Payroll data processing server |
US11611625B2 (en) * | 2020-12-15 | 2023-03-21 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11995350B2 (en) | 2020-12-23 | 2024-05-28 | Red Hat, Inc. | Prefetching container data in a data storage system |
CN112698914B (zh) * | 2020-12-30 | 2022-12-27 | 北京理工大学 | 一种工作流任务容器生成系统及方法 |
US11797287B1 (en) | 2021-03-17 | 2023-10-24 | Amazon Technologies, Inc. | Automatically terminating deployment of containerized applications |
CN113342359B (zh) * | 2021-05-13 | 2023-03-24 | 烽火通信科技股份有限公司 | 容器镜像文件智能生成方法、装置、设备及存储介质 |
US20220385532A1 (en) * | 2021-05-26 | 2022-12-01 | Red Hat, Inc. | Adding host systems to existing containerized clusters |
CN113254156B (zh) * | 2021-05-31 | 2024-04-09 | 深信服科技股份有限公司 | 一种容器组部署方法、装置、电子设备及存储介质 |
US11995466B1 (en) | 2021-06-30 | 2024-05-28 | Amazon Technologies, Inc. | Scaling down computing resource allocations for execution of containerized applications |
US11989586B1 (en) | 2021-06-30 | 2024-05-21 | Amazon Technologies, Inc. | Scaling up computing resource allocations for execution of containerized applications |
US11892418B1 (en) | 2021-06-30 | 2024-02-06 | Amazon Technologies, Inc. | Container image inspection and optimization |
US11782764B2 (en) | 2021-07-07 | 2023-10-10 | International Business Machines Corporation | Differentiated workload telemetry |
US11651090B2 (en) * | 2021-07-13 | 2023-05-16 | Graphcore Ltd. | Terminating distributed trusted execution environment via confirmation messages |
US11651089B2 (en) * | 2021-07-13 | 2023-05-16 | Graphcore Ltd. | Terminating distributed trusted execution environment via self-isolation |
US11947954B2 (en) * | 2021-08-12 | 2024-04-02 | Qnap Systems, Inc. | Electronic apparatus adapted for container and software updating method for running container system |
JP7496807B2 (ja) | 2021-09-28 | 2024-06-07 | Kddi株式会社 | コンテナ実行基盤におけるコンテナネットワーク方式最適化方法およびシステム |
US11765098B1 (en) * | 2022-03-22 | 2023-09-19 | Amazon Technologies, Inc. | Customized cross-premise resource selection for containerized applications |
US11914637B2 (en) * | 2022-07-25 | 2024-02-27 | Sap Se | Image scaling cloud database |
CN117857158A (zh) * | 2023-12-25 | 2024-04-09 | 慧之安信息技术股份有限公司 | 一种基于容器技术的数据隔离方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7814491B1 (en) * | 2004-04-14 | 2010-10-12 | Oracle America, Inc. | Method and apparatus for managing system resources using a container model |
US20120042079A1 (en) * | 2004-06-29 | 2012-02-16 | Ackerman Mark D | Techniques for providing services and establishing processing environments |
US8219987B1 (en) * | 2007-08-24 | 2012-07-10 | Vmware, Inc. | Optimized virtual machine specification for provisioning application specific runtime environment |
US20130191527A1 (en) * | 2012-01-23 | 2013-07-25 | International Business Machines Corporation | Dynamically building a set of compute nodes to host the user's workload |
WO2014047073A1 (en) * | 2012-09-20 | 2014-03-27 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US20140130038A1 (en) * | 2010-04-26 | 2014-05-08 | Vmware, Inc. | Cloud platform architecture |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5727211A (en) * | 1995-11-09 | 1998-03-10 | Chromatic Research, Inc. | System and method for fast context switching between tasks |
US7007276B1 (en) * | 1999-09-28 | 2006-02-28 | International Business Machines Corporation | Method, system and program products for managing groups of partitions of a computing environment |
US7000230B1 (en) * | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
FI116166B (fi) * | 2002-06-20 | 2005-09-30 | Nokia Corp | Menetelmä ja järjestelmä sovellusistuntojen suorittamiseksi elektroniikkalaitteessa, ja elektroniikkalaite |
US7383550B2 (en) * | 2002-12-23 | 2008-06-03 | International Business Machines Corporation | Topology aware grid services scheduler architecture |
US7552426B2 (en) * | 2003-10-14 | 2009-06-23 | Microsoft Corporation | Systems and methods for using synthetic instructions in a virtual machine |
US7506338B2 (en) * | 2004-08-30 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for simplifying the deployment and serviceability of commercial software environments |
US8732182B2 (en) | 2004-12-02 | 2014-05-20 | Desktopsites Inc. | System and method for launching a resource in a network |
US7752624B2 (en) * | 2004-12-21 | 2010-07-06 | Hewlett-Packard Development Company, L.P. | System and method for associating workload management definitions with computing containers |
US20060168575A1 (en) * | 2005-01-21 | 2006-07-27 | Ankur Bhatt | Defining a software deployment |
US7950010B2 (en) * | 2005-01-21 | 2011-05-24 | Sap Ag | Software deployment system |
US7805706B1 (en) * | 2005-06-21 | 2010-09-28 | Unisys Corporation | Process for optimizing software components for an enterprise resource planning (ERP) application SAP on multiprocessor servers |
US20070118657A1 (en) * | 2005-11-22 | 2007-05-24 | Motorola, Inc. | Method and system for sharing podcast information |
US8250559B2 (en) * | 2006-04-12 | 2012-08-21 | Oracle America, Inc. | Supporting per-program classpaths with class sharing in a multi-tasking virtual machine |
EP2049956B1 (en) * | 2006-08-08 | 2016-03-16 | Siemens Industry, Inc. | Devices, systems, and methods for communicating with a plc |
US8621030B2 (en) * | 2006-09-28 | 2013-12-31 | Intel Corporation | Techniques to copy an operating system |
US8752059B2 (en) * | 2007-03-27 | 2014-06-10 | International Business Machines Corporation | Computer data processing capacity planning using dependency relationships from a configuration management database |
US8156502B1 (en) | 2007-06-08 | 2012-04-10 | Hewlett-Packard Development Company, L.P. | Computer resource allocation as a function of demand type |
US20090100435A1 (en) * | 2007-10-11 | 2009-04-16 | Microsoft Corporation | Hierarchical reservation resource scheduling infrastructure |
US8893141B2 (en) * | 2008-01-28 | 2014-11-18 | Microsoft Corporation | System and method for describing applications for manageability and efficient scale-up deployment |
US8935692B2 (en) * | 2008-05-22 | 2015-01-13 | Red Hat, Inc. | Self-management of virtual machines in cloud-based networks |
US20100153941A1 (en) * | 2008-12-12 | 2010-06-17 | Lazar Borissov | Flexible content update via deployment order template |
US9529636B2 (en) * | 2009-03-26 | 2016-12-27 | Microsoft Technology Licensing, Llc | System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine |
US8412810B1 (en) | 2010-07-02 | 2013-04-02 | Adobe Systems Incorporated | Provisioning and managing a cluster deployed on a cloud |
US8621069B1 (en) * | 2010-09-03 | 2013-12-31 | Adobe Systems Incorporated | Provisioning a computing application executing on a cloud to a client device |
US8661120B2 (en) * | 2010-09-21 | 2014-02-25 | Amazon Technologies, Inc. | Methods and systems for dynamically managing requests for computing capacity |
US8484353B1 (en) * | 2010-09-28 | 2013-07-09 | Amazon Technologies, Inc. | Resource placement templates for virtual networks |
US9471384B2 (en) * | 2012-03-16 | 2016-10-18 | Rackspace Us, Inc. | Method and system for utilizing spare cloud resources |
US9552215B2 (en) * | 2011-03-08 | 2017-01-24 | Rackspace Us, Inc. | Method and system for transferring a virtual machine |
US9043767B2 (en) * | 2011-04-12 | 2015-05-26 | Pivotal Software, Inc. | Release management system for a multi-node application |
WO2013009287A1 (en) * | 2011-07-11 | 2013-01-17 | Hewlett-Packard Development Company, L.P. | Virtual machine placement |
US8788855B2 (en) * | 2011-09-23 | 2014-07-22 | Microsoft Corporation | Cluster computational capacity level switching based on demand prediction and stability constraint and power consumption management |
EP2746936A4 (en) * | 2011-10-24 | 2015-03-11 | Huawei Tech Co Ltd | METHOD AND SYSTEM FOR STARTING AN APPLICATION IN A LINUX CONTAINER |
US9003141B2 (en) | 2011-11-14 | 2015-04-07 | Ca, Inc. | Enhanced software application platform |
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 |
KR101781063B1 (ko) * | 2012-04-12 | 2017-09-22 | 한국전자통신연구원 | 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치 |
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 |
US20140173618A1 (en) * | 2012-10-14 | 2014-06-19 | Xplenty Ltd. | System and method for management of big data sets |
KR101540631B1 (ko) * | 2012-12-28 | 2015-07-30 | 삼성에스디에스 주식회사 | 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체 |
US20140196038A1 (en) | 2013-01-08 | 2014-07-10 | Commvault Systems, Inc. | Virtual machine management in a data storage system |
US10552774B2 (en) | 2013-02-11 | 2020-02-04 | Amazon Technologies, Inc. | Cost-minimizing task scheduler |
CN112134741B (zh) * | 2013-11-25 | 2023-09-05 | 亚马逊科技公司 | 分布式系统中的客户导向的联网限制 |
US9342346B2 (en) * | 2014-07-27 | 2016-05-17 | Strato Scale Ltd. | Live migration of virtual machines that use externalized memory pages |
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 |
US9256467B1 (en) | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
KR101951273B1 (ko) * | 2014-12-04 | 2019-02-22 | 노키아 솔루션스 앤드 네트웍스 게엠베하 운트 코. 카게 | 가상화된 자원들의 조종 |
US10609122B1 (en) * | 2015-06-29 | 2020-03-31 | Amazon Technologies, Inc. | Instance backed building or place |
US10261782B2 (en) * | 2015-12-18 | 2019-04-16 | Amazon Technologies, Inc. | Software container registry service |
US10572226B2 (en) * | 2016-12-21 | 2020-02-25 | Aon Global Operations Ltd (Singapore Branch) | Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment |
US10884790B1 (en) * | 2018-05-02 | 2021-01-05 | Amazon Technologies, Inc. | Eliding redundant copying for virtual machine migration |
-
2014
- 2014-11-11 US US14/538,663 patent/US9256467B1/en active Active
-
2015
- 2015-11-10 RU RU2017116433A patent/RU2666475C1/ru active
- 2015-11-10 WO PCT/US2015/059983 patent/WO2016077367A1/en active Application Filing
- 2015-11-10 SG SG10201913839VA patent/SG10201913839VA/en unknown
- 2015-11-10 RU RU2018130629A patent/RU2704734C2/ru active
- 2015-11-10 KR KR1020197005048A patent/KR102042988B1/ko active IP Right Grant
- 2015-11-10 JP JP2017524393A patent/JP6522750B2/ja active Active
- 2015-11-10 KR KR1020177015815A patent/KR101952573B1/ko active IP Right Grant
- 2015-11-10 EP EP15804248.1A patent/EP3218808A1/en not_active Withdrawn
- 2015-11-10 SG SG11201703680WA patent/SG11201703680WA/en unknown
- 2015-11-10 AU AU2015346530A patent/AU2015346530C1/en active Active
- 2015-11-10 CN CN201580061134.7A patent/CN107111519A/zh active Pending
-
2016
- 2016-01-26 US US15/007,113 patent/US9996380B2/en active Active
-
2018
- 2018-06-08 US US16/004,050 patent/US10838756B2/en active Active
-
2019
- 2019-04-24 JP JP2019082701A patent/JP6856696B2/ja active Active
- 2019-07-04 AU AU2019204805A patent/AU2019204805B2/en active Active
- 2019-10-03 RU RU2019131233A patent/RU2751576C2/ru active
-
2020
- 2020-06-05 US US16/894,395 patent/US11314541B2/en active Active
- 2020-12-16 AU AU2020289775A patent/AU2020289775B2/en active Active
-
2022
- 2022-04-25 US US17/728,830 patent/US11669362B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7814491B1 (en) * | 2004-04-14 | 2010-10-12 | Oracle America, Inc. | Method and apparatus for managing system resources using a container model |
US20120042079A1 (en) * | 2004-06-29 | 2012-02-16 | Ackerman Mark D | Techniques for providing services and establishing processing environments |
US8219987B1 (en) * | 2007-08-24 | 2012-07-10 | Vmware, Inc. | Optimized virtual machine specification for provisioning application specific runtime environment |
US20140130038A1 (en) * | 2010-04-26 | 2014-05-08 | Vmware, Inc. | Cloud platform architecture |
US20130191527A1 (en) * | 2012-01-23 | 2013-07-25 | International Business Machines Corporation | Dynamically building a set of compute nodes to host the user's workload |
WO2014047073A1 (en) * | 2012-09-20 | 2014-03-27 | Amazon Technologies, Inc. | Automated profiling of resource usage |
Cited By (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111263933A (zh) * | 2017-09-30 | 2020-06-09 | 甲骨文国际公司 | 部署的容器平台中的实时调试实例 |
CN107844371A (zh) * | 2017-10-12 | 2018-03-27 | 北京京东尚科信息技术有限公司 | 任务处理方法、系统及电子设备 |
US11431794B2 (en) | 2017-11-08 | 2022-08-30 | Huawei Cloud Computing Technologies Co., Ltd. | Service deployment method and function management platform under serverless architecture |
CN110612705A (zh) * | 2017-11-08 | 2019-12-24 | 华为技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
CN110612705B (zh) * | 2017-11-08 | 2020-09-25 | 华为技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
CN111527474B (zh) * | 2018-01-03 | 2023-12-26 | 国际商业机器公司 | 软件功能的动态交付 |
CN111527474A (zh) * | 2018-01-03 | 2020-08-11 | 国际商业机器公司 | 软件功能的动态交付 |
CN108920259A (zh) * | 2018-03-30 | 2018-11-30 | 华为技术有限公司 | 深度学习作业调度方法、系统和相关设备 |
US11954521B2 (en) | 2018-03-30 | 2024-04-09 | Huawei Cloud Computing Technologies Co., Ltd. | Deep learning job scheduling method and system and related device |
CN109067840A (zh) * | 2018-06-29 | 2018-12-21 | 优刻得科技股份有限公司 | 人工智能在线服务的方法、系统和存储介质 |
CN109491762A (zh) * | 2018-11-09 | 2019-03-19 | 网易(杭州)网络有限公司 | 容器状态控制方法及装置、存储介质、电子设备 |
CN109656723A (zh) * | 2019-03-13 | 2019-04-19 | 联想(北京)有限公司 | 容器资源调度方法及装置 |
CN110187869A (zh) * | 2019-05-14 | 2019-08-30 | 上海直真君智科技有限公司 | 一种大数据异构存储计算模型间的统一互操作系统及方法 |
CN110262871A (zh) * | 2019-05-17 | 2019-09-20 | 平安科技(深圳)有限公司 | 容器应用的容器实例启停方法、装置、计算机设备及存储介质 |
CN110262871B (zh) * | 2019-05-17 | 2024-01-23 | 平安科技(深圳)有限公司 | 容器应用的容器实例启停方法、装置、计算机设备及存储介质 |
CN110134519A (zh) * | 2019-05-21 | 2019-08-16 | 中国太平洋保险(集团)股份有限公司 | 一种基于容器平台实现网站管理的控制方法及装置 |
CN110209380A (zh) * | 2019-05-30 | 2019-09-06 | 上海直真君智科技有限公司 | 一种面向大数据异构模型的统一动态元数据处理方法 |
CN110333939B (zh) * | 2019-06-17 | 2023-11-14 | 腾讯科技(成都)有限公司 | 任务混合调度方法、装置、调度服务器及资源服务器 |
CN110333939A (zh) * | 2019-06-17 | 2019-10-15 | 腾讯科技(成都)有限公司 | 任务混合调度方法、装置、调度服务器及资源服务器 |
CN110347476A (zh) * | 2019-06-27 | 2019-10-18 | 苏州浪潮智能科技有限公司 | 一种信息化系统的耗时任务管理方法和装置 |
CN110311973A (zh) * | 2019-06-28 | 2019-10-08 | 东北大学 | 一种面向多租户的影像云服务系统及方法 |
CN110311973B (zh) * | 2019-06-28 | 2021-06-01 | 东北大学 | 一种面向多租户的影像云服务系统及方法 |
CN110580194A (zh) * | 2019-08-29 | 2019-12-17 | 上海仪电(集团)有限公司中央研究院 | 基于内存热插拔技术的容器调度方法及管理节点调度器 |
WO2021051576A1 (zh) * | 2019-09-19 | 2021-03-25 | 平安科技(深圳)有限公司 | 弹性执行热容器方法、装置、设备和存储介质 |
CN110838939A (zh) * | 2019-10-11 | 2020-02-25 | 许继集团有限公司 | 一种基于轻量级容器的调度方法及边缘物联管理平台 |
CN114424172B (zh) * | 2019-10-11 | 2023-03-21 | 国际商业机器公司 | 虚拟存储器元数据管理 |
CN110838939B (zh) * | 2019-10-11 | 2022-04-08 | 许继集团有限公司 | 一种基于轻量级容器的调度方法及边缘物联管理平台 |
CN114424172A (zh) * | 2019-10-11 | 2022-04-29 | 国际商业机器公司 | 虚拟存储器元数据管理 |
CN110955490A (zh) * | 2019-10-25 | 2020-04-03 | 北京浪潮数据技术有限公司 | 一种资源的异步创建方法、装置、设备及介质 |
CN111078356A (zh) * | 2019-11-22 | 2020-04-28 | 北京达佳互联信息技术有限公司 | Gpu集群资源控制系统、方法、装置、设备及存储介质 |
CN111176830A (zh) * | 2019-12-03 | 2020-05-19 | 支付宝实验室(新加坡)有限公司 | 信息流的分配方法、装置及服务器系统 |
CN111176830B (zh) * | 2019-12-03 | 2024-04-26 | 先进新星技术(新加坡)控股有限公司 | 信息流的分配方法、装置及服务器系统 |
CN111240822B (zh) * | 2020-01-15 | 2023-11-17 | 华为技术有限公司 | 任务调度方法、装置、系统及存储介质 |
CN111240822A (zh) * | 2020-01-15 | 2020-06-05 | 华为技术有限公司 | 任务调度方法、装置、系统及存储介质 |
CN111539198B (zh) * | 2020-04-15 | 2023-07-04 | 北京宝兰德软件股份有限公司 | 一种基于Java的表单验证方法及装置 |
CN111539198A (zh) * | 2020-04-15 | 2020-08-14 | 北京宝兰德软件股份有限公司 | 一种基于Java的表单验证方法及装置 |
CN113779517A (zh) * | 2020-06-09 | 2021-12-10 | 武汉斗鱼鱼乐网络科技有限公司 | 一种权限获取方法、装置、设备及存储介质 |
CN113821331A (zh) * | 2020-06-18 | 2021-12-21 | 北京字节跳动网络技术有限公司 | 一种服务获取方法、装置、终端设备及介质 |
CN111935110B (zh) * | 2020-07-24 | 2022-05-06 | 北京金山云网络技术有限公司 | 一种对租户访问容器实例的权限的控制方法和装置 |
CN111935110A (zh) * | 2020-07-24 | 2020-11-13 | 北京金山云网络技术有限公司 | 一种对租户访问容器实例的权限的控制方法和装置 |
CN114296405A (zh) * | 2020-09-22 | 2022-04-08 | 罗克韦尔自动化技术公司 | 使用容器编排系统和操作技术设备实现无服务器功能 |
CN114296405B (zh) * | 2020-09-22 | 2023-12-26 | 罗克韦尔自动化技术公司 | 使用容器编排系统和操作技术设备实现无服务器功能 |
CN113010261A (zh) * | 2021-02-20 | 2021-06-22 | 博普乐科技(北京)有限公司 | 一种虚拟编程环境构建方法 |
CN113364706B (zh) * | 2021-06-03 | 2023-01-31 | 上海中通吉网络技术有限公司 | 服务流量集中的方法 |
CN113364706A (zh) * | 2021-06-03 | 2021-09-07 | 上海中通吉网络技术有限公司 | 服务流量集中的方法 |
CN113467817A (zh) * | 2021-07-14 | 2021-10-01 | 广域铭岛数字科技有限公司 | 一种应用管理方法、系统、介质及电子终端 |
WO2023169175A1 (zh) * | 2022-03-08 | 2023-09-14 | 北京字节跳动网络技术有限公司 | 一种请求处理方法、装置、计算机设备和存储装置 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107111519A (zh) | 用于管理和调度容器的系统 | |
CA2890303C (en) | Custom resources in a resource stack | |
CN109313572A (zh) | 通用自动缩放 | |
CN103365725B (zh) | 在多个云之间动态分配工作负荷部署单元的方法和系统 | |
CN107431712A (zh) | 用于多租户环境的网络流日志 | |
CN105900396A (zh) | 移动云服务体系架构 | |
CN109074265A (zh) | 移动云服务的预先形成的指令 | |
CN106664321A (zh) | 基于放置策略的计算资源分配 | |
US20140100898A1 (en) | Order Queue Management in Event Ticket Network Systems | |
CN105556475A (zh) | 请求处理技术 | |
CN105917627A (zh) | 云服务定制执行环境 | |
CN106796526A (zh) | Json样式表语言变换 | |
CN105981331A (zh) | 用来支持流量政策执行的实体处理注册表 | |
CN108604278A (zh) | 具有对共享数据表的支持的自描述配置 | |
CN109614209A (zh) | 一种任务处理方法、应用服务器及系统 | |
CN105637842B (zh) | 用于网络通信环境中的中介的可靠消息传送的方法 | |
CN108112268A (zh) | 管理与自动扩展组相关的负载平衡器 | |
CN110413918A (zh) | 数据发送方法、装置、设备及存储介质 | |
US11487783B2 (en) | Clone data object and software generation | |
CN105493063B (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 |