A cloud environment can include different types of resources, such as hardware resources (e.g., servers, host bus adapters, network adapters, switches, laptops, desktops, game consoles, storage devices, and the like) and software resources (e.g., versions of operating systems, applications, hypervisors, firmware, and the like). Provisioning the resources to execute a workload on a cloud environment involves selecting a set of resources that are compatible with each other.
Examples discussed herein may be applied to determine interoperability of resources within a cloud environment. One approach to determine interoperability between resources in the cloud environment may involve an administrator of the cloud environment manually recording or referring to, for each resource supporting the workload, the resources that are compatible with other resources. To assist in this, a vendor may publish an interoperability matrix with their products. Then, the administrator may consult these interoperability matrixes before deploying a workload to the data center.
However, this manual approach to determine interoperability between resources can be tedious, time consuming, and error prone. Additionally, this manual approach can also be time-consuming for the administrator of the data center as it may take administrative knowledge of different technologies and domains (e.g., the administrative knowledge of interoperability between hardware/software vendor specific configurations). Further, such manual interoperability matrixes can change whenever new versions of resources are released by vendors, exacerbating the above problems.
Rather than use manual approaches for interoperability matrixes, examples discussed herein may use a new service offered by a cloud environment referred to herein as InteropaaS (short for “Interoperability-as-a-Service”). Some implementations of an InteropaaS may expose interfaces which are consumed by a services of cloud environment (e.g., an orchestration service) to ensure interoperability of one or more resources before provisioning a new workload. An InteropaaS can internally gather interoperability information from: (a) resources which may reside within a driver associated with the resource; (b) interoperability information stored in system images (such as, for example, qcow2, iso, and the like) of the cloud environment; (c) a vendor website of respective hardware or software; a vender supplied storage device (e.g., compact disk (“CD”)-read only memory (“ROM”), flash drive, external drive, thumb drive; or any other suitable source. A system image may specify the software resources installed on a hardware system.
Examples discussed in the foregoing utilize a format for publishing an interoperability matrix according to a format referred to herein as open interoperability format (OIF). A vendor can publish an interoperability matrix in an OIF file located in a driver for the resource. Also the OIF file can be included in software packages or system images.
These and other example are discussed in the foregoing.
The administration device 102 may be a computer system (e.g., one or more computer devices, such as desktops, laptops, networking devices, tablets, mobile phones, set-top boxes, and the like) that is configured to send a workload deployment request to the data center OS 104. The administration device 102 may be operated by an administrator. The workload deployment request may be data or logic that requests for a product configuration to be deployed on the set of resource 106. For example, the workload deployment request may specify a product name (e.g., ProductName=Product1), a vender name (e.g., Vendor Name=Hypervisorware), a product type (e.g., Product Type=Hypervisor), a product version (e.g., Product Version=8.0) or any other suitable field.
The cloud operating system (OS) 104 may be a distributed service executing on a computer system (e.g., one or more computer devices, such as desktops, laptops, network devices, tablets, mobile phones, set-top boxes, and the like) that operates within cloud computing and virtualization environments. A cloud OS system 104 may manage the operation, execution and processes of virtual machines, virtual servers, containers, micro-services, and virtual infrastructure, as well as the back-end hardware and software resources of the resources 106. As one example, the cloud OS system 104 may provision a workload deployment request onto the resources 106.
The InteropaaS module 114 may be a service implemented by a computer system for providing interoperability data for resources 106. Further, in some examples, the InteropaaS module 114 may gather interoperability information from the resources. The operation of the InteropaaS module 114 is discussed in greater detail below.
The interoperability data repository 116 may be a data store for collecting, accessing, and otherwise accessing data derived from interoperability support matrix obtained from interoperability support matrix drivers of the resources. In one example, as is explained below, the data stored in the interoperability data repository 116 may allow the InteropaaS module 114 to search for and identify resources that can interoperate with a given resource.
With continued reference to
A resource may include an interoperability support matrix driver 124. An interoperability support matrix driver may expose an interface for querying an interoperability support matrix for the respective resource. An interoperability support matrix may be data and/or logic stored by the resource that specifies configurations of resources that can interoperate with the resource. In some cases, the interoperability support matrixes of the resources 106 may be expressed in an open interoperability format (“OIF”).
Examples of operational aspects of a cloud environment system that offering an InteropaaS are now discussed in greater detail.
At operation 302, the method 300 may begin when the cloud OS discovers a resource in the cloud environment. In some cases, the discovery may occur when the resource is added to the cloud environment. Further, in some cases, the cloud OS can assign a unique identifier to the resource, such as a universally unique identifier (“UUID”). A dedicated cloud service may monitor for addition events. In other cases, the action of discovering addition events may be distributed across different cloud service, such as a cloud fabric controller (e.g., NOVA) for some hardware resources and an imaging service (e.g., GLANCE) for software resources.
At operation 304, responsive to discovering the resource, the cloud OS may obtain an interoperability support matrix from the discovered resource. The technique for obtaining an interoperability support matrix may differ according to the type of resource. For example, a hardware resource may include an interoperability support matrix in the interoperability support matrix driver released with the hardware resource. In this way, some example of the interoperability support matrix driver not only provides an interface for interacting with the hardware resource but the interoperability support matrix driver can also be used as an interface for providing an interoperability support matrix. Thus, to illustrate an example of operation 304 with respect to hardware resources, the InteropaaS service may be configured to listen for the discovery of a new hardware resource and, responsive to the discovery, the InteropaaS may fetch the interoperability support matrix (which may be in the form of an OIF file) from the driver of the respective hardware resource.
With regard to software resources, the cloud OS may upload software modules as images and store these images in an image repository, e.g., a GLANCE. In this context, an interoperability support matrix (possibly in OIF format) for a software resource may be stored in an image uploaded to the image repository. Accordingly, the InteropaaS module may listen for image upload events and, upon detecting an image upload event, the InteropaaS module may mount the respective image and fetch the interoperability support matrix (e.g., an OIF file) present inside the image.
In some cases, the interoperability support matrix (e.g., an OIF file) may be located on a website, which may be maintained or otherwise hosted by the vendor or a third-party. In such cases, the InteropaaS module may obtain the interoperability support matrix via a link (e.g., a uniform resource locator (“URL”)) embedded in the interoperability support matrix driver of the resource. Alternatively, the InteropaaS module may obtain the interoperability support matrix via a storage device supplied by an administrator.
At operation 306, the cloud OS (e.g., the InteropaaS module) stores an interoperability record in the interoperability support matrix repository. The interoperability record may specify that the resource can interoperate with the resource listed in the interoperability support matrix. In some examples, the interoperability record may be indexed according to a resource identifier (e.g., an UUID) assigned to the resource, as may occur at operation 302. The interoperability record persisted in the interoperability support matrix repository can be used by the InteropaaS module to recommend possible sets of resources for provisioning of a work load.
Aspects of method for determining interoperability between resources are now discussed. In some examples, a deployment tree may be used to determine interoperability between resources. A deployment tree as used herein may refer to data and/or logic that represents an order of types of resources that are to be searched to find a set of interoperable products. For example, the following deployment tree represents a deployment of a workload involving an Application resource type:
The above deployment tree denotes an order as: finding an interoperable Operating System resource, then an interoperable Hypervisor resource, then an interoperable Server resource, then an interoperable Network resource, and finally an interoperable Storage resource.
The InteropaaS engine can refer to a deployment tree to determine what type of resource types are involved for provisioning a given workload deployment request. For example to deploy an Operating System, Hypervisor, Server, Network, Storage resource types are involved. It is up to the orchestration module to use all resource types or subset of resource types for provisioning a workload. For example, the orchestration module can choose to deploy an image directly on Server without using a Hypervisor resource type in the scenario that a Hypervisor resource type is not represented in the deployment tree.
Table 1 illustrates, by way of examples and not limitation, additional deployment trees that may be passed to the InteropaaS module:
The method 500 may begin at operation 502 when a workload deployment request is received by a cloud OS (e.g., an orchestration module, such as HEAT, IRONIC, NOVA, or the like). The workload deployment request may be sent by an administrator device. A workload deployment request may include any combination of a product name, a vendor name, a product type, a product version, and any other suitable field. For example a workload deployment request (WRQ) may include the following fields (as name, value pairs): ProductName=Product1, Vendor Name=Hypervisorware, Product Type=Hypervisor, Product Version=8.0.
At operation 504, the orchestration module may then create a deployment tree of resource types to be used for provisioning the workload represented by the workload deployment request WRQ. Let us denote the Deployment Tree as DTchosen. As discussed above, a deployment tree may specify an ordering of resource types that are to interoperate with each other as part of a deployment. For example, the DTchosen may represent “Hypervisor→Server→Network→Storage” to indicate the workload is to be deployed on bare metal Servers, where the Server is connected to Storage through a Network.
At operation 506, the orchestration module communicates the workload deployment request WRQ and the deployment tree DTchosen to the InteropaaS module. Communicating the workload deployment request WRQ and the deployment tree DTchosen to InteropaaS module may be part of a request to the InteropaaS module to generate a resource set recommendation. Once the InteropaaS module receives a request to generate a resource set recommendation, the InteropaaS module may generate the resource set recommendation. The operations of generating a resource set recommendation is discussed in greater detail below with reference to
At operation 508, upon receiving a resource set recommendation from the InteropaaS module, the orchestration module may use the resource set recommendation to provision the workload on the resources. For example, the resource set recommendation may include a set of resource type recommendations. In turn each, resource type recommendation may include products that interoperate with the products listed in the other resource type recommendations. For example, the resource set recommendation may be a data set, such as:
Resrecommended={Serverrecommended, Networkrecommended, Storagerecommended}
Where Resrecommended is the resource set recommendation. Serverrecommended may be a resource type recommendation that specifies products of Server type that interoperate with the workload deployment request. Networkrecommended may be a resource type recommendation that specifies products of Network type that interoperate with the workload deployment request. Storagerecommended may be a resource type recommendation that specifies products of Storage type that interoperate with the workload deployment request. The Serverrecommended, the Networkrecommended, and the Storagerecommended may specify a product using a resource identifier.
The orchestration module uses Resrecommended for provisioning the workload deployment request WRQ. The resource scheduling module within the orchestration module can consider Resrecommended for provisioning in conjunction with other factors, such as utilization, geographic location, tenant, zone, and any other aspect.
The operations of generating a resource set recommendation is now discussed in greater detail. For example,
The method 600 may begin at operation 602 when the InteropaaS module receives a workload deployment request (e.g., WRQ) and a deployment tree (DTchosen) from the orchestration module. As discussed above, the workload deployment request may include a set of properties that characterize a workload, such as a product name, product type, version number, vender name, and the like. Similarly, the deployment tree may be data or logic that specifies an ordering of resource types that are to interoperate with each other as part of the deployment specified by the workload deployment request.
At operation 604, based on the resource type specified in the workload deployment request and the set of resource types specified in the deployment tree, the InteropaaS module scans the interoperability records persisted in the interoperability support matrix repository to identify the resources that interoperate with the workload specified in the workload deployment request and the ordered list of resource types.
At operation 606, the InteropaaS module returns the identified the resources that interoperate with the workload to the orchestration module of the cloud OS.
The processor 741 shown in
For example, in one aspect, execution of the instructions 744, whole or in part, may cause the processor 741 to discover a resource in the cloud environment. The instructions can also cause the processor to, responsive to discovering the resource, obtain an interoperability support matrix associated with the resource. The interoperability support matrix can specify another resource that interoperates with the resource. Also, the instructions can also cause the processor to store an interoperability record in an interoperability support matrix repository. The interoperability record specifying that the another resource interoperates with the resource.
With regard to instructions 746, execution of the instructions 746, whole or in part, may cause the processor 741 to receive a workload deployment request and a deployment tree from an orchestration module of a cloud OS. The workload deployment request may include properties that characterize a workload. The deployment tree may specify an ordered list of resource types that are to interoperate with each other as part of a deployment of the workload. Based on the properties included in the workload deployment request and the ordered list of resource types specified in the deployment tree, the instructions can cause the processor to scan the interoperability records in an interoperability support matrix repository to identify resources that interoperate with the workload specified in the workload deployment request and the ordered list of resource types. Then the instructions can cause the processor to return the identified resources to the orchestration module of the cloud OS.
Number | Date | Country | Kind |
---|---|---|---|
1897/CHE/2015 | Apr 2015 | IN | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US15/38499 | 6/30/2015 | WO | 00 |