IP Library Granted Patent US 10,389,582
Granted Patent B1
US 10,389,582 · App. 15/842,674 · Granted Aug 20, 2019

Light-weight cloud application platform

Inventors: Onsi Joe Fakhouri (Denver, CO); James Thomas Bayer (Palo Alto, CA); James Jacob Watters (San Francisco, CA)
Assignee: Pivotal Software, Inc.
H04L41/0806H04L67/10
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,389,582
App. No.
15/842,674
Granted
Aug 20, 2019
Kind
B1
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for deploying and using a light-weight cloud application platform. In one aspect, a method includes providing a deployment tool configured to deploy a light-weight cloud application platform in an execution environment in response to a user command that specifies the environment, and to create one or more instances of a cloud application executing on the light-weight cloud application platform in response to a user command that specifies a container image that includes the application. The deployment tool receives a first user command that specifies the execution environment. In response, the deployment tool deploys components of the light-weight cloud application platform, including a scheduling subsystem and a routing subsystem. The deployment tool receives a second user command that specifies a location of the container image. In response, instances of the cloud application are deployed without receiving further user commands.

Claims (64)

1. A computer-implemented method comprising:

providing a deployment tool configured to deploy a light-weight cloud application platform in an execution environment in response to a user command that specifies the execution environment, and to create one or more instances of a cloud application executing on the light-weight cloud application platform in response to a user command that specifies a container image that includes the cloud application;

receiving, by the deployment tool, a first user command that specifies the execution environment;

in response to receiving the first user command, deploying, by the deployment tool, a plurality of components of the light-weight cloud application platform, including:

a scheduling subsystem comprising:

a plurality of execution engines, each execution engine being installed on a particular computing instance of the execution environment; and

one or more executors, each executor being operable to execute commands that each correspond to a requested service to be performed by one or the execution engines in the execution environment, and

a routing subsystem that is operable to route requests to individual instances of the cloud application;

receiving, by the deployment tool, a second user command that specifies a location of the container image that includes the cloud application; and

in response to receiving the second user command, deploying a plurality of instances of the cloud application across multiple servers.

2. The method of claim 1 , further comprising:

providing a request to the scheduling system to schedule execution of one or more instances of the cloud application; and

providing a request to the routing subsystem to register the plurality of instances of the cloud application.

3. The method of claim 1 , wherein deploying the plurality of instances of the cloud application across multiple servers comprises deploying each instance of the cloud application in a respective container.

4. The method of claim 1 , wherein the scheduling subsystem further comprises one or more stagers, each stager being operable to generate a task recipe having platform-independent, resource-agnostic commands that request services to be performed by one or more of the execution engines.

5. The method of claim 4 , wherein each executor is operable to:

receive, from a particular stager, the task recipe generated by the particular stager;

translate the platform-independent, resource-agnostic commands of the task recipe generated by the particular stager into platform-independent, resource-specific requests; and

provide the platform-independent, resource-specific requests to the one or more execution engines.

6. The method of claim 5 , wherein each platform-independent, resource-specific request corresponds to one or more platform-specific, resource-instance-specific operations to be performed by an execution engine on a particular underlying computing platform.

7. The method of claim 1 , wherein each server of the multiple servers includes an execution engine, of the plurality of execution engines, that manages resources of the server based on requests received from an executor of the one or more executors.

8. A system, comprising:

a data processing apparatus; and

a memory storage apparatus in data communication with the data processing apparatus, the memory storage apparatus storing instructions executable by the data processing apparatus and that upon such execution cause the data processing apparatus to perform operations comprising:

providing a deployment tool configured to deploy a light-weight cloud application platform in an execution environment in response to a user command that specifies the execution environment, and to create one or more instances of a cloud application executing on the light-weight cloud application platform in response to a user command that specifies a container image that includes the cloud application;

receiving, by the deployment tool, a first user command that specifies the execution environment;

in response to receiving the first user command, deploying, by the deployment tool, a plurality of components of the light-weight cloud application platform, including:

a scheduling subsystem comprising:

a plurality of execution engines, each execution engine being installed on a particular computing instance of the execution environment; and

one or more executors, each executor being operable to execute commands that each correspond to a requested service to be performed by one or the execution engines in the execution environment, and

a routing subsystem that is operable to route requests to individual instances of the cloud application;

receiving, by the deployment tool, a second user command that specifies a location of the container image that includes the cloud application; and

in response to receiving the second user command, deploying a plurality of instances of the cloud application across multiple servers.

9. The system of claim 8 , wherein the operations further comprise:

providing a request to the scheduling system to schedule execution of one or more instances of the cloud application; and

providing a request to the routing subsystem to register the plurality of instances of the cloud application.

10. The system of claim 8 , wherein deploying the plurality of instances of the cloud application across multiple servers comprises deploying each instance of the cloud application in a respective container.

11. The system of claim 8 , wherein the scheduling subsystem further comprises one or more stagers, each stager being operable to generate a task recipe having platform-independent, resource-agnostic commands that request services to be performed by one or more of the execution engines.

12. The system of claim 11 , wherein each executor is operable to:

receive, from a particular stager, the task recipe generated by the particular stager;

translate the platform-independent, resource-agnostic commands of the task recipe generated by the particular stager into platform-independent, resource-specific requests; and

provide the platform-independent, resource-specific requests to the one or more execution engines.

13. The system of claim 12 , wherein each platform-independent, resource-specific request corresponds to one or more platform-specific, resource-instance-specific operations to be performed by an execution engine on a particular underlying computing platform.

14. The system of claim 8 , wherein each server of the multiple servers includes an execution engine, of the plurality of execution engines, that manages resources of the server based on requests received from an executor of the one or more executors.

15. A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

providing a deployment tool configured to deploy a light-weight cloud application platform in an execution environment in response to a user command that specifies the execution environment, and to create one or more instances of a cloud application executing on the light-weight cloud application platform in response to a user command that specifies a container image that includes the cloud application;

receiving, by the deployment tool, a first user command that specifies the execution environment;

in response to receiving the first user command, deploying, by the deployment tool, a plurality of components of the light-weight cloud application platform, including:

a scheduling subsystem comprising:

a plurality of execution engines, each execution engine being installed on a particular computing instance of the execution environment; and

one or more executors, each executor being operable to execute commands that each correspond to a requested service to be performed by one or the execution engines in the execution environment, and

a routing subsystem that is operable to route requests to individual instances of the cloud application;

receiving, by the deployment tool, a second user command that specifies a location of the container image that includes the cloud application; and

in response to receiving the second user command, deploying a plurality of instances of the cloud application across multiple servers.

16. The computer program product of claim 15 , wherein the operations further comprise:

providing a request to the scheduling system to schedule execution of one or more instances of the cloud application; and

providing a request to the routing subsystem to register the plurality of instances of the cloud application.

17. The computer program product of claim 15 , wherein deploying the plurality of instances of the cloud application across multiple servers comprises deploying each instance of the cloud application in a respective container.

18. The computer program product of claim 15 , wherein the scheduling subsystem further comprises one or more stagers, each stager being operable to generate a task recipe having platform-independent, resource-agnostic commands that request services to be performed by one or more of the execution engines.

19. The computer program product of claim 18 , wherein each executor is operable to:

receive, from a particular stager, the task recipe generated by the particular stager;

translate the platform-independent, resource-agnostic commands of the task recipe generated by the particular stager into platform-independent, resource-specific requests; and

provide the platform-independent, resource-specific requests to the one or more execution engines.

20. The computer program product of claim 19 , wherein each platform-independent, resource-specific request corresponds to one or more platform-specific, resource-instance-specific operations to be performed by an execution engine on a particular underlying computing platform.

Assignments (2)
MERGER Recorded May 20, 2026
From: PIVOTAL SOFTWARE, INC.
To: VMWARE LLC
Reel/Frame 075614/0184 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2018
From: FAKHOURI, ONSI JOE; BAYER, JAMES THOMAS; WATTERS, JAMES JACOB
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 045144/0274 →
Continuity (1)
Continuation 14949728 · Nov 23, 2015
Cited By (1)
US 12,260,205