IP Library Granted Patent US 9,870,211
Granted Patent B2
US 9,870,211 · App. 14/005,548 · Granted Jan 16, 2018

High-level language for specifying configurations of cloud-based deployments

Inventors: Pankaj Risbood (Bangalore, IN); Parag Kacharulal Sarda (Bangalore, IN); Rahul S. Kulkarni (Maharashtra, IN); Rohit Jain (Rajasthan, IN); Vittaldas Sachin Shenoy (Calicut, IN); Vivek Sahasranaman (Bangalore, IN)
Assignee: Google Inc.
G06F8/60G06F9/4433G06F9/44505G06F9/45558G06F9/5072H04L41/0266H04L41/145H04L41/5012G06F2213/0038
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,870,211
App. No.
14/005,548
Filed
Jan 21, 2014
Granted
Jan 16, 2018
Kind
B2
Examiner
CAO, DIEM K
Art Unit
2196
USPC
719/328
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for high-level language for specifying configurations of cloud-based deployments. In one aspect, a method includes receiving a configuration specification for configuring a cloud-based deployment, the configuration specification being written in a specification language and requiring instantiation of respective class definitions of one or more classes, each class modeling a respective data or functional component of the cloud-based deployment using a group of configurable class parameters, and the respective class definition of each class representing a requested state of the data or functional component modeled by the class; deriving a plurality of application programming interface (API) calls for configuring the cloud-based deployment based on the class definitions of the one or more classes; causing the plurality of API calls to be executed to configure the cloud-based deployment.

Claims (59)

1. A computer-implemented method, comprising:

receiving a configuration specification for configuring a cloud-based deployment, the configuration specification being written in a specification language and requiring instantiation of respective class definitions of one or more classes, each class modeling a respective functional component of the cloud-based deployment using a group of configurable class parameters, and the respective class definition of each class representing a requested state of the functional component modeled by the class, wherein at least one configurable class parameter for a particular uninstantiated class specifies a trigger event for dynamic reconfiguration of the functional component modeled by the particular class, the dynamic reconfiguration specified by statements in the configuration specification, wherein some of the functional components are software roles performed by an installed application in the cloud-based environment, wherein:

the one or more classes include at least an existing base class and at least a customized class extended from the existing base class,

the customized class inherits respective class parameters of the existing base class, and

the customized class modifies a value of at least one of the class parameters inherited from the existing base class to specify a software role for the customized class that is different than the base class, wherein the specified software role comprises model parameters that describe a configuration of the cloud-based deployment and wherein a second cloud-based deployment includes a second customized class extended from the existing base class, the second customized class specifies a second software role that comprises second model parameters that describe a different configuration;

deriving a plurality of application programming interface (API) calls for configuring the cloud-based deployment based on the class definitions of the one or more classes and based on at least one of the model parameters, wherein at least one of the API calls is configured to instantiate the uninstantiated class to monitor for the specified trigger event;

causing the plurality of API calls to be executed to configure the cloud-based deployment;

monitoring a performance metric of the cloud based deployment; and

based on a matching of the performance metric to the trigger event, causing a dynamic reconfiguration of the functional component according to the statements as specified in the configuration specification.

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

the one or more classes include at least an existing base class and at least a customized class extended from the existing base class,

the customized class inherits respective class parameters of the existing base class, and

the customized class modifies a value of at least one of the class parameters inherited from the existing base class or includes at least one new class parameter not present in the existing base class.

3. The computer-implemented method of claim 1 , wherein:

the functional component modeled by each class is one of a virtual device supporting a cloud-based environment, a service utilized in the cloud-based environment, or a combination of one or more thereof.

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

the specification language supports at least one of dependency between class definitions and connectivity between class definitions, and where a definition dependency between a first class and a second class represents a deployment dependency between respective components modeled by the first and the second class, and where a value assignment linking an instance of a second class to a class parameter of a first class represents a connectivity between respective components modeled by the first class and the second class.

5. The computer-implemented method of claim 1 , wherein some of the functional components are dependency relationships that define an order of operation that is based on software roles.

6. The computer-implemented method of claim 1 , wherein, the specification language supports at least one of dependency between a software role and one of a service or a virtual device.

7. A system, comprising:

one or more processors; and

memory having instructions stored thereon, the instructions, when executed by the one or more processors, cause the processors to perform operations comprising:

receiving a configuration specification for configuring a cloud-based deployment, the configuration specification being written in a specification language and requiring instantiation of respective class definitions of one or more classes, each class modeling a respective functional component of the cloud-based deployment using a group of configurable class parameters, and the respective class definition of each class representing a requested state of the functional component modeled by the class, wherein at least one configurable class parameter for a particular uninstantiated class specifies a trigger event for dynamic reconfiguration of the functional component modeled by the particular class, the dynamic reconfiguration specified by statements in the configuration specification, wherein some of the functional components are software roles performed by an installed application in the cloud-based environment, wherein:

the one or more classes include at least an existing base class and at least a customized class extended from the existing base class,

the customized class inherits respective class parameters of the existing base class, and

the customized class modifies a value of at least one of the class parameters inherited from the existing base class to specify a software role for the customized class that is different than the base class, wherein the specified software role comprises model parameters that describe a configuration of the cloud-based deployment and wherein a second cloud-based deployment includes a second customized class extended from the existing base class, the second customized class specifies a second software role that comprises second model parameters that describe a different configuration;

deriving a plurality of application programming interface (API) calls for configuring the cloud-based deployment based on the class definitions of the one or more classes and based on at least one of the model parameters, wherein at least one of the API calls is configured to instantiate the uninstantiated class to monitor for the specified trigger event;

causing the plurality of API calls to be executed to configure the cloud-based deployment;

monitoring a performance metric of the cloud based deployment; and

based on a matching of the performance metric to the trigger event, causing a dynamic reconfiguration of the functional component according to the statements as specified in the configuration specification.

8. The system of claim 7 , wherein:

the one or more classes include at least an existing base class and at least a customized class extended from the existing base class,

the customized class inherits respective class parameters of the existing base class, and

the customized class modifies a value of at least one of the class parameters inherited from the existing base class or includes at least one new class parameter not present in the existing base class.

9. The system of claim 7 , wherein:

the functional component modeled by each class is one of a virtual device supporting a cloud-based environment, a service utilized in the cloud-based environment, or a combination of one or more thereof.

10. The system of claim 7 , wherein:

the specification language supports at least one of dependency between class definitions and connectivity between class definitions, and where a definition dependency between a first class and a second class represents a deployment dependency between respective components modeled by the first and the second class, and where a value assignment linking an instance of a second class to a class parameter of a first class represents a connectivity between respective components modeled by the first class and the second class.

11. The system of claim 7 , wherein some of the functional components are dependency relationships that define an order of operation that is based on software roles.

12. The system of claim 7 , wherein, the specification language supports at least one of dependency between a software role and one of a service or a virtual device.

13. A non-transitory computer-readable medium having instructions stored thereon, the instructions, when executed by one or more processors, cause the processors to perform operations comprising:

receiving a configuration specification for configuring a cloud-based deployment, the configuration specification being written in a specification language and requiring instantiation of respective class definitions of one or more classes, each class modeling a respective functional component of the cloud-based deployment using a group of configurable class parameters, and the respective class definition of each class representing a requested state of the functional component modeled by the class, wherein at least one configurable class parameter for a particular uninstantiated class specifies a trigger event for dynamic reconfiguration of the functional component modeled by the particular class, the dynamic reconfiguration specified by statements in the configuration specification, wherein some of the functional components are software roles performed by an installed application in the cloud-based environment, wherein:

the one or more classes include at least an existing base class and at least a customized class extended from the existing base class,

the customized class inherits respective class parameters of the existing base class, and

the customized class modifies a value of at least one of the class parameters inherited from the existing base class to specify a software role for the customized class that is different than the base class, wherein the specified software role comprises model parameters that describe a configuration of the cloud-based deployment and wherein a second cloud-based deployment includes a second customized class extended from the existing base class, the second customized class specifies a second software role that comprises second model parameters that describe a different configuration;

deriving a plurality of application programming interface (API) calls for configuring the cloud-based deployment based on the class definitions of the one or more classes and based on at least one of the model parameters, wherein at least one of the API calls is configured to instantiate the uninstantiated class to monitor for the specified trigger event;

causing the plurality of API calls to be executed to configure the cloud-based deployment;

monitoring a performance metric of the cloud based deployment; and

based on a matching of the performance metric to the trigger event, causing a dynamic reconfiguration of the functional component according to the statements as specified in the configuration specification.

14. The computer-readable medium of claim 13 , wherein:

the one or more classes include at least an existing base class and at least a customized class extended from the existing base class,

the customized class inherits respective class parameters of the existing base class, and

the customized class modifies a value of at least one of the class parameters inherited from the existing base class or includes at least one new class parameter not present in the existing base class.

15. The computer-readable medium of claim 13 , wherein:

the functional component modeled by each class is one of a virtual device supporting a cloud-based environment, a service utilized in the cloud-based environment, or a combination of one or more thereof.

16. The computer-readable medium of claim 13 , wherein:

the specification language supports at least one of dependency between class definitions and connectivity between class definitions, and where a definition dependency between a first class and a second class represents a deployment dependency between respective components modeled by the first and the second class, and where a value assignment linking an instance of a second class to a class parameter of a first class represents a connectivity between respective components modeled by the first class and the second class.

17. The computer-readable medium of claim 13 , wherein some of the functional components are dependency relationships that define an order of operation that is based on software roles.

18. The computer-readable medium of claim 13 , wherein, the specification language supports at least one of dependency between a software role and one of a service or a virtual device.

Assignments (3)
CHANGE OF NAME Recorded Jun 27, 2025
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 071772/0678 →
CHANGE OF NAME Recorded Oct 20, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044567/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2014
From: RISBOOD, PANKAJ; SARDA, PARAG KACHARULAL; KULKARNI, RAHUL S.; JAIN, ROHIT; SHENOY, VITTALDAS SACHIN; SAHASRANAMAN, VIVEK
To: GOOGLE INC.
Reel/Frame 031971/0398 →
Continuity (2)
Provisional Application 61453478 · Mar 16, 2011
Related Publication 20140123129A1 · May 1, 2014