Managing tasks in a cloud computing environment using multiple orchestration tools
Tasks in a cloud computing environment can be managed using multiple orchestration tools. For example, a request to perform a particular task in a cloud computing environment can be received. A database that includes relationships between multiple orchestration tools and characteristics of the multiple orchestration tools can be accessed. A first orchestration tool can be selected from the database based on a first characteristic related to the first orchestration tool in the database. The first orchestration tool can be capable of performing a first part of the particular task. A second orchestration tool can be selected from the database based on a second characteristic related to the second orchestration tool in the database. The second orchestration tool can be capable of performing a second part of the particular task. The particular task can be performed in the cloud computing environment using the first orchestration tool and the second orchestration tool.
1. A method comprising:
receiving, by a computing device, a request to perform a configuration process for configuring a cloud computing environment, wherein the configuration process includes a first phase in which one or more virtual resources are deployed in the cloud computing environment and a second phase in which software or services are configured in the cloud computing environment using the one or more virtual resources; and
in response to the request:
accessing, by the computing device, a database that includes a plurality of entries that specify relationships between a plurality of orchestration tools and a plurality of functional capabilities associated with the plurality of orchestration tools, each orchestration tool in the plurality of orchestration tools being a respective piece of downloadable software, wherein each entry in the plurality of entries corresponds to a respective orchestration tool of the plurality of orchestration tools and includes a plurality of fields corresponding to the plurality of functional capabilities, and wherein the plurality of functional capabilities include two or more capabilities selected from the following group of capabilities:
a first capability of the respective orchestration tool to work with a particular cloud-services provider;
a second capability of the respective orchestration tool to work with a set of software tools for building and managing cloud computing platforms;
a third capability of the respective orchestration tool to run, create, and debug resources;
a fourth capability of the respective orchestration tool to run and debug certain software configurations;
a fifth capability of the respective orchestration tool to support a certain feature:
a sixth capability of the respective orchestration tool to deploy a virtual resource; and
a seventh capability of the respective orchestration tool to have a certain level of flexibility;
selecting, by the computing device, a first orchestration tool from among the plurality of orchestration tools based on a first relationship in the database between the first orchestration tool and a first functional capability among the plurality of functional capabilities, the first functional capability being one of the first through seventh capabilities, wherein the first relationship indicates that the first orchestration tool is superior to a second orchestration tool in at least one way with respect to implementing the first phase of the configuration process;
selecting, by the computing device, the second orchestration tool from among the plurality of orchestration tools based on a second relationship in the database between the second orchestration tool and a second functional capability among the plurality of functional capabilities, the second orchestration tool being different from the first orchestration tool, the second functionality capability being another one of the first through seventh capabilities that is different from the first functional capability, wherein the second relationship indicates that the second orchestration tool is superior to the first orchestration tool in at least one way with respect to implementing the second phase of the configuration process; and
performing, by the computing device, the requested configuration process by causing the selected first orchestration tool to implement the first phase and the selected second orchestration tool to implement the second phase.
2. The method of claim 1 , wherein the database is a lookup table, and the first phase includes at least one of: (i) provisioning a virtual machine; (ii) configuring a particular network resource in the cloud computing environment; (iii) configuring a particular data-storage resource for use in the cloud computing environment; or (iv) configuring the cloud computing environment to have an autoscaling capability in which an amount of computer resources dedicated to a task is increased or decreased based on conditions of the cloud computing environment.
3. The method of claim 1 , wherein the first relationship is expressed as a numerical score in the database.
4. The method of claim 1 , wherein the first functional capability includes the second capability or third capability.
5. The method of claim 1 , wherein the first functionality capability is the first capability, and wherein:
the first phase includes configuring the cloud computing environment using the particular cloud-services provider;
the first relationship indicates that the first orchestration tool has the first functional capability; and
another relationship in the database between another orchestration tool among the plurality of orchestration tools and the first functional capability indicates that the other orchestration tool lacks the first functional capability such that the other orchestration tool is incapable of configuring the cloud computing environment using the particular cloud-services provider.
6. The method of claim 1 , wherein the first relationship indicates that the first orchestration tool is capable of performing the first functional capability faster than at least one other orchestration tool specified in the database.
7. The method of claim 1 , wherein:
the first phase includes allocating computing resources for a cluster of nodes that forms at least a portion of the cloud computing environment; and
the second phase includes installing software on the cluster of nodes.
8. The method of claim 1 , wherein the plurality of orchestration tools are configured to provision and manage resources in the cloud computing environment.
9. The method of claim 1 , wherein the plurality of fields includes at least three fields, and wherein the plurality of functional capabilities includes at least three different types of functional capabilities corresponding to the at least three fields.
10. A system comprising:
a processor; and
a non-transitory computer-readable medium on which instructions executable by the processor are stored for causing the processor to:
receive a request to perform a configuration process for configuring a cloud computing environment, wherein the configuration process includes a first phase in which virtual resources are deployed in the cloud computing environment and a second phase in which software or services are configured in the cloud computing environment; and
in response to the request:
access a database that includes a plurality of entries that specify relationships between a plurality of orchestration tools and a plurality of functional capabilities associated with the plurality of orchestration tools, each orchestration tool in the plurality of orchestration tools being a respective piece of downloadable software, wherein each entry in the plurality of entries corresponds to a respective orchestration tool of the plurality of orchestration tools and includes a plurality of fields corresponding to the plurality of functional capabilities, and wherein the plurality of functional capabilities include two or more capabilities selected from the following group of capabilities:
a first capability of the respective orchestration tool to work with a particular cloud-services provider;
a second capability of the respective orchestration tool to work with a set of software tools for building and managing cloud computing platforms;
a third capability of the respective orchestration tool to run, create, and debug resources;
a fourth capability of the respective orchestration tool to run and debug certain software configurations;
a fifth capability of the respective orchestration tool to support a certain feature;
a sixth capability of the respective orchestration tool to deploy a virtual resource; and
a seventh capability of the respective orchestration tool to have a certain level of flexibility;
select a first orchestration tool from among the plurality of orchestration tools based on a first relationship in the database between the first orchestration tool and a first functional capability among the plurality of functional capabilities, the first functional capability being one of the first through seventh capabilities, wherein the first relationship indicates that the first orchestration tool is superior to a second orchestration tool in at least one way with respect to implementing the first phase of the configuration process;
select the second orchestration tool from among the plurality of orchestration tools based on a second relationship in the database between the second orchestration tool and a second functional capability among the plurality of functional capabilities, the second orchestration tool being different from the first orchestration tool, the second functionality capability being another one of the first through seventh capabilities that is different from the first functional capability, wherein the second relationship indicates that the second orchestration tool is superior to the first orchestration tool in at least one way with respect to implementing the second phase of the configuration process; and
perform the requested configuration process by causing the selected first orchestration tool to implement the first phase and the selected second orchestration tool to implement the second phase.
11. The system of claim 10 , wherein the database is a lookup table, and the first phase includes at least one of: (i) provisioning a virtual machine; (ii) configuring a particular network resource in the cloud computing environment; (iii) configuring a particular data-storage resource for use in the cloud computing environment; or (iv) configuring the cloud computing environment to have an autoscaling capability in which an amount of computer resources dedicated to a task is increased or decreased based on conditions of the cloud computing environment.
12. The system of claim 10 , wherein the first relationship is expressed as a numerical score in the database.
13. The system of claim 10 , wherein the first functional capability includes the second capability or the third capability.
14. The system of claim 10 , wherein the first functionality capability is the first capability, and wherein:
the first phase includes configuring the cloud computing environment using the particular cloud-services provider;
the first relationship indicates that the first orchestration tool has the first functional capability; and
another relationship in the database between another orchestration tool among the plurality of orchestration tools and the first functional capability indicates that the other orchestration tool lacks the first functional capability such that the other orchestration tool is incapable of configuring the cloud computing environment using the particular cloud-services provider.
15. The system of claim 10 , wherein the first relationship indicates that the first orchestration tool is capable of performing the first functional capability faster than at least one other orchestration tool specified in the database.
16. The system of claim 10 , wherein:
the first phase includes allocating computing resources for a cluster of nodes that forms at least a portion of the cloud computing environment; and
the second phase includes installing software on the cluster of nodes.
17. A non-transitory computer-readable medium comprising program code that is executable by a processing device for causing the processing device to:
receive a request to perform a configuration process for configuring a cloud computing environment, wherein the configuration process includes a first phase in which virtual resources are deployed in the cloud computing environment and a second phase in which software or services are configured in the cloud computing environment;
access a database that includes a plurality of entries that specify relationships between a plurality of orchestration tools and a plurality of functional capabilities associated with the plurality of orchestration tools, each orchestration tool in the plurality of orchestration tools being a respective piece of downloadable software, wherein each entry in the plurality of entries corresponds to a respective orchestration tool of the plurality of orchestration tools and includes a plurality of fields corresponding to the plurality of functional capabilities, and wherein the plurality of functional capabilities include two or more capabilities selected from the following group of capabilities:
a first capability of the respective orchestration tool to work with a particular cloud-services provider;
a second capability of the respective orchestration tool to work with a set of software tools for building and managing cloud computing platforms;
a third capability of the respective orchestration tool to run, create, and debug resources;
a fourth capability of the respective orchestration tool to run and debug certain software configurations;
a fifth capability of the respective orchestration tool to support a certain feature;
a sixth capability of the respective orchestration tool to deploy a virtual resource; and
a seventh capability of the respective orchestration tool to have a certain level of flexibility;
select a first orchestration tool from among the plurality of orchestration tools based on a first relationship in the database between the first orchestration tool and a first functional capability among the plurality of functional capabilities, the first functional capability being one of the first through seventh capabilities, wherein the first relationship indicates that the first orchestration tool is superior to a second orchestration tool in at least one way with respect to implementing the first phase of the configuration process;
select the second orchestration tool from among the plurality of orchestration tools based on a second relationship in the database between the second orchestration tool and a second functional capability among the plurality of functional capabilities, the second orchestration tool being different from the first orchestration tool, the second functionality capability being another one of the first through seventh capabilities that is different from the first functional capability, wherein the second relationship indicates that the second orchestration tool is superior to the first orchestration tool in at least one way with respect to implementing the second phase of the configuration process; and
perform the requested configuration process by causing the selected first orchestration tool to implement the first phase and the selected second orchestration tool to implement the second phase.
18. The non-transitory computer-readable medium of claim 17 , wherein the database is a lookup table, and the first phase includes at least one of: (i) provisioning a virtual machine; (ii) configuring a particular network resource in the cloud computing environment; (iii) configuring a particular data-storage resource for use in the cloud computing environment; or (iv) configuring the cloud computing environment to have an autoscaling capability in which an amount of computer resources dedicated to a task is increased or decreased based on conditions of the cloud computing environment.
19. The non-transitory computer-readable medium of claim 17 , wherein the first functional capability includes the second capability or the third capability.
20. The non-transitory computer-readable medium of claim 17 , wherein the first functionality capability is the first capability, and wherein:
the first phase includes configuring the cloud computing environment using the particular cloud-services provider;
the first relationship indicates that the first orchestration tool has the first functional capability; and
another relationship in the database between another orchestration tool among the plurality of orchestration tools and the first functional capability indicates that the other orchestration tool lacks the first functional capability such that the other orchestration tool is incapable of configuring the cloud computing environment using the particular cloud-services provider.