IP Library Granted Patent US 10,574,523
Granted Patent B2
US 10,574,523 · App. 14/996,393 · Granted Feb 25, 2020

Systems and methods for cloud-deployments with imperatives

Inventors: Thorsten von Eicken (Santa Barbara, CA); Raphael George Jacques Simon (Santa Barbara, CA)
Assignee: RightScale Inc.
H04L41/0843H04L67/10H04L67/20H04L67/42
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,574,523
App. No.
14/996,393
Granted
Feb 25, 2020
Kind
B2
Abstract

Systems and methods for facilitating cloud-computing provisioning using deployment templates. A deployment management system receives a deployment template that includes a declarative portion specifying a plurality of resources to be deployed and an imperative portion specifying at least one procedure for adding, reconfiguring, or terminating a resource. The deployment management system generates an enumeration of a set of resources deployed prior to implementing a transition based on the deployment template, and generates a second enumeration of resources prospectively representative of a deployment conformant with the template subsequent to implementing the transition. The deployment management system identifies difference between the enumerations and generates a transition plan including a sequence of procedures for implementing the deployment template. In some implementations, an administrator can modify the transition plan. In some implementations, the transition plan includes conditional logic sequences and/or operations triggered by events.

Claims (70)

1. A method comprising:

receiving, by a deployment management system comprising at least one computer processor, a deployment template comprising:

(i) a declarative portion specifying a plurality of resources to be deployed in one or more computing clouds, the declarative portion including conditional logic for identifying at least one of the computing clouds and instructions for sequencing instantiation of the resources,

(ii) an imperative portion specifying at least one customization overriding a default procedure for a resource, wherein the default procedure is one of: adding the resource, changing a configuration for the resource, or terminating the resource, the default procedure being included in the declarative portion,

wherein the deployment template is selected, by a user, from a plurality of deployment templates, the selected deployment template comprising the declarative portion and the imperative portion being specified by the user for inclusion in the deployment template;

generating, via modeling the deployment template, a first enumeration of a set of resources deployed in the one or more computing clouds at a first moment in time prior to implementing a transition based on the deployment template, the first enumeration representative of a first state;

generating a second enumeration of the plurality of resources described by the deployment template prospectively representative of a second state conformant with the deployment template at a second moment in time subsequent to implementing the transition;

determining, based on a comparison of the first enumeration and the second enumeration, a difference between the first state and the second state; and

generating, by the deployment management system, a transition plan for transitioning from the first state to the second state, the transition plan comprising a sequence of procedures for implementing the deployment template, and the sequence of procedures being stored as respective directed graph vertices of a data structure.

2. The method of claim 1 , the imperative portion further specifying a trigger-based operation, the method further comprising executing the trigger-based operation responsive to detecting a trigger-event for the trigger-based operation.

3. The method of claim 2 , the method further comprising executing the trigger-based operation during execution of the sequence of procedures.

4. The method of claim 1 , comprising:

generating an initial transition plan for transitioning from the first state to the second state;

providing the initial transition plan to a client device;

receiving a modification instruction from the client device;

generating a modified transition plan based on the initial transition plan and the received modification instruction; and

using the modified transition plan as the transition plan for transitioning from the first state to the second state.

5. The method of claim 4 , comprising:

providing the initial transition plan to the client device as a script; and

receiving the modification instruction as one of: edits to the script or a replacement script.

6. The method of claim 1 , comprising managing at least one resource by transmitting authenticated commands to a third-party computing cloud.

7. The method of claim 1 , comprising executing the transition plan using commands authenticated on behalf of a user.

8. The method of claim 1 comprising executing the sequence of procedures included in the transition plan.

9. The method of claim 1 , wherein the deployment template specifies, for each of the plurality of resources, a respective resource type and configuration, the method further comprising:

determining the one or more differences between the first state and the second state by identifying at least one of: a change in a number of resources of a first resource type or a change in a first resource configuration.

10. The method of claim 1 , wherein the sequence of procedures for implementing the deployment template comprises an ordered set of actions, each action in the ordered set of actions designating a respective procedure to apply to a respective resource, and at least one action in the ordered set of actions designating a customized procedure overriding a default procedure for the respective resource.

11. A deployment management system comprising one or more computing processors and a computer-readable memory storing computer-executable instructions that, when executed by the one or more computing processors, cause the one or more computing processors to:

parse a deployment template comprising:

(i) a declarative portion specifying a plurality of resources to be deployed in one or more computing clouds, the declarative portion including conditional logic for identifying at least one of the computing clouds and instructions for sequencing instantiation of the resources, and

(ii) an imperative portion specifying at least one customization overriding a default procedure for a resource, wherein the default procedure is one of: adding the resource, changing a configuration for the resource, or terminating the resource, the default procedure being included in the declarative portion,

wherein the deployment template is selected, by a user, from a plurality of deployment templates, the selected deployment template comprising the declarative portion and the imperative portion being specified by the user for inclusion in the deployment template;

generate, via modeling the deployment template, a first enumeration of a set of resources deployed in the one or more computing clouds at a first moment in time prior to implementing a transition based on the deployment template, the first enumeration representative of a first state;

generate a second enumeration of the plurality of resources described by the deployment template prospectively representative of a second state conformant with the deployment template at a second moment in time subsequent to implementing the transition;

determine, based on a comparison of the first enumeration and the second enumeration, a difference between the first state and the second state; and

generate a transition plan for transitioning from the first state to the second state, the transition plan comprising a sequence of procedures for implementing the deployment template and the sequence of procedures being stored as respective directed graph vertices of a data structure.

12. The deployment management system of claim 11 , the imperative portion further specifying a trigger-based operation, wherein the stored computer-executable instructions, when executed by the one or more computing processors, further cause the one or more computing processors to execute the trigger-based operation responsive to detecting a trigger-event for the trigger-based operation.

13. The deployment management system of claim 12 , wherein the stored computer-executable instructions, when executed by the one or more computing processors, further cause the one or more computing processors to execute the trigger-based operation during execution of the sequence of procedures.

14. The deployment management system of claim 11 , wherein the stored computer-executable instructions, when executed by the one or more computing processors, further cause the one or more computing processors to:

generate an initial transition plan for transitioning from the first state to the second state;

provide the initial transition plan to a client device;

receive a modification instruction from the client device;

generate a modified transition plan based on the initial transition plan and the received modification instruction; and

use the modified transition plan as the transition plan for transitioning from the first state to the second state.

15. The deployment management system of claim 14 , wherein the stored computer-executable instructions, when executed by the one or more computing processors, further cause the one or more computing processors to:

provide the initial transition plan to the client device as a script; and

receive the modification instruction as one of: edits to the script or a replacement script.

16. The deployment management system of claim 11 , wherein the stored computer-executable instructions, when executed by the one or more computing processors, further cause the one or more computing processors to manage at least one resource by transmitting authenticated commands to a third-party computing cloud.

17. The deployment management system of claim 11 , wherein the stored computer-executable instructions, when executed by the one or more computing processors, further cause the one or more computing processors to execute the transition plan using commands authenticated on behalf of a user.

18. The deployment management system of claim 11 , wherein the stored computer-executable instructions, when executed by the one or more computing processors, further cause the one or more computing processors to execute the sequence of procedures included in the transition plan.

19. The deployment management system of claim 11 , wherein the deployment template specifies, for each of the plurality of resources, a respective resource type and configuration, and wherein the stored computer-executable instructions, when executed by the one or more computing processors, further cause the one or more computing processors to determine the one or more differences between the first state and the second state by identifying at least one of: a change in a number of resources of a first resource type or a change in a first resource configuration.

20. The deployment management system of claim 11 , wherein the sequence of procedures for implementing the deployment template comprises an ordered set of actions, each action in the ordered set of actions designating a respective procedure to apply to a respective resource, and at least one action in the ordered set of actions designating a customized procedure overriding a default procedure for the respective resource.

21. A non-transitory computer-readable medium storing instructions that, when executed by a computing processor, cause the computing processor to:

parse a deployment template comprising:

(i) a declarative portion specifying a plurality of resources to be deployed in one or more computing clouds, the declarative portion including conditional logic for identifying at least one of the computing clouds and instructions for sequencing instantiation of the resources, and

(ii) an imperative portion specifying at least one customization overriding a default procedure for a resource, wherein the default procedure is one of: adding the resource, changing a configuration for the resource, or terminating the resource, the default procedure being included in the declarative portion,

wherein the deployment template is selected, by a user, from a plurality of deployment templates, the selected deployment template comprising the declarative portion and the imperative portion being specified by the user for inclusion in the deployment template;

generate, via modeling the deployment template, a first enumeration of a set of resources deployed in the one or more computing clouds at a first moment in time prior to implementing a transition based on the deployment template, the first enumeration representative of a first state;

generate a second enumeration of the plurality of resources described by the deployment template prospectively representative of a second state conformant with the deployment template at a second moment in time subsequent to implementing the transition;

determine, based on a comparison of the first enumeration and the second enumeration, a difference between the first state and the second state; and

generate a transition plan for transitioning from the first state to the second state, the transition plan comprising a sequence of procedures for implementing the deployment template and the sequence of procedures being stored as respective directed graph vertices of a data structure.

22. The computer-readable medium of claim 21 , wherein the imperative portion further specifies a trigger-based operation, and wherein the stored computer-executable instructions, when executed by a computing processor, further cause the computing processor to execute the trigger based operation responsive to detecting a trigger-event for the trigger-based operation.

23. The computer-readable medium of claim 21 , wherein the stored computer-executable instructions, when executed by the one or more computing processors, further cause the one or more computing processors to:

generate an initial transition plan for transitioning from the first state to the second state;

provide the initial transition plan to a client device;

receive a modification instruction from the client device;

generate a modified transition plan based on the initial transition plan and the received modification instruction; and

use the modified transition plan as the transition plan for transitioning from the first state to the second state.

24. The computer-readable medium of claim 21 , wherein the sequence of procedures for implementing the deployment template comprises an ordered set of actions, each action in the ordered set of actions designating a respective procedure to apply to a respective resource, and at least one action in the ordered set of actions designating a customized procedure overriding a default procedure for the respective resource.

25. The method of claim 1 , wherein at least one procedure comprises transmitting one or more commands to a particular computing cloud associated with one or more resources to be deployed in the particular computing cloud, and wherein the deployment management system is configured to obtain authentication information associated with the particular computing cloud and authenticate, using the authentication information, to effectuate the one or more commands.

26. The deployment management system of claim 11 , wherein at least one procedure comprises transmitting one or more commands to a particular computing cloud associated with one or more resources to be deployed in the particular computing cloud, and wherein the deployment management system is configured to obtain authentication information associated with the particular computing cloud and authenticate, using the authentication information, to effectuate the one or more commands.

Assignments (8)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS - REEL/FRAME 047719-0112 Recorded Aug 22, 2025
From: JEFFERIES FINANCE LLC
To: RIGHTSCALE, INC.
Reel/Frame 072565/0841 →
SECURITY INTEREST Recorded Aug 15, 2025
From: FLEXERA SOFTWARE LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL GENT
Reel/Frame 072460/0828 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Apr 18, 2024
From: JEFFERIES FINANCE LLC
To: BDNA CORPORATION; FLEXERA SOFTWARE LLC; PALAMIDA, INC.; RIGHTSCALE, INC.; RISC NETWORKS, LLC; REVULYTICS, INC.
Reel/Frame 067636/0534 →
SECOND LIEN SECURITY AGREEMENT Recorded Mar 3, 2021
From: BDNA CORPORATION; FLEXERA SOFTWARE LLC; PALAMIDA, INC.; RIGHTSCALE, INC.; RISC NETWORKS, LLC; REVULYTICS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 055487/0354 →
RELEASE OF SECOND LIEN SECURITY INTEREST Recorded Feb 28, 2020
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION; RIGHTSCALE, INC.; RISC NETWORKS, LLC
Reel/Frame 052049/0560 →
SECOND LIEN SECURITY AGREEMENT Recorded Dec 5, 2018
From: RIGHTSCALE, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 047720/0472 →
FIRST LIEN SECURITY AGREEMENT Recorded Dec 4, 2018
From: RIGHTSCALE, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 047719/0112 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2016
From: EICKEN, THORSTEN VON; SIMON, RAPHAEL GEORGE JACQUES
To: RIGHTSCALE, INC.
Reel/Frame 037502/0223 →
Continuity (1)
Related Publication 20170207968A1 · Jul 20, 2017