Orchestration engine resources and blueprint definitions for hybrid cloud composition

Techniques that facilitate orchestration engine resources and/or blueprint definitions for hybrid cloud composition are provided. In one example, a system includes a blueprint component and a blueprint transformation component. The blueprint component determines one or more abstract resource types for an abstract blueprint associated with a computing platform. The one or more abstract resource types are indicative of information associated with one or more computing resources for the computing platform. The blueprint transformation component transforms the one or more abstract resource types for the abstract blueprint into one or more executable resources for an executable blueprint that is executable by an orchestration engine.

BACKGROUND

The subject disclosure relates to cloud computing systems, and more specifically, to computing resources for cloud computing systems.

SUMMARY

According to an embodiment, a system can comprise a blueprint component and a blueprint transformation component. The blueprint component can determine one or more abstract resource types for an abstract blueprint associated with a computing platform. The one or more abstract resource types can be indicative of information associated with one or more computing resources for the computing platform. The blueprint transformation component can transform the one or more abstract resource types for the abstract blueprint into one or more executable resources for an executable blueprint that is executable by an orchestration engine.

According to another embodiment, a computer-implemented method is provided. The computer-implemented method can comprise determining, by a system operatively coupled to a processor, one or more abstract resource types for an abstract blueprint associated with information for one or more computing resources of a computing platform. The computer-implemented method can also comprise transforming, by the system, the one or more abstract resource types for the abstract blueprint into one or more executable resources for an executable blueprint. Furthermore, the computer-implemented method can comprise executing, by the system, the executable blueprint on an orchestration engine associated with the computing platform.

According to yet another embodiment, a computer program product for facilitating an orchestration engine process can comprise a computer readable storage medium having program instructions embodied therewith. The program instructions can be executable by a processor and cause the processor to determine, by the processor, one or more abstract resource types for an abstract blueprint associated with information for one or more computing resources of a computing platform. The program instructions can also cause the processor to transform, by the processor, the one or more abstract resource types for the abstract blueprint into one or more executable resources for an executable blueprint. Furthermore, the program instructions can cause the processor to execute, by the processor, the executable blueprint on the computing platform.

DETAILED DESCRIPTION

Characteristics are as follows:

Service Models are as follows:

Deployment Models are as follows:

An orchestration engine can manage computing resources and/or workflows in a cloud computing environment. For instance, an orchestration engine can create, modify, configure and/or delete computing resources such as, for example, infrastructure computing resources, virtual machine computing resources, hardware computing resources, software application computing resources, etc. However, with an orchestration engine employed today, it is generally difficult to translate requirements for a cloud computing environment into hardware properties and/or software properties for the cloud computing environment. For example, with an orchestration engine employed today (e.g., since properties of a cloud computing environment may vary from one deployment to another), it is generally difficult to determine operating system requirements, memory requirements, processing requirements and/or other requirements for a cloud computing environment. Moreover, manually making choices amongst numerous blueprints in a catalog is difficult and/or time consuming. Therefore, an improved orchestration engine is needed.

Embodiments described herein include systems, computer-implemented methods, and computer program products that facilitate orchestration engine resources and/or blueprint definitions for hybrid cloud composition. For example, one or more abstract orchestration engine resources and/or blueprint definitions for an orchestration engine can be employed for a hybrid cloud orchestration engine. As used herein, a “blueprint” and an “orchestration engine blueprint” are defined as a template or a pattern that declares one or more computing resources for a cloud computing environment (e.g., a cloud-based computing platform). Furthermore, as used herein, an “abstract blueprint” is defined as a template or a pattern that declares one or more abstract computing resources for a cloud computing environment (e.g., a cloud-based computing platform). Furthermore, as used herein, an “executable blueprint” is defined as a template or a pattern that declares one or more executable computing resources for a cloud computing environment (e.g., a cloud-based computing platform). A blueprint for an orchestration engine can also be a declarative representation of a workload that is formatted in a machine-readable format and a human-readable format. Furthermore, a blueprint for an orchestration engine describes a type of computing resource and/or properties for a computing resource that will be created for a cloud computing environment. In an embodiment, a system can include a cloud-based computing platform and an orchestration engine. The orchestration engine can manipulate and/or compose one or more computing resources for a cloud computing environment. The one or more computing resources can be computing resources for a virtual machine, storage, middleware, other hardware and/or other software associated with a cloud computing environment. Furthermore, one or more abstract resource types can be defined for generically describing one or more computing resources that comprise similar functions, properties, and/or actions. One or more abstract blueprints can also be generated to specify (e.g., declare) abstract computing resources and/or a composition of solutions to achieve a goal associated with the cloud-based computing platform. Based on the one or more abstract resource types and the one or more abstract blueprints, the one or more abstract resources within the one or more abstract blueprints can be transformed into one or more executable computing resources (e.g., one or more real computing resources) for one or more executable blueprints. The one or more executable blueprints can specify (e.g., declare) the one or more executable computing resources (e.g., the one or more real computing resources) and/or a composition of solutions to achieve a goal associated with the cloud-based computing platform.

In an embodiment, one or more abstract resource types (e.g., abstract resource groupings) can be defined. Furthermore, one or more real resource types that extend from an abstract resource type can be defined. The real resource types can, for example, define a transformation that maps an abstract resource to a real resource (e.g. maps or derives properties from the abstract resource to insert the abstract resource into the real resource). An abstract blueprint can also be generated. The abstract blueprint can be composed of abstract resource types and/or real resource types. A mapping of abstract resource types to real resource types that selects an extended resource from an abstract grouping can also be generated by leveraging transformation criteria (e.g. security, compliance, cost, geography, etc.). In certain embodiments, an abstract blueprint service can leverage the mapping to bind the abstract resources to real resources during interpretation and/or execution of the abstract blueprint to produce a real blueprint (e.g., an executable blueprint). Additionally, the real blueprint can be executed by an orchestration engine (e.g., an orchestration engine of a cloud-based environment). In certain embodiments, a real blueprint can be customized for one or more deployments of a cloud-based computing platform. Accordingly, one or more executable computing resource requirements for a cloud-based environment (e.g., a cloud-based computing platform) can be translated into hardware properties and/or software properties for the cloud-based environment (e.g., the cloud-based computing platform). For instance, operating system requirements, memory requirements, processing requirements and/or other requirements for a cloud-based environment (e.g., a cloud-based computing platform) can be efficiently determined. Furthermore, efficiency and/or performance of a cloud-based environment (e.g., a cloud-based computing platform) can be improved. For instance, efficiency and/or performance of hardware and/or software included in a cloud-based environment (e.g., a cloud-based computing platform) can be improved. Moreover, a number of choices in a blueprint catalog can be minimized to reduce difficulty of selection of a blueprint from a blueprint catalog.

FIG. 1illustrates a block diagram of an example, non-limiting system100that facilitates orchestration engine resources and/or blueprint definitions for hybrid cloud composition in accordance with one or more embodiments described herein. In various embodiments, the system100can be an orchestration engine system associated with technologies such as, but not limited to, cloud computing technologies, computer technologies, server technologies, information technologies, machine learning technologies, artificial intelligence technologies, digital technologies, data analysis technologies, and/or other computer technologies. The system100can employ hardware and/or software to solve problems that are highly technical in nature, that are not abstract and that cannot be performed as a set of mental acts by a human. Further, some of the processes performed may be performed by one or more specialized computers (e.g., one or more specialized processing units, a specialized computer with an orchestration engine component, etc.) for carrying out defined tasks related to machine learning. The system100and/or components of the system can be employed to solve new problems that arise through advancements in technologies mentioned above, employment of cloud-computing systems, and/or computer architecture, and the like. One or more embodiments of the system100can provide technical improvements to cloud computing systems, computer systems, server systems, information technology systems, machine learning systems, artificial intelligence systems, digital systems, data analysis systems, and/or other systems. One or more embodiments of the system100can also provide technical improvements to a processing unit (e.g., a processor) associated with an orchestration engine process by improving processing performance of the processing unit, improving processing efficiency of the processing unit, and/or reducing an amount of time for the processing unit to perform a patch management process. One or more embodiments of the system100can also provide technical improvements to a cloud computing environment (e.g., a cloud-based computing platform) by improving processing performance of the cloud computing environment and/or improving processing efficiency of the cloud computing environment. In one example, the system100can be associated with an orchestration engine process.

In the embodiment shown inFIG. 1, the system100can include an orchestration engine component102. As shown inFIG. 1, the orchestration engine component102can include a blueprint component104and a blueprint transformation component106. Aspects of the orchestration engine component102can constitute machine-executable component(s) embodied within machine(s), e.g., embodied in one or more computer readable mediums (or media) associated with one or more machines. Such component(s), when executed by the one or more machines, e.g., computer(s), computing device(s), virtual machine(s), etc. can cause the machine(s) to perform the operations described. In an aspect, the orchestration engine component102can also include memory108that stores computer executable components and instructions. Furthermore, the orchestration engine component102can include a processor110to facilitate execution of the instructions (e.g., computer executable components and corresponding instructions) by the orchestration engine component102. As shown, the blueprint component104, the blueprint transformation component106, the memory108and/or the processor110can be electrically and/or communicatively coupled to one another in one or more embodiments. In certain embodiments, the orchestration engine component102can be in communication with a cloud-based computing platform112. The cloud-based computing platform112can be a cloud computing environment. In one example, the cloud-based computing platform112can be a hybrid cloud-based computing platform. In another example, the cloud-based computing platform112can be a public cloud-based computing platform. In yet another example, the cloud-based computing platform112can be a private cloud-based computing platform.

The blueprint component104can determine one or more abstract resource types for the cloud-based computing platform112. The one or more abstract resource types can be indicative of information associated with one or more computing resources for the cloud-based computing platform112. The one or more computing resources for the cloud-based computing platform112can include one or more computing resources for hardware associated with the cloud-based computing platform112and/or one or more computing resources for software associated with the cloud-based computing platform112. In a non-limiting example, the one or more computing resources can include one or more computing resources for a processor associated with the cloud-based computing platform112, one or more computing resources for a virtual machine associated with the cloud-based computing platform112, one or more computing resources for storage associated with the cloud-based computing platform112, one or more computing resources for middleware associated with the cloud-based computing platform112, and/or one or more other computing resources associated with the cloud-based computing platform112.

In an embodiment, the one or more abstract resource types can generically describe one or more computing resources that comprise similar functions, properties, and/or actions. For instance, the one or more abstract resource types can include virtual machine data (e.g., abstract virtual machine data), database data (e.g., abstract database data), backup as a service data (e.g., abstract backup as a service data), operating system monitoring data (e.g., abstract operating system monitoring data) and/or other data (e.g., other abstract data). In an aspect, the one or more abstract resource types can include information associated with a virtual machine of the cloud-based computing platform112such as, but not limited to, central processing unit data associated with the virtual machine, memory data associated with the virtual machine, operating system data associated with the virtual machine, network address data (e.g., internet protocol (IP) address data) associated with the virtual machine, geography data associated with the virtual machine, security policy data associated with the virtual machine, and/or other data associated with the virtual machine. Additionally or alternatively, the one or more abstract resource types can include information associated with a database of the cloud-based computing platform112such as, but not limited to, table name data associated with the database, memory data associated with the database, user data associated with the database (e.g., db_root_username, db_root_password, etc.), port data associated with the database, and/or other data associated with the database. Additionally or alternatively, the one or more abstract resource types can include information associated with a backup service (e.g., a backup as a service process) of the cloud-based computing platform112such as, but not limited to, policy data associated with the backup service, schedule data associated with the backup service, permissions data associated with the backup service, security data (e.g., api_key, etc.) associated with the backup service, endpoint network address data (e.g., endpoint IPs, etc.) associated with the backup service, and/or other data associated with the backup service. Additionally or alternatively, the one or more abstract resource types can include information associated with operating system monitoring for the cloud-based computing platform112such as, but not limited to, policy data associated with the operating system monitoring, schedule data associated with the operating system monitoring, metrics data associated with the operating system monitoring, security data (e.g., api_key, etc.) associated with the operating system monitoring, endpoint network address data (e.g., endpoint IPs, etc.) associated with the operating system monitoring, and/or other data associated with the operating system monitoring. In one example, the information associated with the one or more computing resources can include a number of processors and/or a type of processor for the cloud-based computing platform112. Additionally or alternatively, the information associated with the one or more computing resources can include an amount of memory and/or a type of memory for the cloud-based computing platform112. Additionally or alternatively, the information associated with the one or more computing resources can include a network speed for the cloud-based computing platform112. However, it is to be appreciated that the information associated with the one or more computing resources can include other type of information associated with the cloud-based computing platform112.

In another embodiment, the blueprint component104can receive and/or generate an abstract blueprint associated with the cloud-based computing platform112. The abstract blueprint associated with the cloud-based computing platform112can be, for example, a template or a pattern that declares the one or more abstract resource types (e.g., the one or more computing resources) for the cloud-based computing platform112. The abstract blueprint associated with the cloud-based computing platform112can also generically describe a type of computing resource and/or properties for a computing resource that is created for the cloud-based computing platform112. In an aspect, the abstract blueprint can be exported from the cloud-based computing platform112as a readable text file. The readable text file associated with the abstract blueprint can be formatted in a machine-readable format and a human-readable format. For example, the abstract blueprint can be a machine-readable representation and a human-readable representation of the one or more abstract resource types. In one example, the readable text file associated with the abstract blueprint can be formatted in a machine-readable format and a human-readable format associated with a data serialization language. In another example, the readable text file associated with the abstract blueprint can be formatted in a machine-readable format and a human-readable format associated with a data array language. In yet another example, the readable text file associated with the abstract blueprint can be formatted in a machine-readable format and a human-readable format associated with automated documentation. As such, the abstract blueprint associated with the cloud-based computing platform112can be a declarative representation of the one or more abstract resource types for the cloud-based computing platform112that is formatted in a machine-readable format and a human-readable format. In an aspect, the blueprint component104can interpret content of the abstract blueprint to determine the one or more abstract resource types for the cloud-based computing platform112. For example, the blueprint component104can interpret machine-readable content and/or human-readable content to determine the one or more abstract resource types for the cloud-based computing platform112. In an embodiment, the blueprint component104can determine one or more dependencies between one or more abstract resource types for the cloud-based computing platform112based on the content of the abstract blueprint. In certain embodiments, the blueprint component104can employ an aspect groupings knowledge database to identify the one or more abstract resource types in the abstract blueprint associated with the cloud-based computing platform112. The aspect groupings knowledge database can be, for example, a collection of previously identified abstract resource types and/or information for previously identified abstract resource types. In one example, the aspect groupings knowledge database can be stored in the memory108or another memory.

The blueprint transformation component106can transform the one or more abstract resource types for the abstract blueprint into one or more executable resources for an executable blueprint. The executable blueprint can be executable by the cloud-based computing platform112. For example, the executable blueprint can be executable by an orchestration engine associated with the cloud-based computing platform112. In an aspect, the executable blueprint can be indicative of a machine-readable representation of the one or more executable resources. The one or more executable resources can be, for example, one or more real resources that can be executable by the cloud-based computing platform112. For instance, the one or more executable resources can be one or more deployable resources for execution by one or more applications associated with the cloud-based computing platform112. The one or more applications can be provided, for example, by one or more computing environments. For example, the one or more executable resources can include executable data for a virtual machine computing environment, a database computing environment, a backup service computing environment, an operating system monitoring environment, and/or another computing environment.

In an embodiment, the blueprint transformation component106can generate mapping data to facilitate generation of the executable blueprint. The mapping data can be indicative of a mapping of the one or more abstract resource types to the one or more executable resources. In an aspect, the blueprint transformation component106can generate the executable blueprint based on the mapping data. In another aspect, the blueprint transformation component106can generate the mapping data based on a set of transformation criteria. For example, the set of transformation criteria can be criteria related to one of service level agreement data, software data, deployment environment data, cost data, security data, location data (e.g., geography data), response time data, dependency data, deadline data, description data, benchmark data, maintainer data, user data, historical data, performance data, risk level data, estimated benefit data and/or other data associated with the cloud-based computing platform112. The blueprint transformation component106can, for example, select an extended resource from an abstract grouping associated with the one or more abstract resource types by employing the set of transformation criteria. Furthermore, the blueprint transformation component106can employ the mapping data to bind the one or more abstract resource types to real resources (e.g., the one or more executable resources) during, for example, interpretation and/or execution of the abstract blueprint to generate the executable blueprint.

In another aspect, the blueprint transformation component106can map virtual machine data associated with the abstract blueprint (e.g., the one or more abstract resource types for the abstract blueprint), database data associated with the abstract blueprint (e.g., the one or more abstract resource types for the abstract blueprint), backup as a service data associated with the abstract blueprint (e.g., the one or more abstract resource types for the abstract blueprint), operating system monitoring data associated with the abstract blueprint (e.g., the one or more abstract resource types for the abstract blueprint) and/or other data associated with the abstract blueprint (e.g., the one or more abstract resource types for the abstract blueprint) into executable resources for the virtual machine computing environment, the database computing environment, the backup service computing environment, the operating system monitoring environment, and/or another computing environment. For instance, the information associated with the virtual machine of the cloud-based computing platform112that is included in the abstract blueprint can be mapped to a virtual machine computing environment, the information associated with the database of the cloud-based computing platform112that is included in the abstract blueprint can be mapped to a database computing environment, the information associated with the backup service (e.g., the backup as a service process) of the cloud-based computing platform112that is included in the abstract blueprint can be mapped to a backup service computing environment, and/or the information associated with the operating system monitoring for the cloud-based computing platform112that is included in the abstract blueprint can be mapped to an operating system computing environment. The virtual machine computing environment can be a computing environment associated with one or more virtual machines (e.g., one or more virtual servers) associated with the cloud-based computing platform112. The database computing environment can be a computing environment associated with one or more databases associated with the cloud-based computing platform112. The backup service computing environment can be a computing environment associated with one or more servers of the cloud-based computing platform112that provides one or more backup services. The operating system monitoring environment can be a computing environment associated with one or more servers of the cloud-based computing platform112that provides one or more operating system monitoring services.

In certain embodiments, the blueprint transformation component106can transmit the executable blueprint to the cloud-based computing platform112to facilitate employment of the executable blueprint by the cloud-based computing platform112. For instance, the blueprint transformation component106can transmit the executable blueprint to an orchestration engine associated with the cloud-based computing platform112to facilitate employment of the one or more executable resources by the cloud-based computing platform112. In certain embodiments, the blueprint component104and/or the blueprint transformation component106can apply the executable blueprint and/or the one or more executable resources to hardware and/or software associated with the cloud-based computing platform112. In one embodiment, the executable blueprint and/or the one or more executable resources can be employed to determine an optimal path of execution for hardware and/or software associated with the cloud-based computing platform112. In certain embodiments, the blueprint component104and/or the blueprint transformation component106can facilitate display of the abstract blueprint, the executable blueprint, the one or more abstract resource types, and/or the one or more executable resources. For instance, blueprint component104and/or the blueprint transformation component106can render the abstract blueprint, the executable blueprint, the one or more abstract resource types, and/or the one or more executable resources on a display device. The display device can be, for example, a computing device with a display, a computer, a desktop computer, a laptop computer, a monitor device, a smart device, a smart phone, a mobile device, a handheld device, a tablet, a wearable device, a portable computing device or another type of device associated with a display. In an aspect, the blueprint component104and/or the blueprint transformation component106can generate a user interface to display at least a portion of the abstract blueprint, the executable blueprint, the one or more abstract resource types, and/or the one or more executable resources in a human interpretable format.

It is to be appreciated that the orchestration engine component102(e.g., the blueprint component104and/or the blueprint transformation component106) performs an orchestration engine process that cannot be performed by a human (e.g., is greater than the capability of a single human mind). For example, an amount of data processed, a speed of processing of data and/or data types processed by the orchestration engine component102(e.g., the blueprint component104and/or the blueprint transformation component106) over a certain period of time can be greater, faster and different than an amount, speed and data type that can be processed by a single human mind over the same period of time. The orchestration engine component102(e.g., the blueprint component104and/or the blueprint transformation component106) can also be fully operational towards performing one or more other functions (e.g., fully powered on, fully executed, etc.) while also performing the above-referenced orchestration engine process. Moreover, the orchestration engine component102(e.g., the blueprint component104and/or the blueprint transformation component106) can include information that is impossible to obtain manually by a user. For example, a type of information included in the executable blueprint and/or the one or more executable resources, an amount of information included in the executable blueprint and/or the one or more executable resources, and/or a variety of information included in the executable blueprint and/or the one or more executable resources can be more complex than information obtained manually by a user.

FIG. 2illustrates a block diagram of an example, non-limiting system200in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

The system200includes the orchestration engine component102. The orchestration engine component102can include the blueprint component104, the blueprint transformation component106, a learning component202, the memory108and/or the processor110. The learning component202can monitor the cloud-based computing platform112to facilitate learning of one or more abstract resource types and/or information related to one or more abstract resource types associated with the cloud-based computing platform112. For example, the learning component202can monitor the cloud-based computing platform112to learn one or more features and/or information related to one or more abstract resource types associated with the cloud-based computing platform112. In an embodiment, the learning component202can employ machine learning and/or principles of artificial intelligence to learn one or more features and/or information related to one or more abstract resource types with the cloud-based computing platform112. The learning component202can perform learning with respect to learning one or more features and/or information related to one or more abstract resource types associated with the cloud-based computing platform112explicitly or implicitly. In an aspect, the learning component202can learn one or more features and/or information related to one or more abstract resource types associated with the cloud-based computing platform112based on classifications, correlations, inferences and/or expressions associated with principles of artificial intelligence. For instance, the learning component202can employ an automatic classification system and/or an automatic classification process to learn one or more features and/or information related to one or more abstract resource types associated with the cloud-based computing platform112. In one example, the learning component202can employ a probabilistic and/or statistical-based analysis (e.g., factoring into the analysis utilities and costs) to learn and/or generate inferences with respect to the cloud-based computing platform112. In an aspect, the learning component202can include an inference component (not shown) that can further enhance automated aspects of the learning component202utilizing in part inference-based schemes to learn one or more features and/or information related to one or more abstract resource types associated with the cloud-based computing platform112.

The learning component202can employ any suitable machine-learning based techniques, statistical-based techniques and/or probabilistic-based techniques. For example, the learning component202can employ expert systems, fuzzy logic, SVMs, Hidden Markov Models (HMMs), greedy search algorithms, rule-based systems, Bayesian models (e.g., Bayesian networks), neural networks, other non-linear training techniques, data fusion, utility-based analytical systems, systems employing Bayesian models, etc. In another aspect, the learning component202can perform a set of machine learning computations associated with learning one or more features and/or information related to one or more abstract resource types associated with the cloud-based computing platform112. For example, the learning component202can perform a set of clustering machine learning computations, a set of logistic regression machine learning computations, a set of decision tree machine learning computations, a set of random forest machine learning computations, a set of regression tree machine learning computations, a set of least square machine learning computations, a set of instance-based machine learning computations, a set of regression machine learning computations, a set of support vector regression machine learning computations, a set of k-means machine learning computations, a set of spectral clustering machine learning computations, a set of rule learning machine learning computations, a set of Bayesian machine learning computations, a set of deep Boltzmann machine computations, a set of deep belief network computations, and/or a set of different machine learning computations to learn one or more features and/or information related to one or more abstract resource types associated with the cloud-based computing platform112.

FIG. 3illustrates a block diagram of an example, non-limiting system300in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

The system300includes the cloud-based computing platform112. An abstract blueprint302can be generated based on the cloud-based computing platform112. In an embodiment, the abstract blueprint302can be provided by the cloud-based computing platform112. For example, the cloud-based computing platform112can generate at least a portion of the abstract blueprint302. In another embodiment, the abstract blueprint302can be generated by analyzing the cloud-based computing platform112. For example, the orchestration engine component102(e.g., the blueprint component104of the orchestration engine component102) can generate at least a portion of the abstract blueprint302by analyzing one or more portions of the cloud-based computing platform112. The abstract blueprint302can be a template or a pattern that declares one or more abstract resource types for the cloud-based computing platform112. For example, the one or more abstract resource types of the abstract blueprint302can generically describe one or more types of computing resources and/or properties for one or more computing resources created for the cloud-based computing platform112. In an aspect, the abstract blueprint302can be exported from the cloud-based computing platform112as a readable text file. In another aspect, the abstract blueprint302can be formatted in a machine-readable format and a human-readable format. For example, the abstract blueprint302can be a machine-readable representation and a human-readable representation of the one or more abstract resource types for the cloud-based computing platform112. In one example, the abstract blueprint302can be formatted in a machine-readable format and a human-readable format associated with a data serialization language. In another example, the abstract blueprint302can be formatted in a machine-readable format and a human-readable format associated with a data array language. In yet another example, the abstract blueprint302can be formatted in a machine-readable format and a human-readable format associated with automated documentation. In another aspect, the abstract blueprint302can generically describe one or more attributes of the cloud-based computing platform112and/or one or more setting for the cloud-based computing platform112. Additionally or alternatively, the abstract blueprint302can generically describe a set of inter-related cloud resources of the cloud-based computing platform112.

FIG. 4illustrates a block diagram of an example, non-limiting system400in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

The system400includes the blueprint component104. The blueprint component104can receive the abstract blueprint302. Based on the abstract blueprint302, the blueprint component104can determine one or more abstract resource types402. For example, the blueprint component104can extract the one or more abstract resource types402from the abstract blueprint302. Furthermore, the blueprint component104can analyze the abstract blueprint to determine the one or more abstract resource types402. In an embodiment, the one or more abstract resource types402can be indicative of information associated with one or more computing resources for the cloud-based computing platform112. The one or more computing resources for the cloud-based computing platform112can include one or more computing resources for hardware associated with the cloud-based computing platform112and/or one or more computing resources for software associated with the cloud-based computing platform112. In a non-limiting example, the one or more computing resources can include one or more computing resources for a processor associated with the cloud-based computing platform112, one or more computing resources for a virtual machine associated with the cloud-based computing platform112, one or more computing resources for storage associated with the cloud-based computing platform112, one or more computing resources for middleware associated with the cloud-based computing platform112, and/or one or more other computing resources associated with the cloud-based computing platform112. In an aspect, the one or more abstract resource types402can generically describe one or more computing resources for the cloud-based computing platform112that comprise similar functions, properties, and/or actions. For instance, the one or more abstract resource types402can include virtual machine data associated with the cloud-based computing platform112, database data associated with the cloud-based computing platform112, backup as a service data associated with the cloud-based computing platform112, operating system monitoring data associated with the cloud-based computing platform112, and/or other data associated with the cloud-based computing platform112. In an aspect, the one or more abstract resource types402can include information associated with a virtual machine of the cloud-based computing platform112such as, but not limited to, central processing unit data associated with the virtual machine, memory data associated with the virtual machine, operating system data associated with the virtual machine, network address data (e.g., IP address data) associated with the virtual machine, geography data associated with the virtual machine, security policy data associated with the virtual machine, and/or other data associated with the virtual machine. Additionally or alternatively, the one or more abstract resource types402can include information associated with a database of the cloud-based computing platform112such as, but not limited to, table name data associated with the database, memory data associated with the database, user data associated with the database (e.g., db_root_username, db_root_password, etc.), port data associated with the database, and/or other data associated with the database. Additionally or alternatively, the one or more abstract resource types402can include information associated with a backup service (e.g., a backup as a service process) of the cloud-based computing platform112such as, but not limited to, policy data associated with the backup service, schedule data associated with the backup service, permissions data associated with the backup service, security data (e.g., api_key, etc.) associated with the backup service, endpoint network address data (e.g., endpoint IPs, etc.) associated with the backup service, and/or other data associated with the backup service. Additionally or alternatively, the one or more abstract resource types402can include information associated with operating system monitoring for the cloud-based computing platform112such as, but not limited to, policy data associated with the operating system monitoring, schedule data associated with the operating system monitoring, metrics data associated with the operating system monitoring, security data (e.g., api_key, etc.) associated with the operating system monitoring, endpoint network address data (e.g., endpoint IPs, etc.) associated with the operating system monitoring, and/or other data associated with the operating system monitoring. In one example, the one or more abstract resource types402can include a number of processors and/or a type of processor for the cloud-based computing platform112. Additionally or alternatively, the one or more abstract resource types402can include an amount of memory and/or a type of memory for the cloud-based computing platform112. Additionally or alternatively, the one or more abstract resource types402can include a network speed for the cloud-based computing platform112. However, it is to be appreciated that the one or more abstract resource types402can include other type of information to generically describe one or more computing resources associated with the cloud-based computing platform112. In certain embodiments, the blueprint component104can employ an aspect groupings knowledge database to identify the one or more abstract resource types402in the abstract blueprint302. The aspect groupings knowledge database can be, for example, a collection of previously identified abstract resource types and/or information for previously identified abstract resource types.

FIG. 5illustrates a block diagram of an example, non-limiting system500in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

The system500includes the blueprint transformation component106. The blueprint transformation component106can employ the one or more abstract resource types402determined by the blueprint component104to generate an executable blueprint502. The executable blueprint502can be, for example, a modified version of the abstract blueprint302. For instance, the executable blueprint502can be executable by the cloud-based computing platform112. In an aspect, the executable blueprint502can include one or more executable resources504. In another aspect, the executable blueprint502can be indicative of a machine-readable representation of the one or more executable resources504. The one or more executable resources504can be, for example, one or more real resources that can be executable by the cloud-based computing platform112. For instance, the one or more executable resources504can be one or more deployable resources for execution by one or more applications associated with the cloud-based computing platform112. The one or more applications can be provided, for example, by one or more computing environments. For example, the one or more executable resources504can include executable data for a virtual machine computing environment, a database computing environment, a backup service computing environment, an operating system monitoring environment, and/or another computing environment. In an embodiment, the blueprint transformation component106can generate mapping data to facilitate generation of the executable blueprint. The mapping data can be indicative of a mapping of the one or more abstract resource types to the one or more executable resources. In an aspect, the blueprint transformation component106can generate the executable blueprint based on the mapping data. In another aspect, the blueprint transformation component106can generate the mapping data based on a set of transformation criteria. For example, the set of transformation criteria can be criteria related to one of service level agreement data, software data, deployment environment data, cost data, security data, location data (e.g., geography data), response time data, dependency data, deadline data, description data, benchmark data, maintainer data, user data, historical data, performance data, risk level data, estimated benefit data and/or other data associated with the cloud-based computing platform112. The blueprint transformation component106can, for example, select an extended resource from an abstract grouping associated with the one or more abstract resource types by employing the set of transformation criteria. Furthermore, the blueprint transformation component106can employ the mapping data to bind the one or more abstract resource types to real resources (e.g., the one or more executable resources) during, for example, interpretation and/or execution of the abstract blueprint to generate the executable blueprint.

In another embodiment, the blueprint transformation component106can map virtual machine data associated with the abstract blueprint302(e.g., virtual machine data associated with the one or more abstract resource types402), database data associated with the abstract blueprint302(e.g., database data associated with the one or more abstract resource types402), backup as a service data associated with the abstract blueprint302(e.g., backup as a service data associated with the one or more abstract resource types402), operating system monitoring data associated with the abstract blueprint302(e.g., operating system monitoring data associated with the one or more abstract resource types402) and/or other data associated with the abstract blueprint302(e.g., other data associated with the one or more abstract resource types402) into executable resources for the virtual machine computing environment, the database computing environment, the backup service computing environment, the operating system monitoring environment, and/or another computing environment. For instance, the information associated with the virtual machine of the cloud-based computing platform112that is included in the one or more abstract resource types402can be mapped to a virtual machine computing environment, the information associated with the database of the cloud-based computing platform112that is included in the one or more abstract resource types402can be mapped to a database computing environment, the information associated with the backup service (e.g., the backup as a service process) of the cloud-based computing platform112that is included in the one or more abstract resource types402can be mapped to a backup service computing environment, and/or the information associated with the operating system monitoring for the cloud-based computing platform112that is included in the one or more abstract resource types402can be mapped to an operating system computing environment. The virtual machine computing environment can be a computing environment associated with one or more virtual machines (e.g., one or more virtual servers) associated with the cloud-based computing platform112. The database computing environment can be a computing environment associated with one or more databases associated with the cloud-based computing platform112. The backup service computing environment can be a computing environment associated with one or more servers of the cloud-based computing platform112that provides one or more backup services. The operating system monitoring environment can be a computing environment associated with one or more servers of the cloud-based computing platform112that provides one or more operating system monitoring services.

FIG. 6illustrates a block diagram of an example, non-limiting system600in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

The system600includes the cloud-based computing platform112. In an embodiment, the executable blueprint502that includes the one or more executable resources504can be employed by the cloud-based computing platform112. In one embodiment, the executable blueprint502can be employed by the cloud-based computing platform112to determine an optimal path of execution for hardware and/or software associated with the cloud-based computing platform112. In certain embodiments, the executable blueprint502can be transmitted to the cloud-based computing platform112to facilitate employment of the executable blueprint502by the cloud-based computing platform112. The executable blueprint502and/or the one or more executable resources504can be executed by the cloud-based computing platform112. In one example, the executable blueprint502and/or the one or more executable resources504can be executable by an orchestration engine associated with the cloud-based computing platform112. In an embodiment, the one or more executable resources504can be translated into hardware properties and/or software properties for the cloud-based computing platform112. As such, operating system requirements, memory requirements, processing requirements and/or other requirements for the cloud-based computing platform112can be efficiently determined. Moreover, efficiency and/or performance of the cloud-based computing platform112can be improved. For example, efficiency and/or performance of hardware and/or software included in the cloud-based computing platform112can be improved.

FIG. 7illustrates a block diagram of an example, non-limiting system700in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

The system700includes abstract virtual machine data702, abstract database data704, abstract backup as a service data706, and abstract operating system monitoring data708. The abstract virtual machine data702, the abstract database data704, the abstract backup as a service data706, and/or the abstract operating system monitoring data708can be, for example, one or more abstract resource types for an abstract blueprint. However, it is to be appreciated that in certain embodiment one or more other types of abstract resource types can additionally or alternatively be included in an abstract blueprint. The abstract virtual machine data702, the abstract database data704, the abstract backup as a service data706, and/or the abstract operating system monitoring data708can be determined, for example, by the blueprint component104. In an embodiment, the abstract virtual machine data702can include information associated with a virtual machine of the cloud-based computing platform112such as, but not limited to, central processing unit data associated with the virtual machine, memory data associated with the virtual machine, operating system data associated with the virtual machine, network address data (e.g., IP address data) associated with the virtual machine, geography data associated with the virtual machine, security policy data associated with the virtual machine, and/or other data associated with the virtual machine. Additionally or alternatively, the abstract database data704can include information associated with a database of the cloud-based computing platform112such as, but not limited to, table name data associated with the database, memory data associated with the database, user data associated with the database (e.g., db_root_username, db_root_password, etc.), port data associated with the database, and/or other data associated with the database. Additionally or alternatively, the abstract backup as a service data706can include information associated with a backup service (e.g., a backup as a service process) of the cloud-based computing platform112such as, but not limited to, policy data associated with the backup service, schedule data associated with the backup service, permissions data associated with the backup service, security data (e.g., api_key, etc.) associated with the backup service, endpoint network address data (e.g., endpoint IPs, etc.) associated with the backup service, and/or other data associated with the backup service. Additionally or alternatively, the abstract operating system monitoring data708can include information associated with operating system monitoring for the cloud-based computing platform112such as, but not limited to, policy data associated with the operating system monitoring, schedule data associated with the operating system monitoring, metrics data associated with the operating system monitoring, security data (e.g., api_key, etc.) associated with the operating system monitoring, endpoint network address data (e.g., endpoint IPs, etc.) associated with the operating system monitoring, and/or other data associated with the operating system monitoring.

The abstract virtual machine data702can be transformed (e.g., by the blueprint transformation component106) into one or more executable resources for a virtual machine computing environment710. For instance, the abstract virtual machine data702can be transformed (e.g., by the blueprint transformation component106) into one or more deployable resources for execution by one or more applications and/or one or more processing threads associated with the virtual machine computing environment710. Additionally or alternatively, the abstract database data704can be transformed (e.g., by the blueprint transformation component106) into one or more executable resources for a database computing environment712. For instance, the abstract database data704can be transformed (e.g., by the blueprint transformation component106) into one or more deployable resources for execution by one or more applications and/or one or more processing threads associated with the database computing environment712. Additionally or alternatively, the abstract backup as a service data706can be transformed (e.g., by the blueprint transformation component106) into one or more executable resources for a backup service computing environment714. For instance, the abstract backup as a service data706can be transformed (e.g., by the blueprint transformation component106) into one or more deployable resources for execution by one or more applications and/or one or more processing threads associated with the backup service computing environment714. Additionally or alternatively, the abstract operating system monitoring data708can be transformed (e.g., by the blueprint transformation component106) into one or more executable resources and/or one or more processing threads for an operating system monitoring environment716. For instance, the abstract operating system monitoring data708can be transformed (e.g., by the blueprint transformation component106) into one or more deployable resources for execution by one or more applications associated with the operating system monitoring environment716.

The virtual machine computing environment can be a computing environment associated with one or more virtual machines (e.g., one or more virtual servers) associated with the cloud-based computing platform112. The database computing environment can be a computing environment associated with one or more databases associated with the cloud-based computing platform112. The backup service computing environment can be a computing environment associated with one or more servers of the cloud-based computing platform112that provides one or more backup services. The operating system monitoring environment can be a computing environment associated with one or more servers of the cloud-based computing platform112that provides one or more operating system monitoring services.

FIG. 8illustrates a block diagram of an example, non-limiting system800in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

The system800includes an abstract blueprint802and an executable blueprint804. The abstract blueprint802can be a blueprint associated with the cloud-based computing platform112. Furthermore, the abstract blueprint802can be a blueprint employed by the orchestration engine component102(e.g., the blueprint component104). For example, the abstract blueprint802can correspond to the abstract blueprint302. The executable blueprint804can be a blueprint that is executable by an orchestration engine associated with the cloud-based computing platform112. Furthermore, the executable blueprint804can be a blueprint generated by the orchestration engine component102(e.g., the blueprint transformation component106). For example, the executable blueprint804can correspond to the executable blueprint502. The abstract blueprint802can define one or more abstract resource types associated with the cloud-based computing platform112. The abstract blueprint802can also generically define relationships and/or dependencies between one or more resources for the cloud-based computing platform112. For example, storage associated with the cloud-based computing platform112can require an association with a virtual machine of the cloud-based computing platform112, thereby creating a dependency for the storage. Dependencies between resources for the cloud-based computing platform112can facilitate creation of one or more abstract resources types in a correct order. Furthermore, one or more abstract resource types can be uniquely named within the abstract blueprint802. An abstract resource in the abstract blueprint802can include a property value that is explicitly set to a defined value. Additionally or alternatively, an abstract resource in the abstract blueprint802can include a property value that is implicitly set via a reference to a property from a different abstract resource in the abstract blueprint802. Additionally or alternatively, an abstract resource in the abstract blueprint802can include a property value that is implicitly set via a reference to an input parameter to the abstract blueprint802. In an embodiment, the abstract blueprint802can be a nested data structure.

In an embodiment, the abstract blueprint802can be a template or a pattern that generically declares one or more computing resources for the cloud-based computing platform112. The abstract blueprint802can also generically describe a type of computing resource and/or properties for a computing resource that is created for the cloud-based computing platform112. In certain embodiments, the abstract blueprint802can include one or more abstract resources and/or one or more real resources. For example, the abstract blueprint802can include an abstract virtual machine resource806that generically describes one or more computing resources for a virtual machine associated with the cloud-based computing platform112, an abstract database resource808that generically describes one or more computing resources for a database associated with the cloud-based computing platform112, and a real blueprint resource810that includes one or more executable resources for monitoring a server associated with the cloud-based computing platform112. In an aspect, the abstract blueprint802can be exported from the cloud-based computing platform112as a readable text file. In another aspect, the abstract blueprint802can be formatted in a machine-readable format and a human-readable format. For example, the abstract blueprint802can be a machine-readable textual representation and a human-readable textual representation of the one or more computing resources for the cloud-based computing platform112. In one example, the abstract blueprint802can be formatted in a machine-readable format and a human-readable format associated with a data serialization language. In another example, the abstract blueprint802can be formatted in a machine-readable format and a human-readable format associated with a data array language. In yet another example, the abstract blueprint802can be formatted in a machine-readable format and a human-readable format associated with automated documentation.

In another embodiment, one or more portions of the abstract blueprint802can be transformed to generate the executable blueprint804. For example, the abstract virtual machine resource806can be transformed into a real virtual machine resource806′. The real virtual machine resource806′ can include, for example, a transformed portion812associated with a real virtual machine resource (e.g., a softlayer virtual machine resource) that satisfies criteria associated with an abstract virtual machine associated with the abstract virtual machine resource806. Additionally or alternatively, the real virtual machine resource806′ can include, for example, a new portion814associated with one or more properties dynamically added based on resource selection. For example, the one or more properties associated with the new portion814can satisfy criteria associated with the abstract virtual machine resource806. Additionally or alternatively, the abstract database resource808can be transformed into a real database resource808′. The real database resource808′ can include, for example, a transformed portion816associated with a real database resource (e.g., a DB2 resource) that satisfies criteria associated with an abstract database associated with the abstract database resource808. The executable blueprint804can also include the real blueprint resource810. In an embodiment, one or more portions of the executable blueprint804can include one or more executable resources for hardware associated with the cloud-based computing platform112, one or more executable resources for software associated with the cloud-based computing platform112, one or more executable resources for one or more virtual machines associated with the cloud-based computing platform112, one or more executable resources for storage associated with the cloud-based computing platform112, one or more executable resources for middleware associated with the cloud-based computing platform112, and/or one or more executable resources for another resource associated with the cloud-based computing platform112. In a non-limiting example, the new portion814of the executable blueprint804can include a region associated with the cloud-based computing platform112. Additionally or alternatively, the new portion814of the executable blueprint804can include a number of processors and/or a type of processor for the cloud-based computing platform112. Additionally or alternatively, the new portion814of the executable blueprint804can include an amount of memory and/or a type of memory for the cloud-based computing platform112. Additionally or alternatively, the new portion814of the executable blueprint804can include a network speed for the cloud-based computing platform112. However, it is to be appreciated that a new portion of the executable blueprint804can include information for one or more other resources associated with the cloud-based computing platform112.

FIG. 9illustrates a flow diagram of an example, non-limiting computer-implemented method900that facilitates orchestration engine resources and/or blueprint definitions for hybrid cloud composition in accordance with one or more embodiments described herein. At902, one or more abstract resource types for an abstract blueprint associated with information for one or more computing resources of a computing platform are determined, by a system operatively coupled to a processor (e.g., by blueprint component104). In certain embodiments, the computing platform can be a cloud-based computing platform. The abstract blueprint can be a template or a pattern that declares one or more abstract resource types for the computing platform. For example, the one or more abstract resource types of the abstract blueprint can generically describe one or more types of computing resources and/or properties for one or more computing resources created for the computing platform. In an aspect, the abstract blueprint can be exported from the computing platform as a readable text file. In another aspect, the abstract blueprint can be formatted in a machine-readable format and a human-readable format. For example, the abstract blueprint can be a machine-readable representation and a human-readable representation of the one or more abstract resource types for the computing platform. In one example, the abstract blueprint can be formatted in a machine-readable format and a human-readable format associated with a data serialization language. In another example, the abstract blueprint can be formatted in a machine-readable format and a human-readable format associated with a data array language. In yet another example, the abstract blueprint can be formatted in a machine-readable format and a human-readable format associated with automated documentation. In another aspect, the abstract blueprint can generically describe one or more attributes of the computing platform and/or one or more setting for the computing platform. Additionally or alternatively, the abstract blueprint can generically describe a set of inter-related cloud resources of the computing platform.

In an embodiment, the one or more abstract resource types can be determined based on the abstract blueprint. For example, the one or more abstract resource types can be extracted from the abstract blueprint. Furthermore, the abstract blueprint can be analyzed to determine the one or more abstract resource types. In an embodiment, the one or more abstract resource types can be indicative of information associated with one or more computing resources for the computing platform. The one or more computing resources for the computing platform can include one or more computing resources for hardware associated with the computing platform and/or one or more computing resources for software associated with the computing platform. In a non-limiting example, the one or more computing resources can include one or more computing resources for a processor associated with the computing platform, one or more computing resources for a virtual machine associated with the computing platform, one or more computing resources for storage associated with the computing platform, one or more computing resources for middleware associated with the computing platform, and/or one or more other computing resources associated with the computing platform. In an aspect, the one or more abstract resource types can generically describe one or more computing resources for the computing platform that comprise similar functions, properties, and/or actions. For instance, the one or more abstract resource types can include virtual machine data associated with the computing platform, database data associated with the computing platform, backup as a service data associated with the computing platform, operating system monitoring data associated with the computing platform, and/or other data associated with the computing platform. In an aspect, the one or more abstract resource types can include information associated with a virtual machine of the computing platform such as, but not limited to, central processing unit data associated with the virtual machine, memory data associated with the virtual machine, operating system data associated with the virtual machine, network address data (e.g., IP address data) associated with the virtual machine, geography data associated with the virtual machine, security policy data associated with the virtual machine, and/or other data associated with the virtual machine. Additionally or alternatively, the one or more abstract resource types can include information associated with a database of the computing platform such as, but not limited to, table name data associated with the database, memory data associated with the database, user data associated with the database (e.g., db_root_username, db_root_password, etc.), port data associated with the database, and/or other data associated with the database. Additionally or alternatively, the one or more abstract resource types can include information associated with a backup service (e.g., a backup as a service process) of the computing platform such as, but not limited to, policy data associated with the backup service, schedule data associated with the backup service, permissions data associated with the backup service, security data (e.g., api_key, etc.) associated with the backup service, endpoint network address data (e.g., endpoint IPs, etc.) associated with the backup service, and/or other data associated with the backup service. Additionally or alternatively, the one or more abstract resource types can include information associated with operating system monitoring for the computing platform such as, but not limited to, policy data associated with the operating system monitoring, schedule data associated with the operating system monitoring, metrics data associated with the operating system monitoring, security data (e.g., api_key, etc.) associated with the operating system monitoring, endpoint network address data (e.g., endpoint IPs, etc.) associated with the operating system monitoring, and/or other data associated with the operating system monitoring. In one example, the one or more abstract resource types can include a number of processors and/or a type of processor for the computing platform. Additionally or alternatively, the one or more abstract resource types can include an amount of memory and/or a type of memory for the computing platform. Additionally or alternatively, the one or more abstract resource types can include a network speed for the computing platform.

At904, the one or more abstract resource types for the abstract blueprint are transformed, by the system (e.g., by blueprint transformation component106) into one or more executable resources for an executable blueprint. The executable blueprint can be indicative of a machine-readable representation of the one or more executable resources. The one or more executable resources can be, for example, one or more real resources that can be executable by the computing platform. For instance, the one or more executable resources can be one or more deployable resources for execution by one or more applications associated with the computing platform. The one or more applications can be provided, for example, by one or more computing environments. For example, the one or more executable resources can include executable data for a virtual machine computing environment, a database computing environment, a backup service computing environment, an operating system monitoring environment, and/or another computing environment. In an embodiment, mapping data can be employed to facilitate generation of the executable blueprint. The mapping data can be indicative of a mapping of the one or more abstract resource types to the one or more executable resources. In an aspect, the executable blueprint can be generated based on the mapping data. In another aspect, the mapping data can be generated based on a set of transformation criteria. For example, the set of transformation criteria can be criteria related to one of service level agreement data, software data, deployment environment data, cost data, security data, location data (e.g., geography data), response time data, dependency data, deadline data, description data, benchmark data, maintainer data, user data, historical data, performance data, risk level data, estimated benefit data and/or other data associated with the computing platform. An extended resource can be selected, for example, from an abstract grouping associated with the one or more abstract resource types by employing the set of transformation criteria. Furthermore, the mapping data can be employed to bind the one or more abstract resource types to real resources (e.g., the one or more executable resources) during, for example, interpretation and/or execution of the abstract blueprint to generate the executable blueprint.

In another embodiment, virtual machine data associated with the abstract blueprint (e.g., virtual machine data associated with the one or more abstract resource types), database data associated with the abstract blueprint (e.g., database data associated with the one or more abstract resource types), backup as a service data associated with the abstract blueprint (e.g., backup as a service data associated with the one or more abstract resource types), operating system monitoring data associated with the abstract blueprint (e.g., operating system monitoring data associated with the one or more abstract resource types) and/or other data associated with the abstract blueprint (e.g., other data associated with the one or more abstract resource types) can be mapped into one or more executable resources for the virtual machine computing environment, the database computing environment, the backup service computing environment, the operating system monitoring environment, and/or another computing environment. For instance, the information associated with the virtual machine of the computing platform that is included in the one or more abstract resource types can be mapped to a virtual machine computing environment, the information associated with the database of the computing platform that is included in the one or more abstract resource types can be mapped to a database computing environment, the information associated with the backup service (e.g., the backup as a service process) of the computing platform that is included in the one or more abstract resource types can be mapped to a backup service computing environment, and/or the information associated with the operating system monitoring for the computing platform that is included in the one or more abstract resource types can be mapped to an operating system computing environment. The virtual machine computing environment can be a computing environment associated with one or more virtual machines (e.g., one or more virtual servers) associated with the computing platform. The database computing environment can be a computing environment associated with one or more databases associated with the computing platform. The backup service computing environment can be a computing environment associated with one or more servers of the computing platform that provides one or more backup services. The operating system monitoring environment can be a computing environment associated with one or more servers of the computing platform that provides one or more operating system monitoring services.

At906, it is determined whether another abstract resource type is identified. If yes, the computer-implemented method900returns to904to update the abstract blueprint. If no, the computer-implemented method900proceeds to908.

At908, the executable blueprint is executed, by the system (e.g., by blueprint transformation component106) on an orchestration engine associated with the computing platform. In one embodiment, the executable blueprint can be employed by the orchestration engine associated with the computing platform to determine an optimal path of execution for hardware and/or software associated with the computing platform. In certain embodiments, the executable blueprint can be transmitted to the computing platform to facilitate employment of the executable blueprint by the orchestration engine associated with the computing platform. The executable blueprint and/or the one or more executable resources can be executed by the orchestration engine associated with the computing platform. In an embodiment, the one or more executable resources can be translated into hardware properties and/or software properties for the computing platform. In certain embodiments, the computer-implemented method900can additionally or alternatively include generating, by the system, mapping data indicative of a mapping of the one or more abstract resource types to the one or more executable resources. In certain embodiments, the computer-implemented method900can additionally or alternatively include generating, by the system, the executable blueprint based on the mapping data. In certain embodiments, the computer-implemented method900can additionally or alternatively include generating, by the system, the mapping data based on a set of transformation criteria. In certain embodiments, the computer-implemented method900can additionally or alternatively include generating, by the system, the mapping data based on at least one of service level agreement data, software data, deployment environment data, cost data, security data, response time data, dependency data, deadline data, user data, historical data, performance data, risk level data, and estimated benefit data. In certain embodiments, the executable blueprint can be executed on the orchestration engine associated with the computing platform to improve performance of the computing platform.

Moreover, because at least transforming one or more abstract resource types and/or executing an executable blueprint is established from a combination of electrical and mechanical components and circuitry, a human is unable to replicate or perform processing performed by the orchestration engine component102(e.g., the blueprint component104, the blueprint transformation component106, and/or the learning component202) disclosed herein. For example, a human is unable to transform one or more abstract resource types into one or more executable resources, a human is unable to execute an executable blueprint on a cloud-based computing platform, etc.

In order to provide a context for the various aspects of the disclosed subject matter,FIG. 10as well as the following discussion are intended to provide a general description of a suitable environment in which the various aspects of the disclosed subject matter can be implemented.FIG. 10illustrates a block diagram of an example, non-limiting operating environment in which one or more embodiments described herein can be facilitated. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

With reference toFIG. 10, a suitable operating environment1000for implementing various aspects of this disclosure can also include a computer1012. The computer1012can also include a processing unit1014, a system memory1016, and a system bus1018. The system bus1018couples system components including, but not limited to, the system memory1016to the processing unit1014. The processing unit1014can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit1014. The system bus1018can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Firewire (IEEE 1394), and Small Computer Systems Interface (SCSI).

The system memory1016can also include volatile memory1020and nonvolatile memory1022. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer1012, such as during start-up, is stored in nonvolatile memory1022. Computer1012can also include removable/non-removable, volatile/non-volatile computer storage media.FIG. 10illustrates, for example, a disk storage1024. Disk storage1024can also include, but is not limited to, devices like a magnetic disk drive, floppy disk drive, tape drive, Jaz drive, Zip drive, LS-100 drive, flash memory card, or memory stick. The disk storage1024also can include storage media separately or in combination with other storage media. To facilitate connection of the disk storage1024to the system bus1018, a removable or non-removable interface is typically used, such as interface1026.FIG. 10also depicts software that acts as an intermediary between users and the basic computer resources described in the suitable operating environment1000. Such software can also include, for example, an operating system1028. Operating system1028, which can be stored on disk storage1024, acts to control and allocate resources of the computer1012.

Computer1012can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s)1044. The remote computer(s)1044can be a computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device or other common network node and the like, and typically can also include many or all of the elements described relative to computer1012. For purposes of brevity, only a memory storage device1046is illustrated with remote computer(s)1044. Remote computer(s)1044is logically connected to computer1012through a network interface1048and then physically connected via communication connection1050. Network interface1048encompasses wire and/or wireless communication networks such as local-area networks (LAN), wide-area networks (WAN), cellular networks, etc. LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL). Communication connection(s)1050refers to the hardware/software employed to connect the network interface1048to the system bus1018. While communication connection1050is shown for illustrative clarity inside computer1012, it can also be external to computer1012. The hardware/software for connection to the network interface1048can also include, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.

Referring now toFIG. 11, an illustrative cloud computing environment1150is depicted. As shown, cloud computing environment1150includes one or more cloud computing nodes1110with which local computing devices used by cloud consumers, such as, for example, personal digital assistant (PDA) or cellular telephone1154A, desktop computer1154B, laptop computer1154C, and/or automobile computer system1154N may communicate. Nodes1110may communicate with one another. They may be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allows cloud computing environment1150to offer infrastructure, platforms and/or software as services for which a cloud consumer does not need to maintain resources on a local computing device. It is understood that the types of computing devices1154A-N shown inFIG. 11are intended to be illustrative only and that computing nodes1110and cloud computing environment1150can communicate with any type of computerized device over any type of network and/or network addressable connection (e.g., using a web browser).

Hardware and software layer1260includes hardware and software components. Examples of hardware components include: mainframes1261; RISC (Reduced Instruction Set Computer) architecture based servers1262; servers1263; blade servers1264; storage devices1265; and networks and networking components1266. In some embodiments, software components include network application server software1267and database software1268.

Virtualization layer1270provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers1271; virtual storage1272; virtual networks1273, including virtual private networks; virtual applications and operating systems1274; and virtual clients1275.

Workloads layer1290provides examples of functionality for which the cloud computing environment may be utilized. Non-limiting examples of workloads and functions which may be provided from this layer include: mapping and navigation1291; software development and lifecycle management1292; virtual classroom education delivery1293; data analytics processing1294; transaction processing1295; and orchestration engine process software1296.