TECHNICAL FIELD

The subject matter described herein relates to managing use of cloud resources.

BACKGROUND

Cloud computing can include the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user. The term can be generally used to describe data centers available to many users over the Internet. Large clouds often have functions distributed over multiple locations from central servers.

Some cloud computing providers can allow for scalability and elasticity via dynamic (e.g., “on-demand”) provisioning of resources on a fine-grained, self-service basis. This can provide cloud computing users the ability to scale up when the usage need increases or down if resources are not being used.

SUMMARY

In an aspect, data is received characterizing a virtual resource requirement for deployment of a resource in a first remote computing environment and/or a second remote computing environment. Second data is received characterizing resource cost for the first remote computing environment and the second remote computing environment. The receiving the second data includes accessing, via an application programming interface of the first remote computing environment and based on an account identity of an entity associated with the virtual resource requirement, the second data characterizing computing resource cost for the first remote computing environment. A first cost for deploying the resource within the first remote computing environment and a second cost for deploying the resource within the second remote computing environment is predicted using the received data. The first cost and the second cost is provided.

One or more of the following features can be included in any feasible combination. For example, the predicting can include accessing a database to retrieve a mapping of comparable resource types between the first remote computing environment and the second remote computing environment; and computing, using the mapping, the first cost and the second cost. The data characterizing the virtual resource requirement for deployment can include a resource manager template file specifying at least an object, a type, a name, and a property. A recommendation characterizing which of the first remote computing environment or the second remote computing environment to select for deployment of the resource can be determined based on the first cost and the second cost. The providing can include inserting a recommendation into a pre-deployment state of a resource manager template. The recommendation can further characterize a virtual resource.

The predicting can include determining a first set of resources of the first computing environment that satisfies the virtual resource requirement, the first set of resources associated with at least a first resource type; and determining a second set of resources of the second remote computing environment that satisfies the virtual resource requirement, the second set of resources associated with at least a second resource type. The first resource type and the second resource type can be different. The predicting can include converting the virtual resource requirement into a markup language file specifying a number of required virtual machines, a size of storage, and/or a virtual machine processing capability. The predicting can include determining, for a field within the markup language file, a first resource type of the first remote computing environment that satisfies at least a portion of the virtual resource requirement.

The resource can include a virtual machine, a storage account, a web application, a database, and/or a virtual network. The first remote computing environment can include an infrastructure as a service platform configured to provide application programming interfaces and supporting pools of hypervisors including virtual machines. The application programming interfaces can enable provision of processing, storage, and/or networks to support operating systems and/or applications.

Non-transitory computer program products (i.e., physically embodied computer program products) are also described that store instructions, which when executed by one or more data processors of one or more computing systems, causes at least one data processor to perform operations herein. Similarly, computer systems are also described that may include one or more data processors and memory coupled to the one or more data processors. The memory may temporarily or permanently store instructions that cause at least one processor to perform one or more of the operations described herein. In addition, methods can be implemented by one or more data processors either within a single computing system or distributed among two or more computing systems. Such computing systems can be connected and can exchange data and/or commands or other instructions or the like via one or more connections, including a connection over a network (e.g. the Internet, a wireless wide area network, a local area network, a wide area network, a wired network, or the like), via a direct connection between one or more of the multiple computing systems, etc.

The details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims.

