IP Library Granted Patent US 12664023
Granted Patent B2
US 12664023 · App. 18/116,225 · Granted Jun 23, 2026

Cloud architecture generation, simulation, and optimization

Inventor: Garrett Lewellen (Longmont, CO)
Assignee: Oracle International Corporation
G06F9/505G06F9/5072
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 12664023
App. No.
18/116,225
Granted
Jun 23, 2026
Kind
B2
Abstract

Techniques for generating, simulating, and optimizing one or more provider-specific cloud-based architectures from a provider-independent architecture definition are disclosed. An architecture generator maps provider-independent service definitions to provider-specific service components for one or more specific cloud service providers. An architecture simulator simulates execution of a set of operations on the provider-specific cloud-based architectures to determine one or more performance and cost metrics. An architecture optimizer varies one or more design choices or parameters of a provider-specific service component to suggest which variant is optimal with respect to an optimization objective.

Claims (257)

1 . One or more non-transitory computer readable media storing instructions which, when executed by one or more hardware processors, causes performance of operations comprising:

receiving a provider-independent architecture definition for a cloud-based system, wherein the provider-independent architecture definition defines:

a set of one or more user-selected components;

a set of one or more descriptions for service components that are to be selected based on provider-specific services for cloud-based systems; and

a set of one or more connections representing one or more data flows among the set of one or more user-selected components and the service components;

generating a first provider-specific architecture, corresponding to a first cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the first provider-specific architecture, wherein a first set of system-selected service components corresponding to the first cloud provider is based on a mapping of the set of one or more descriptions to a first set of provider-specific services corresponding to the first cloud provider, and wherein the first set of system-selected service components is represented by a first set of one or more simulation models; and

configuring the one or more data flows based on the one or more connections;

receiving an input workload;

executing the first set of one or more simulation models representing the first set of system-selected service components on the input workload;

generating a second provider-specific architecture, corresponding to a second cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the second provider-specific architecture, wherein a second set of system-selected service components corresponding to the second cloud provider is based on a mapping of the set of one or more descriptions to a second set of provider-specific services corresponding to the second cloud provider, and wherein the second set of system-selected service components is represented by a second set of one or more simulation model; and

configuring the one or more data flows based on the one or more connections;

executing the second set of one or more simulation models representing the second set of system-selected service components on the input workload; and

presenting information based on a first performance metric for the first provider-specific architecture and a second performance metric for the second provider-specific architecture;

wherein the first performance metric is based on processing the input workload by the first set of one or more simulation models, and

wherein the second performance metric is based on processing the input workload by the second set of one or more simulation models.

2 . The one or more non-transitory computer readable media of claim 1 , wherein the mapping comprises:

an association between a first description from the set of one or more descriptions to a plurality of provider-specific service components; and

a selected one of the plurality of provider-specific service components, wherein the selection is based on at least one of:

a dependency between another provider-specific service component in the provider-specific architecture and the selected one of the plurality of provider-specific service components;

real-time data associated with data traffic within the provider-specific architecture;

operations performed by a user-selected component; or

an association between a functionality of the selected one of the plurality of provider-specific service components and a functionality specified in the description.

3 . The one or more non-transitory computer readable media of claim 1 , wherein configuring the one or more data flows comprises:

configuring a first dataflow between a first user-selected component and a first system-selected component based on at least one of:

data flow information associated with a connection between the first user-selected component and the first system-selected component;

an interface element associated with first user-selected component and the first system-selected component;

an association between a type of data output by one of the first user-selected component and the first system-selected component and a type of data received as input by another of first user-selected component and the first system-selected component; or

a previously configured provider-specific architecture that uses the first system- selected component and a similar first user-selected component.

4 . The one or more non-transitory computer readable media of claim 1 , wherein:

the first performance metric is based on at least one of (a) one or more first processing metrics and (b) one or more first communication metrics, wherein:

the one or more first processing metrics are associated with processing the input workload by the first set of one or more simulation models; and

the first one or more communication metrics are associated with communicating data between respective provider-specific service components in the first set of provider-specific service components during execution of the first set of one or more simulation models; and

the second performance metric is based on at least one of (a) one or more second processing metrics and (b) one or more second communication metrics, wherein:

the second one or more processing metrics are associated with processing the input workload by the second set of one or more simulation models; and

the second one or more communication metrics are associated with communicating data between respective provider-specific service components in the second set of provider-specific service components during execution of the second set of one or more simulation models.

5 . The one or more non-transitory computer readable media of claim 1 , wherein the first set of one or more simulation models or the second set of one or more simulation models comprises at least one of:

a procedure to estimate a time needed to execute an event by the provider-specific service component;

a procedure for producing a new follow-on event from a received event;

a procedure for estimating a cost of processing an event;

an adjustable parameter to influence an event cost; or an adjustable parameter to influence a completion time.

6 . The one or more non-transitory computer readable media of claim 1 , wherein:

the presented information comprises a recommendation of one of the first provider-specific architecture and the second provider-specific architecture based on the first performance metric and the second performance metric.

7 . The one or more non-transitory computer readable media of claim 1 , wherein the input workload comprises a first set of operations and wherein executing a simulation model comprises simulating, for an operation in the set of operations, at least one of:

a creation of an event;

an acceptance of an event by a service component;

a queueing of an event;

a processing of an event; or a termination of an event.

8 . The one or more non-transitory computer readable media of claim 1 , further comprising instructions which, when executed by the one or more hardware processors, causes performance of operations comprising:

receiving a selection of one of the first and second provider-specific architectures;

generating a first variant provider-specific architecture having a first variant of a provider-specific service component that has at least two variants;

executing a third set of one or more simulation models, representing the set of system-selected service components associated with the first variant provider-specific architecture, on the input workload;

generating a second variant provider-specific architecture having a second variant of the provider-specific service component;

executing a fourth set of one or more simulation models, representing the set of system-selected service components associated with the second variant provider-specific architecture, on the input workload;

and

presenting a selection of the first variant of the provider-specific service component or the second variant of the provider-specific service component for the selected provider-specific architecture based on (a) a first optimization metric, (b) a second optimization metric, and (c) an objective, wherein:

the first optimization metric is associated with processing the input workload on the third set of simulation models,

the second optimization metric is associated with processing the input workload on the fourth set of simulation models, and

the selected variant of the provider-specific service component is associated with the optimization metric that satisfies the objective.

9 . The one or more non-transitory computer readable media of claim 8 , wherein the first variant comprises a first provider-specific service component associated with a first description from the set of one or more descriptions in the provider-independent architecture definition and the second variant comprises a second provider-specific service component associated with the first description from the set of one or more descriptions in the provider-independent architecture definition.

10 . The one or more non-transitory computer readable media of claim 8 , wherein the first variant comprises a first set of parameters applied to a provider-specific service component and the second variant comprises a second set of parameters applied to the provider-specific service component.

11 . The one or more non-transitory computer readable media of claim 8 , further comprising optimizing the selected provider-specific architecture with respect to one or more constraints on the first optimization metric and the second optimization metric.

12 . One or more non-transitory computer readable media storing instructions which, when executed by one or more hardware processors, causes performance of operations comprising:

receiving a provider-independent architecture definition for a cloud-based system, wherein the provider-independent architecture defines:

a set of one or more user-selected components;

a set of one or more descriptions for service components that are to be selected based on provider-specific services for cloud-based systems; and

a set of one or more connections representing one or more data flows among the set of one or more user-selected components and the set of one or more descriptions for service components;

generating a first version of a provider-specific architecture, corresponding to a first cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the first version of the provider-specific architecture, wherein a first set of system-selected service components corresponding to the first cloud provider is based on a mapping of the set of one or more descriptions to a first set of provider-specific services corresponding to the first cloud provider, and wherein the first set of system-selected service components includes a first variant of a particular system-selected service component; and

configuring the one or more data flows based on the one or more connections in the first version of the provider-specific architecture;

generating a second version of a provider-specific architecture, corresponding to the first cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the second version of the provider-specific architecture, wherein the second set of system-selected service components corresponding to the first cloud provider is based on a mapping of the set of one or more descriptions to the first set of provider-specific services corresponding to the first cloud provider, and wherein the second set of system-selected service components includes a second variant of a particular system-selected service component; and

configuring the one or more data flows based on the one or more connections in the second version of the provider-specific architecture; and

optimizing the first-provider-specific architecture with respect to at least one objective;

receiving an input workload;

executing a first subset of one or more simulation models, representing the first set of system-selected service components, on the input workload;

executing a second subset of one or more simulation models, representing the second set of system-selected service components, on the input workload;

presenting a selection of the first variant of the provider-specific service component or the second variant of the provider-specific service component based on (a) a first optimization metric and (b) a second optimization metric, wherein:

the first optimization metric is associated with processing the input workload on the first set of simulation models,

the second optimization metric is associated with processing the input workload on the second set of simulation models, and

the selected variant of the provider-specific service component is associated with the optimization metric that satisfies the at least one objective.

13 . The one or more non-transitory computer readable media of claim 12 , further comprising:

generating the first optimization metric based on a first set of one or more performance metrics, wherein the first set of one or more performance metrics are based on processing the input workload by the first set of one or more simulation models;

generating the second optimization metric based on a second set of one or more performance metrics, wherein the second set of one or more performance metrics are based on processing the input workload by the second set of one or more simulation models; and

presenting a recommendation of one of the first version of the provider-specific architecture or the second version of the provider-specific architecture having the optimization metric that satisfies the objective.

14 . The one or more non-transitory computer readable media of claim 13 , further comprising instructions which, when executed by the one or more hardware processors, causes performance of operations comprising:

generating a second provider-specific architecture, corresponding to a second cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the second provider-specific architecture, wherein a second set of system-selected service components corresponding to the second cloud provider is based on a mapping of the set of one or more descriptions to a second set of provider-specific services corresponding to the second cloud provider, and wherein the second set of system-selected service components is represented by a third set of one or more simulation models; and

configuring the one or more data flows based on the one or more connections;

executing the third set of one or more simulation models representing the second set of system-selected service components on the input workload; and

presenting information based on the first set of one or more performance metrics for the first provider-specific architecture and a second performance metric for the second provider-specific architecture, wherein the second performance metric is based on processing the input workload by the third set of one or more simulation models.

15 . The one or more non-transitory computer readable media of claim 12 , wherein generating a version of the provider-specific architecture further comprises:

modifying the system-selected service component using a parameter value from a set of parameters in the one or more simulation models representing the system-selected service component as a variant; and

including the modified system-selected service component in the first version of the provider-specific architecture.

16 . The one or more non-transitory computer readable media of claim 12 , wherein:

the first variant of the system-selected service component comprises a first design choice of a set of design choices in an associated provider-specific mapping for the system-selected service component; and

the second variant of the system-selected service component comprises a second design choice.

17 . The one or more non-transitory computer readable media of claim 12 , further comprising:

executing a third subset of one or more simulation models, representing a third set of system-selected service components that includes a third variant of the particular system-select service component, on the input workload;

executing a fourth subset of one or more simulation models, representing a fourth set of system-selected service components that includes a fourth variant of the particular system-select service component, on the input workload;

and

presenting a selection of a version of the provider-specific architecture corresponding to the first, second, third, or fourth variant of the particular system-select service component based on (a) the first optimization metric, (b) the second optimization metric, (c) a third optimization metric, and (d) a fourth optimization metric, wherein:

the third optimization metric is associated with processing the input workload on the third set of simulation models, and

the fourth optimization metric is associated with processing the input workload on the fourth set of simulation models, and the selected variant of the provider-specific service component is associated with the optimization metric that satisfies the at least one objective.

18 . The one or more non-transitory computer readable media of claim 17 , wherein the first variant and the second variant correspond to a first design choice and a second design choice for the particular system-selected service component, and wherein the third variant and the fourth variant correspond to a first parameter selection and a second parameter selection for the particular system-selected service component.

19 . A system comprising:

one or more hardware processors;

one or more non-transitory computer-readable media; and

program instructions stored on the one or more non-transitory computer-readable media which, when executed by one or more hardware processors, cause the system to perform operations comprising:

receiving a provider-independent architecture definition for a cloud-based system, wherein the provider-independent architecture defines:

a set of one or more user-selected components;

a set of one or more descriptions for service components that are to be selected based on provider-specific services for cloud-based systems; and

a set of one or more connections representing one or more data flows among the set of one or more user-selected components and the set of one or more service components;

generating a first provider-specific architecture, corresponding to a first cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the first provider-specific architecture, wherein a first set of system-selected service components corresponding to the first cloud provider is based on a mapping of the set of one or more descriptions to a first set of provider-specific services corresponding to the first cloud provider, and wherein the first set of system-selected service components is represented by a first set of one or more simulation models; and

configuring the one or more data flows based on the one or more connections;

receiving an input workload;

executing the first set of one or more simulation models representing the first set of system-selected service components on the input workload;

generating a second provider-specific architecture, corresponding to a second cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the second provider-specific architecture, wherein a second set of provider-specific services corresponding to the second cloud provider is based on a mapping of the set of one or more descriptions to a second set of provider-specific services corresponding to the second cloud provider, and wherein the second set of system-selected service components is represented by a second set of one or more simulation models; and

configuring the one or more data flows based on the one or more connections;

executing the second set of one or more simulation models representing the second set of system-selected service components on the input workload; and

presenting information based on a first performance metric for the first provider-specific architecture and a second performance metric for the second provider-specific architecture;

wherein the first performance metric is based on processing the input workload by the first set of one or more simulation models, and

wherein the second performance metric is based on processing the input workload by the second set of one or more simulation models.

20 . A method executed by at least one device including a hardware processor comprising:

receiving a provider-independent architecture definition for a cloud-based system, wherein the provider-independent architecture defines:

a set of one or more user-selected components;

a set of one or more descriptions for service components that are to be selected based on provider-specific services for cloud-based systems; and

a set of one or more connections representing one or more data flows among the set of one or more user-selected components and the set of one or more service components;

generating a first provider-specific architecture, corresponding to a first cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the first provider-specific architecture, wherein a first set of system-selected service components corresponding to the first cloud provider is based on a mapping of the set of one or more descriptions to a first set of provider-specific services corresponding to the first cloud provider, and wherein the first set of system-selected service components is represented by a first set of one or more simulation models; and

configuring the one or more data flows based on the one or more connections;

receiving an input workload;

executing the first set of one or more simulation models representing the first set of system-selected service components on the input workload;

generating a second provider-specific architecture, corresponding to a second cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the second provider-specific architecture, wherein a second set of provider-specific services corresponding to the second cloud provider is based on a mapping of the set of one or more descriptions to a second set of provider-specific services corresponding to the second cloud provider, and wherein the second set of system-selected service components is represented by a second set of one or more simulation models; and

configuring the one or more data flows based on the one or more connections;

executing the second set of one or more simulation models representing the second set of system-selected service components on the input workload; and

presenting information based on a first performance metric for the first provider-specific architecture and a second performance metric for the second provider-specific architecture;

wherein the first performance metric is based on processing the input workload by the first set of one or more simulation models, and

wherein the second performance metric is based on processing the input workload by the second set of one or more simulation models.

21 . The method of claim 20 , wherein the mapping comprises:

an association between a first description from the set of one or more descriptions to a plurality of provider-specific service components; and

a selected one of the plurality of provider-specific service components, wherein the selection is based on at least one of:

a dependency between another provider-specific service component in the provider-specific architecture and the selected one of the plurality of provider-specific service components;

real-time data associated with data traffic within the provider-specific architecture;

operations performed by a user-selected component; or

an association between a functionality of the selected one of the plurality of provider-specific service components and a functionality specified in the description.

22 . The method of claim 20 , wherein configuring the one or more data flows comprises:

configuring a first dataflow between a first user-selected component and a first system-selected component based on at least one of:

data flow information associated with a connection between the first user-selected component and the first system-selected component;

an interface element associated with first user-selected component and the first system-selected component;

an association between a type of data output by one of the first user-selected component and the first system-selected component and a type of data received as input by another of first user-selected component and the first system-selected component; or

a previously configured provider-specific architecture that uses the first system-selected component and a similar first user-selected component.

23 . The method of claim 20 , wherein:

the first performance metric is based on at least one of (a) one or more first processing metrics and (b) one or more first communication metrics, wherein:

the one or more first processing metrics are associated with processing the input workload by the first set of one or more simulation models; and

the first one or more communication metrics are associated with communicating data between respective provider-specific service components in the first set of provider-specific service components during execution of the first set of one or more simulation models; and

the second performance metric is based on at least one of (a) one or more second processing metrics and (b) one or more second communication metrics, wherein:

the second one or more processing metrics are associated with processing the input workload by the second set of one or more simulation models: and

the second one or more communication metrics are associated with communicating data between respective provider-specific service components in the second set of provider-specific service components during execution of the second set of one or more simulation models.

24 . The method of claim 20 , wherein the first set of one or more simulation models or the second set of one or more simulation models comprises at least one of:

a procedure to estimate a time needed to execute an event by the provider-specific service component;

a procedure for producing a new follow-on event from a received event;

a procedure for estimating a cost of processing an event;

an adjustable parameter to influence an event cost; or

an adjustable parameter to influence a completion time.

25 . The method of claim 20 , wherein: presented information comprises a recommendation of one of the first provider-specific architecture and the second provider-specific architecture based on the first performance metric and the second performance metric.

26 . The method of claim 20 , wherein the input workload comprises a first set of operations and wherein executing a simulation model comprises simulating, for an operation in the set of operations, at least one of:

a creation of an event;

an acceptance of an event by a service component;

a queueing of an event;

a processing of an event; or

a termination of an event.

27 . The method of claim 20 , further comprising:

receiving a selection of one of the first and second provider-specific architectures;

generating a first variant provider-specific architecture having a first variant of a provider-specific service component that has at least two variants;

executing a third set of one or more simulation models, representing the set of system-selected service components associated with the first variant provider-specific architecture, on the input workload;

generating a second variant provider-specific architecture having a second variant of the provider-specific service component;

executing a fourth set of one or more simulation models, representing the set of system-selected service components associated with the second variant provider-specific architecture, on the input workload;

and

presenting a selection of the first variant of the provider-specific service component or the second variant of the provider-specific service component for the selected provider-specific architecture based on

(a) a first optimization metric, (b) a second optimization metric, and (c) an objective, wherein:

the first optimization metric is associated with processing the input workload on the third set of simulation models,

the second optimization metric is associated with processing the input workload on the fourth set of simulation models, and

the selected variant of the provider-specific service component is associated with the optimization metric that satisfies the objective.

28 . The method of claim 27 , wherein the first variant comprises a first provider-specific service component associated with a first description from the set of one or more descriptions in the provider-independent architecture definition and the second variant comprises a second provider-specific service component that maps to the first description from the set of one or more descriptions in the provider-independent architecture definition.

29 . The method of claim 27 , wherein the first variant comprises a first set of parameters applied to a provider-specific service component and the second variant comprises a second set of parameters applied to the provider-specific service component.

30 . The method of claim 27 , further comprising optimizing the selected provider-specific architecture with respect to one or more constraints on the first optimization metric and the second optimization metric.

31 . A method executed by at least one device including a hardware processor comprising:

receiving a provider-independent architecture definition for a cloud-based system, wherein the provider-independent architecture defines:

a set of one or more user-selected components;

a set of one or more descriptions for service components that are to be selected based on provider-specific services for cloud-based systems; and

a set of one or more connections representing one or more data flows among the set of one or more user-selected components and the set of one or more descriptions for service components;

generating a first version of a provider-specific architecture, corresponding to a first cloud provider, based on the provider-independent architecture, wherein a first set of system-selected service components corresponding to the first cloud provider is based on a mapping of the set of one or more descriptions to a first set of provider-specific services corresponding to the first cloud provider, and wherein the first set of system-selected service components includes a first variant of a particular system-selected service component; and

generating a second version of a provider-specific architecture, corresponding to the first cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the second version of the provider-specific architecture, wherein the second set of system-selected service components corresponding to the first cloud provider is based on a mapping of the set of one or more descriptions to the first set of provider-specific services corresponding to the first cloud provider, and wherein the second set of system-selected service components includes a second variant of a particular system-selected service component; and

configuring the one or more data flows based on the one or more connections in the second version of the provider-specific architecture; and

optimizing the provider-specific architecture with respect to at least one objective;

receiving an input workload;

executing a first subset of one or more simulation models, representing the first set of system-selected service components, on the input workload;

executing a second subset of one or more simulation models, representing the second set of system-selected service components, on the input workload; and

presenting a selection of the first variant of the provider-specific service component or the second variant of the provider-specific service component based on (a) a first optimization metric and (b) a second optimization metric, wherein:

the first optimization metric is associated with processing the input workload on the first set of simulation models,

the second optimization metric is associated with processing the input workload on the second set of simulation models, and

the selected variant of the provider-specific service component is associated with the optimization metric that satisfies the at least one objective.

32 . The method of claim 31 , further comprising:

generating the first optimization metric based on a first set of one or more performance metrics, wherein the first set of one or more performance metrics are based on processing the input workload by the first set of one or more simulation models;

generating the second optimization metric based on a second set of one or more performance metrics, wherein the second set of one or more performance metrics are based on processing the input workload by the second set of one or more simulation models; and

presenting a recommendation of one of the first version of the first provider-specific architecture or the second version of the provider-specific architecture having the optimization metric that satisfies the objective.

33 . The method of claim 31 , wherein generating a version of the provider-specific architecture further comprises:

modifying the system-selected service component using a parameter value from a set of parameters in the one or more simulation models representing the system-selected service component as a variant; and

including the modified system-selected service component in the first version of the provider-specific architecture.

34 . The method of claim 31 , wherein:

the first variant of the system-selected service component comprises a first design choice of a set of design choices in an associated provider-specific mapping for the system-selected service component; and

the second variant of the system-selected service component comprises a second design choice of the set of design choices.

35 . The method of claim 31 , further comprising:

executing a third subset of one or more simulation models, representing a third set of system-selected service components that includes a third variant of the particular system-select service component, on the input workload;

executing a fourth subset of one or more simulation models, representing a fourth set of system-selected service components that includes a fourth variant of the particular system-select service component, on the input workload;

and

presenting a selection of a version of the provider-specific architecture corresponding to one of the first, second, third, or fourth variant of the particular system-select service component based on (a) the first optimization metric, (b) the second optimization metric, (c) a third optimization metric, and (d) a fourth optimization metric, wherein:

the third optimization metric is associated with processing the input workload on the third set of simulation models,

the fourth optimization metric is associated with processing the input workload on the fourth set of simulation models, and the selected variant of the provider-specific service component is associated with the optimization metric that satisfies the at least one objective.

36 . The method of claim 35 , wherein the first variant and the second variant correspond to a first design choice and a second design choice for the particular system-selected service component, and wherein the third variant and the fourth variant correspond to a first parameter selection and a second parameter selection for the particular system-selected service component.

37 . The method of claim 31 , further comprising instructions which, when executed by the one or more hardware processors, causes performance of operations comprising:

generating a second provider-specific architecture, corresponding to a second cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the second provider-specific architecture, wherein a second set of system-selected service components corresponding to the second cloud provider is based on a mapping of the set of one or more descriptions to a second set of provider-specific services corresponding to the second cloud provider, and wherein the second set of system-selected service components is represented by a third set of one or more simulation models to obtain a second set of system selected components corresponding to the second cloud provider; and

configuring the one or more data flows based on the one or more connections;

executing the third set of one or more simulation models representing the second set of system-selected service components on the input workload;

presenting at least one second performance metric based on at least one of (a) one or more second processing metrics and (b) one or more second communication metrics, wherein:

the second one or more processing metrics are associated with processing the input workload by the second set of one or more simulation models; and

the second one or more communication metrics are associated with communicating data between respective provider-specific service components in the second set of provider-specific service components during execution of the second set of one or more simulation models; and

presenting information based on the first performance metric for the first provider-specific architecture and the second performance metric for the second provider-specific architecture.

38 . A system comprising:

one or more hardware processors;

one or more non-transitory computer-readable media; and

program instructions stored on the one or more non-transitory computer-readable media which, when executed by one or more hardware processors, cause the system to perform operations comprising:

receiving a provider-independent architecture definition for a cloud-based system, wherein the provider-independent architecture defines:

a set of one or more user-selected components;

a set of one or more descriptions for service components that are to be selected based on provider-specific services for cloud-based systems; and

a set of one or more connections representing one or more data flows among the set of one or more user-selected components and the set of one or more descriptions for service components;

generating a first version of a provider-specific architecture, corresponding to a first cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the first version of the provider-specific architecture, wherein a first set of system-selected service components corresponding to the first cloud provider is based on a mapping of the set of one or more descriptions to a first set of provider-specific services corresponding to the first cloud provider, and wherein the first set of system-selected service components includes a first variant of a particular system-selected service component; and

configuring the one or more data flows based on the one or more connections in the first version of the provider-specific architecture;

generating a second version of a provider-specific architecture, corresponding to the first cloud provider, based on the provider-independent architecture at least by:

incorporating the set of user-selected components in the second version of the provider-specific architecture, wherein the second set of system-selected service components corresponding to the first cloud provider is based on a mapping of the set of one or more descriptions to the first set of provider-specific services corresponding to the first cloud provider, and wherein the second set of system-selected service components includes a second variant of a particular system-selected service component; and

configuring the one or more data flows based on the one or more connections in the second version of the provider-specific architecture; and

optimizing the first provider-specific architecture with respect to at least one objective;

receiving an input workload;

executing a first subset of one or more simulation models, representing the first set of system-selected service components, on the input workload;

executing a second subset of one or more simulation models, representing the second set of system-selected service components, on the input workload; and

presenting a selection of the first variant of the provider-specific service component or the second variant of the provider-specific service component based on (a) a first optimization metric and (b) a second optimization metric, wherein:

the first optimization metric is associated with processing the input workload on the first set of simulation models,

the second optimization metric is associated with processing the input workload on the second set of simulation models, and

the selected variant of the provider-specific service component is associated with the optimization metric that satisfies the at least one objective.