IP Library Granted Patent US 9,866,433
Granted Patent B1
US 9,866,433 · App. 14/949,728 · Granted Jan 9, 2018

Light-weight cloud application platform

Inventors: Onsi Joe Fakhouri (San Francisco, CA); 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 9,866,433
App. No.
14/949,728
Granted
Jan 9, 2018
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 (72)

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;

one or more executors, each executor being operable to receive a recipe comprising one or more platform independent, resource agnostic commands, each command corresponding 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 maintain a routing table for routing 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;

in response to receiving the second user command, deploying a plurality of instances of the cloud application without receiving further user commands, including:

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.

2. The method of claim 1 , wherein the routing subsystem receives communication requests and routes the communication requests to individual instances of the cloud application.

3. The method of claim 2 , further comprising:

receiving, by the routing subsystem of the deployed light-weight cloud application platform, a request to access the cloud application; and

routing, by the routing subsystem, the request to an individual instance of the cloud application.

4. The method of claim 1 , wherein the plurality of components of the light-weight cloud application platform comprises:

a logging subsystem that is operable to attach to execution engines hosting one or more instances of the cloud application and stream log messages from the execution engines.

5. The method of claim 4 , further comprising:

receiving, by the deployment tool, a third user command that specifies a name of the cloud application;

in response to receiving the third user command, providing a request to the logging subsystem to attach to the execution engines hosting one or more instances of the cloud application.

6. The method of claim 1 , wherein the execution environment is a simulated cloud computing platform hosted by a single physical computing device.

7. The method of claim 1 , wherein the execution environment is a cloud computing platform hosted by a cloud computing service.

8. The method of claim 7 , further comprising:

in response to receiving the first user command, identifying, by the deployment tool, user credentials for the cloud computing service; and

automatically using the user credentials to deploy the components of the light-weight cloud application platform in the cloud computing platform hosted by the cloud computing service without receiving further user commands from the user.

9. 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;

one or more executors, each executor being operable to receive a recipe comprising one or more platform independent, resource agnostic commands, each command corresponding 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 maintain a routing table for routing 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;

in response to receiving the second user command, deploying a plurality of instances of the cloud application without receiving further user commands, including:

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 9 , wherein the routing subsystem receives communication requests and routes the communication requests to individual instances of the cloud application.

11. The system of claim 10 , wherein the operations further comprise:

receiving, by the routing subsystem of the deployed light-weight cloud application platform, a request to access the cloud application; and

routing, by the routing subsystem, the request to an individual instance of the cloud application.

12. The system of claim 9 , wherein the plurality of components of the light-weight cloud application platform comprises:

a logging subsystem that is operable to attach to execution engines hosting one or more instances of the cloud application and stream log messages from the execution engines.

13. The system of claim 12 , wherein the operations further comprise:

receiving, by the deployment tool, a third user command that specifies a name of the cloud application;

in response to receiving the third user command, providing a request to the logging subsystem to attach to the execution engines hosting one or more instances of the cloud application.

14. The system of claim 9 , wherein the execution environment is a simulated cloud computing platform hosted by a single physical computing device.

15. The system of claim 9 , wherein the execution environment is a cloud computing platform hosted by a cloud computing service.

16. The system of claim 15 , wherein the operations further comprise:

in response to receiving the first user command, identifying, by the deployment tool, user credentials for the cloud computing service; and

automatically using the user credentials to deploy the components of the light-weight cloud application platform in the cloud computing platform hosted by the cloud computing service without receiving further user commands from the user.

17. 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;

one or more executors, each executor being operable to receive a recipe comprising one or more platform independent, resource agnostic commands, each command corresponding 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 maintain a routing table for routing 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;

in response to receiving the second user command, deploying a plurality of instances of the cloud application without receiving further user commands, including:

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.

18. The computer program product of claim 17 , wherein the routing subsystem receives communication requests and routes the communication requests to individual instances of the cloud application.

19. The computer program product of claim 18 , wherein the operations further comprise:

receiving, by the routing subsystem of the deployed light-weight cloud application platform, a request to access the cloud application; and

routing, by the routing subsystem, the request to an individual instance of the cloud application.

20. The computer program product of claim 17 , wherein the plurality of components of the light-weight cloud application platform comprises:

a logging subsystem that is operable to attach to execution engines hosting one or more instances of the cloud application and stream log messages from the execution engines.

Assignments (2)
MERGER Recorded May 20, 2026
From: PIVOTAL SOFTWARE, INC.
To: VMWARE LLC
Reel/Frame 075614/0184 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2015
From: FAKHOURI, ONSI JOE; BAYER, JAMES THOMAS; WATTERS, JAMES JACOB
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 037131/0294 →