P
USRE48680EActiveUtilityPatentIndex 84

Managing resources in container systems

Assignee: TURBONOMIC INCPriority: Jun 26, 2009Filed: Jul 28, 2020Granted: Aug 10, 2021
Est. expiryJun 26, 2029(~3 yrs left)· nominal 20-yr term from priority
Inventors:YEMINI YECHIAMCOHEN MORXU ENLINSARA ENDREKLIGER SHMUEL
G06F 9/50G06F 9/455G06Q 10/06G06Q 30/06G06Q 40/02G06F 9/5083H04L 67/1023H04L 67/1008G06F 9/45558G06F 9/5055G06F 9/5077G06F 2209/5022
84
PatentIndex Score
7
Cited by
129
References
23
Claims

Abstract

Methods, systems, and apparatus, including computer program products, for managing resources in container systems, including multi-cloud systems. The use of supply chain economics alone and in combination with other techniques offers a unified platform to integrate, optimize or improve, and automate resource management in a container system. These techniques may be used to monitor and control the delivery of service level agreements and software licenses. They may also be used to monitor and control contention of computing resources in a container system, and to suspend or terminate computing resources.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer-implemented method for managing containers in a container-based computer system, comprising:
 initializing a container, by a container manager running on a data processor in the container system, wherein the container is a software implementation of a computer that runs on top of a shared operating system, is allocated exclusive access to compute resources using a separate operating system kernel name space, and executes one or more applications on the shared operating system; 
 determining, by the container manager, a computer resource bundle to be purchased for the container using virtual currency units; 
 identifying multiple computer servers available to offer the computer resource bundle; 
 determining a purchase price for the computer resource bundle, in virtual currency units, for each of the identified computer servers, wherein at least one determined purchase price is based at least in part on either an application-specific usage charge according to an allocated priority level for a containerized application or associated class of applications executing on the container, or a determined application-specific performance improvement that would result from allocating at least a part of the computer resource bundle to the containerized application, or both; 
 automatically selecting, by the container manager, a first one of the identified computer servers based at least in part on the purchase price for the computer resource bundle for each of the computer servers; and 
 allocating at least a part of the computer resource bundle from the first one of the identified computer servers to the containerized application executing on the container. 
 
     
     
       2. The computer-implemented method of  claim 1 , further comprising:
 initiating, following an increase in the purchase price for the allocated computer resource bundle, a credit check process by the container manager, wherein the credit check process results in an increase in budget of virtual currency units available for usage by the container; and 
 determining, following the initiation of the credit check process, whether the container is to be moved from the first one of the multiple computer servers to a second one of the multiple computer servers, wherein the moving determination is based at least in part on the purchase price for the computer resource bundle offered by the second one of the multiple computer servers. 
 
     
     
       3. The computer-implemented method of  claim 1 , further comprising:
 maintaining a budget, in virtual currency units, for the container; 
 determining whether the budget of virtual currency units for the container is sufficient to pay the purchase price for the computer resource bundle for the selected first one of the multiple computer servers; 
 allocating the computer resource bundle from the first one of the multiple computer servers to the container only if the budget of the virtual machine has been determined to be sufficient to pay the purchase price for the computer resource bundle for the first one of the multiple computer servers; and 
 transferring virtual currency units from the budget for the container to a budget for the first one of the multiple computer servers based on the purchase price for the computer resource bundle determined for the first one of the multiple computer servers. 
 
     
     
       4. The computer-implemented method of  claim 1 , further comprising:
 maintaining a budget, in virtual currency units, for the containerized application executing on the container; 
 determining a purchase price, in virtual currency units, for continued allocation of the at least a part of the computer resource bundle to the containerized application; 
 determining whether the budget of virtual currency units for the containerized application is sufficient to pay the purchase price for the continued allocation; 
 continuing to allocate, to the containerized application executing on the container, the at least a part of the computer resource bundle if the budget for the containerized application is sufficient to pay the determined purchase price for continued allocation; and 
 deducting virtual currency units from the budget for the containerized application based on the determined purchase price for continued allocation. 
 
     
     
       5. The computer-implemented method of  claim 1 , wherein the computer resource bundle includes one or more computer resources, the method further comprising:
 determining a performance metric level of the containerized application executing on the container; and 
 adjusting the allocation of at least one of the one or more computer resources to the containerized application based on a comparison of the determined performance metric level to a predetermined threshold performance metric level. 
 
     
     
       6. The computer-implemented method of  claim 5 , wherein the performance metric level of the application executing on the container is correlated to at least one of the transaction rate for the application, the number of transactions performed by the application, and the completion time or delay for the application. 
     
     
       7. The computer-implemented method of  claim 1 , wherein the computer resource bundle includes one or more computer resources, the method further comprising:
 determining a performance metric level of the containerized application executing on the container; and 
 adjusting a budget of virtual currency units for the containerized application based on a comparison of the determined performance metric level to a predetermined threshold performance metric level. 
 
     
     
       8. The computer-implemented method of  claim 1 , wherein the computer resource bundle includes at least one of an allotment of computer memory, an allotment of application execution scheduling for one or more central processing units, an allotment of storage interface bandwidth, an allotment of network interface bandwidth, and an allotment of a storage array. 
     
     
       9. The computer-implemented method of  claim 1 , wherein the allocating the computer resource bundle from the selected one of the multiple computer servers to the containerized application comprises moving the container to the selected one of the multiple computer servers from a different computer server. 
     
     
       10. The computer-implemented method of  claim 1 , wherein the computer resource bundle includes a plurality of computer resources, and wherein the automatically selecting one of the multiple computer servers includes selecting the computer server having the lowest combined purchase price for the plurality of computer resources. 
     
     
       11. The computer-implemented method of  claim 1 , wherein the allocated computer resource bundle includes at least a first computer resource and a second computer resource, the method further comprising de-allocating the first computer resource based at least in part on a comparison of a determined usage of the first computer resource to a determined usage of the second computer resource. 
     
     
       12. The computer-implemented method of  claim 1 , wherein the computer resource bundle includes multiple computer resources, and wherein the determining a computer resource bundle to be purchased is based at least in part on a computed utilization of one of the multiple computer resources. 
     
     
       13. The computer-implemented method of  claim 12 , further comprising:
 increasing the amount of the computer resource bundle to be purchased if it is determined that the computed utilization of the one of the multiple computer resources is below a predetermined threshold. 
 
     
     
       14. The computer-implemented method of  claim 12 , further comprising:
 decreasing the amount of the computer resource bundle to be purchased if is determined that the computed utilization of the one of the multiple computer resources is above a predetermined threshold. 
 
     
     
       15. The computer-implemented method of  claim 1 , wherein the determining a purchase price for the computer resource bundle includes receiving one or more auction bids for purchase of the computer resource bundle. 
     
     
       16. The computer-implemented method of  claim 1 , further comprising:
 maintaining a budget, in virtual currency units, for the first one of the multiple computer servers; 
 determining a purchase price, in virtual currency units, for a second computer resource bundle for a provider of the second computer resource bundle; 
 determining whether the budget of virtual currency units for the first one of the multiple computer servers is sufficient to pay the purchase price for the second computer resource bundle; 
 allocating, to the first one of the multiple computer servers, the second computer resource bundle if the budget for the first one of the multiple computer servers is sufficient to pay the determined price; and 
 deducting virtual currency units from the budget for the first one of the multiple computer servers based on the determined purchase price. 
 
     
     
       17. The computer-implemented method of  claim 16 , wherein the second computer resource bundle includes at least one of an allotment of electrical power, an allotment of air temperature cooling resources, an allotment of physical space, an allotment of operational expense, and an allotment of capital expenditure. 
     
     
       18. The computer-implemented method of  claim 1 , further comprising converting virtual currency units to government issued monetary currency based on a predetermined exchange rate. 
     
     
       19. A computer-implemented method for managing containers in a computer system, comprising:
 determining, by a container manager running on a data processor in a first container system that includes at least one container, a computer resource bundle to be purchased for a first container in the first container system using virtual currency units, wherein the first container in the first container system is a software implementation of a computer that runs on top of a shared operating system, is allocated exclusive access to compute resources using a separate operating system kernel name space, and executes one or more applications on the shared operating system; 
 allocating the computer resource bundle from a first computer server in the first container system to a containerized application executing on the first container; 
 receiving, from a proxy manager of a second container system offering the computer resource bundle, a purchase price for the determined computer resource bundle in virtual currency units, wherein the second container system also includes at least one container that runs on top of a second shared operating system, is allocated exclusive access to compute resources using a separate operating system kernel name space, and executes one or more applications on the second shared operating system, and wherein the purchase price is based at least in part on either an application-specific usage charge according to an allocated priority level for the containerized application or associated class of applications, or a determined application-specific performance improvement that would result from allocating the computer resource bundle, or both; 
 determining whether the determined computer resource bundle is to be purchased from a second computer server in the second container system based at least in part on the purchase price received from the proxy manager of the second container system; 
 allocating the computer resource bundle from the second computer server in the second container system to the containerized application executing on the first container; and 
 dispatching the first container from the first container system to execute at the second container system. 
 
     
     
       20. The computer-implemented method of  claim 19 , further comprising initiating, following an increase in the purchase price for the allocated computer resource bundle, a credit check process by the container manager, wherein the credit check process results in an increase in budget of virtual currency units available for usage by the first container. 
     
     
       21. A computer-implemented method for managing containers in a computer system, comprising:
 allocating one or more computer resources to a plurality of containers in a container system, wherein each container is a software implementation of a computer that runs on top of a shared operating system, is allocated exclusive access to computer resources using a separate operating system kernel name space, and executes one or more applications on the shared operating system, and wherein the plurality of containers operate as components of a cluster for running related applications; 
 determining, by a container manager running on a data processor of the container system, a target latency for the plurality of containers; 
 determining, by the container manager, an actual latency for the plurality of containers; 
 comparing the target and actual latency for the plurality of containers; 
 determining a purchase price for the one or more computer resources, in virtual currency units, for a second computer server, wherein the purchase price is based at least in part on either an application-specific usage charge according to an allocated priority level for a containerized application or associated class of applications, or a determined application-specific performance improvement that would result from allocating the one or more computer resources by the second computer server, or both; and 
 determining that the plurality of containers is to be moved from a first computer server to the second computer server based at least in part on the comparison of the target and actual latency and the determined purchase price. 
 
     
     
       22. The computer-implemented method of  claim 21 , further comprising initiating a migration of the plurality of containers from the first computer server to the second computer server. 
     
     
       23. The computer-implemented method of  claim 22 , wherein said initiating comprises an atomic migration of the plurality of containers.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.