IP Library Granted Patent US 10,191,778
Granted Patent B1
US 10,191,778 · App. 15/351,342 · Granted Jan 29, 2019

Systems, apparatus and methods for management of software containers

Inventors: Dongyi Yang (White Plains, NY); Endre Sara (Briarcliff Manor, NY); Enlin Xu (New York, NY)
Assignee: TURBONOMIC, INC.
G06F9/5055G06F9/45558G06F9/4881G06F11/301G06F11/302G06F11/3006G06Q20/065G06Q30/0283G06Q30/0635H04L43/08G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,191,778
App. No.
15/351,342
Granted
Jan 29, 2019
Kind
B1
Abstract

Methods, systems, and apparatus, including computer program products, are disclosed 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 auto-scale or place container or pod entities. They may also be used to monitor and control contention of computing resources in a container system, and to place, clone, resize, suspend or terminate computing resources.

Claims (43)

1. A computer-implemented method, comprising:

determining, by a pod manager running on a data processor in a container system, a computer resource bundle to be purchased for a pod in the container system using virtual currency units, wherein the pod is a cluster of two or more containers in the computer system sharing at least one resource;

identifying multiple resource providers in the container system offering the computer resource bundle;

determining a purchase price for the computer resource bundle, in virtual currency units, for each of the multiple resource providers;

automatically selecting, by the pod manager, a first one of the multiple resource providers based at least in part on the purchase price for the computer resource bundle for each of the multiple resource providers;

allocating the computer resource bundle from the selected first one of the multiple resource providers to the pod; and

determining, following an increase in the purchase price for the computer resource bundle offered by the selected first one of the multiple resource providers, that the pod is to be moved from the selected first one of the multiple resource providers to a second one of the multiple resource providers based at least in part on a lower purchase price for the computer resource bundle offered by the second one of the multiple resource providers.

2. The computer-implemented method of claim 1 , further comprising:

monitoring usage or performance metrics of at least one of the cluster of containers in the pod; and

determining that at least one of the cluster of containers in the pod is to be moved, cloned or suspended.

3. The computer-implemented method of claim 2 , wherein the monitoring step comprises comparing actual and target quality of service metrics associated with the at least one of the cluster of containers in the pod.

4. The computer-implemented method of claim 1 , further comprising:

dividing the container system into subcomponents including at least one subcomponent that manages individual nodes in the container system and at least one subcomponent that forms part of a control plane; and

selecting, by a scheduler in the container system, a node that the pod is to run on, wherein the selection is based at least in part on resource availability of the selected node.

5. The computer-implemented method of claim 1 , wherein the selected node is a physical machine.

6. The computer-implemented method of claim 5 , wherein the selected node is a virtual machine.

7. The computer-implemented method of claim 1 , wherein each of the cluster of containers in the pod share the same IP address.

8. The computer-implemented method of claim 1 , wherein the container system is a Kubernetes container system.

9. The computer-implemented method of claim 1 , wherein the cluster of containers is a cluster of Docker containers.

10. The computer-implemented method of claim 1 , wherein the multiple resource providers are multiple computer servers in the container system, and wherein the determination that the pod is to be moved results in movement of the pod from a first computer server to a second computer server in the container system.

11. The computer-implemented method of claim 1 , further comprising determining that the pod is to be horizontally scaled by provisioning additional pod components.

12. The computer-implemented method of claim 11 , further comprising allocating additional computer resources to the pod from a selected third one of the multiple resource providers.

13. The computer-implemented method of claim 1 , further comprising automatically allocating additional computer resources to the pod based on a determination that the pod is below a predetermined service level.

14. A computer-implemented method, comprising:

determining, by a pod manager running on a data processor in a Kubernetes system, a computer resource bundle to be purchased for a pod in the Kubernetes system using virtual currency units, wherein the pod is a cluster of two or more containers;

determining a performance level of one or more containers in the pod;

determining a purchase price, in virtual currency units, for additional computer resources to be purchased for the one or more containers in the pod; and

automatically allocating, based at least in part on the determined performance level and determined purchase price, the additional computer resources to the one or more containers in the pod.

15. The computer-implemented method of claim 14 , wherein the automatically allocating step comprises comparing the determined performance level with a target performance level.

16. The computer-implemented method of claim 14 , further comprising:

dividing the Kubernetes system into subcomponents including at least one subcomponent that manages individual nodes in the Kubernetes system; and

selecting, by a scheduler in the container system, a node that the pod is to run on, wherein the selection is based at least in part on resource availability of the selected node.

17. The computer-implemented method of claim 16 , wherein the selected node is a virtual machine.

18. The computer-implemented method of claim 14 , wherein each of the cluster of containers in the pod share the same IP address.

19. The computer-implemented method of claim 14 , wherein the cluster of containers is a cluster of Docker containers.

20. A container-based computer system for managing resources, comprising:

instructions stored on a non-transitory computer readable medium in the container-based computer system and executable by a data processing apparatus to cause the data processing apparatus to perform operations comprising:

determining, by a pod manager running on a data processor in the container-based computer system, a computer resource bundle to be purchased for a pod in the system using virtual currency units, wherein the pod is a cluster of two or more containers in the system sharing at least one resource;

identifying multiple resource providers in the system offering the computer resource bundle;

determining a purchase price for the computer resource bundle, in virtual currency units, for each of the multiple resource providers;

automatically selecting, by the pod manager, a first one of the multiple resource providers based at least in part on the purchase price for the computer resource bundle for each of the multiple resource providers;

allocating the computer resource bundle from the selected first one of the multiple resource providers to the pod; and

determining, following an increase in the purchase price for the computer resource bundle offered by the selected first one of the multiple resource providers, that the pod is to be moved from the selected first one of the multiple resource providers to a second one of the multiple resource providers based at least in part on a lower purchase price for the computer resource bundle offered by the second one of the multiple resource providers.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2022
From: TURBONOMIC, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062202/0030 →
RELEASE OF SECURITY INTEREST Recorded Jul 5, 2022
From: SILICON VALLEY BANK
To: TURBONOMIC, INC.
Reel/Frame 060396/0411 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 23, 2019
From: TURBONOMIC, INC.
To: SILICON VALLEY BANK
Reel/Frame 050156/0150 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 23, 2019
From: TURBONOMIC, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 050156/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2016
From: YANG, DONGYI; SARA, ENDRE; XU, ENLIN
To: TURBONOMIC, INC.
Reel/Frame 040411/0834 →
Continuity (5)
Continuation In Part 15152459 · May 11, 2016
Provisional Application 62255859 · Nov 16, 2015
Provisional Application 62256559 · Nov 17, 2015
Provisional Application 62256645 · Nov 17, 2015
Provisional Application 62316340 · Mar 31, 2016
Cited By (22)
US 12,190,144 US 12,236,279 US 12,260,205 US 12,271,749 US 12,367,125 US 12,368,591 US 12,368,694 US 12,368,747 US 12,405,817 US 12,430,178 US 12,443,424 US 12,489,696 US 12,494,969 US 12,536,041 US 12,561,165 US 12,572,393 US 12,579,005 US 12,585,557 US 12,613,725 US 12,657,060 US 12,670,035 US 12,719,746