Cloud fitness engineering
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for generating a cloud-computing system architecture. In some implementations, target performance criteria associated with an application executable at least in part on a cloud-computing system is obtained. Target process parameters related to processes associated with the execution of the application are generating using machine-learning models from the target performance criteria. Simulations of the execution of the application on respective ones of candidate computing systems are performed. Each candidate computing system includes a corresponding sequence of multiple architecture components at least a portion of which represents components of the clouding computing system. At least one of the candidate computing systems is selected that satisfies the target process parameters. Instructions are provided for deploying the selected computing system for execution of the application.
1 . A computer implemented method comprising:
obtaining, at one or more processing devices, a set of target performance criteria associated with an application executable at least in part on a cloud-computing system;
generating, using one or more machine-learning models from the set of target performance criteria, a set of target process parameters related to one or more processes associated with execution of the application;
performing simulations, by the one or more processing devices, of the execution of the application on respective ones of a plurality of candidate computing systems, wherein each candidate computing system includes a corresponding sequence of multiple architecture components at least a portion of which represents components of the cloud-computing system, wherein performing the simulations comprises:
identifying at least one candidate computing system from the plurality of candidate computing systems;
generating a simulated environment based on the identified at least one candidate computing system;
identifying, stimuli conditions associated with:
the execution of the application within the generated simulated environment, and
the identified at least one candidate computing system;
providing the identified stimuli conditions to a simulation of the execution of the application by the identified at least one candidate computing system, within the generated simulated environment;
performing simulation, by the one or more processing devices, of the execution of the application using the identified at least one candidate computing system, within the generated simulated environment; and
generating the results of the simulation affected by the identified stimuli conditions;
selecting, based on results of the simulations, the identified at least one of the candidate computing systems that satisfies the set of target process parameters; and
providing instructions for deploying the selected at least one of the candidate computing system for execution of the application, the selected at least one of the candidate computing system being deployed at least in part on the cloud-computing system.
2 . The computer-implemented method of claim 1 , further comprising:
receiving, at the one or more computing devices, information pertaining to execution of the application on the deployed at least one of the candidate computing system;
determining, based on the information, that execution of the application on the deployed at least one of the candidate computing system does not satisfy the set of target performance criteria;
responsive to determining that the execution of the application on the deployed at least one of the candidate computing system does not satisfy the set of target performance criteria, determining, by the one or more computing devices, adjustments to be made to the deployed at least one of the candidate computing system; and
providing instructions for adjusting the deployed at least one of the candidate computing system.
3 . The computer-implemented method of claim 2 , wherein determining, by the one or more computing devices, adjustments to be made to the deployed at least one of the candidate computing system comprises:
creating a candidate computing architecture to satisfy the set of target performance criteria, wherein the created computing architecture is included into a sequence of multiple architectures corresponding to the deployed at least one candidate computing system.
4 . The computer-implemented method of claim 1 , wherein the set of target process parameters include parameters representing one or more of: throughput, latency, response time, error rates, fault tolerance, or data security.
5 . The computer-implemented method of claim 1 , wherein the multiple architecture components include one or more of: a web server, a virtual machine, an application programming interface (API) gateway, a load balancer, a storage component, or a database.
6 . The computer-implemented method of claim 1 , wherein the multiple architecture components represent a combination of computational resources, database resources, and storage resources.
7 . The computer implemented method of claim 6 , wherein the multiple architecture components are representative of one or more policies associated with the execution of the application, including one or more of: load balancing policies, data replication policies, data partitioning policies, or virtual machine policies.
8 . The computer-implemented method of claim 1 , wherein the stimuli conditions include one or more of: network outage conditions, delay conditions due to a component malfunction or disconnection, configuration changes, security breaches, or load changes.
9 . The computer implemented method of claim 1 , wherein providing the instructions for deploying the selected computing system for execution of the application comprises:
providing instructions for selecting portions of the cloud-computing system for deploying at least a portion of the selected at least one candidate computing system; and
providing, to a client device, a notification indicating deployment of the selected at least one candidate computing system for executing the application.
10 . The computer-implemented method of claim 1 , further comprising:
decomposing the set of target performance criteria, using the one or more machine-learning models, into the set of target process parameters and the sequence of multiple architecture components corresponding to each of the candidate computing system of the plurality of candidate computing system.
11 . A system comprising:
one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:
obtaining, at one or more processing devices, a set of target performance criteria associated with an application executable at least in part on a cloud-computing system;
generating, using one or more machine-learning models from the set of target performance criteria, a set of target process parameters related to one or more processes associated with execution of the application;
performing simulations, by the one or more processing devices, of the execution of the application on respective ones of a plurality of candidate computing systems, wherein each candidate computing system includes a corresponding sequence of multiple architecture components at least a portion of which represents components of the cloud-computing system, wherein performing the simulations comprises:
identifying at least one candidate computing system from the plurality of candidate computing systems;
generating a simulated environment associated with the identified at least one candidate computing system;
identifying, stimuli conditions associated with:
the execution of the application within the generated simulated environment, and
the identified at least one candidate computing system;
providing the identified stimuli conditions to a simulation of the execution of the application by the identified at least one candidate computing system, within the generated simulated environment;
performing simulation, by the one or more processing devices, of the execution of the application using the identified at least one candidate computing system, within the generated simulated environment; and
generating the results of the simulation affected by the identified stimuli conditions;
selecting, based on results of the simulations, the identified at least one of the candidate computing systems that satisfies the set of target process parameters; and
providing instructions for deploying the selected at least one of the candidate computing system for execution of the application, the selected at least one of the candidate computing system being deployed at least in part on the cloud-computing system.
12 . The system of claim 11 , further comprising:
receiving, at the one or more computing devices, information pertaining to execution of the application on the deployed at least one of the candidate computing system;
determining, based on the information, that execution of the application on the deployed at least one of the candidate computing system does not satisfy the set of target performance criteria;
responsive to determining that the execution of the application on the deployed at least one of the candidate computing system does not satisfy the set of target performance criteria, determining, by the one or more computing devices, adjustments to be made to the deployed at least one of the candidate computing system; and
providing instructions for adjusting the deployed at least one of the candidate computing system.
13 . The system of claim 12 , wherein determining, by the one or more computing devices, adjustments to be made to the deployed at least one of the candidate computing system comprises:
creating a candidate computing architecture to satisfy the set of target performance criteria, wherein the created computing architecture is included into a sequence of multiple architectures corresponding to the deployed at least one candidate computing system.
14 . The system of claim 11 , wherein the set of target process parameters include parameters representing one or more of: throughput, latency, response time, error rates, fault tolerance, or data security.
15 . The system of claim 11 , wherein the multiple architecture components include one or more of: a web server, a virtual machine, an application programming interface (API) gateway, a load balancer, a storage component, or a database.
16 . The system of claim 11 , wherein the multiple architecture components represent a combination of computational resources, database resources, and storage resources.
17 . The system of claim 16 , wherein the multiple architecture components are representative of one or more policies associated with the execution of the application, including one or more of: load balancing policies, data replication policies, data partitioning policies, or virtual machine policies.
18 . The system of claim 11 , wherein the stimuli conditions include one or more of: network outage conditions, delay conditions due to a component malfunction or disconnection, configuration changes, security breaches, or load changes.
19 . The system of claim 11 , further comprising:
decomposing the set of target performance criteria, using the one or more machine-learning model, into the set of target process parameters and the sequence of multiple architecture components corresponding to each of the candidate computing system of the plurality of candidate computing system.
20 . A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:
obtaining, at one or more processing devices, a set of target performance criteria associated with an application executable at least in part on a cloud-computing system;
generating, using one or more machine-learning models from the set of target performance criteria, a set of target process parameters related to one or more processes associated with execution of the application;
performing simulations, by the one or more processing devices, of the execution of the application on respective ones of a plurality of candidate computing systems, wherein each candidate computing system includes a corresponding sequence of multiple architecture components at least a portion of which represents components of the cloud-computing system, wherein performing the simulations comprises:
identifying at least one candidate computing system from the plurality of candidate computing systems;
generating a simulated environment based on the identified at least one candidate computing system;
identifying, stimuli conditions associated with:
the execution of the application within the generated simulated environment, and
the identified at least one candidate computing system;
providing the identified stimuli conditions to a simulation of the execution of the application by the identified at least one candidate computing system, within the generated simulated environment;
performing simulation, by the one or more processing devices, of the execution of the application using the identified at least one candidate computing system, within the generated simulated environment; and
generating the results of the simulation affected by the identified stimuli conditions;
selecting, based on results of the simulations, the identified at least one of the candidate computing systems that satisfies the set of target process parameters; and
providing instructions for deploying the selected at least one of the candidate computing system for execution of the application, the selected at least one of the candidate computing system being deployed at least in part on the cloud-computing system.