WO2016164062A1 - Interoperability-as-a-service in a cloud environment - Google Patents

Interoperability-as-a-service in a cloud environment Download PDF

Info

Publication number
WO2016164062A1
WO2016164062A1 PCT/US2015/038499 US2015038499W WO2016164062A1 WO 2016164062 A1 WO2016164062 A1 WO 2016164062A1 US 2015038499 W US2015038499 W US 2015038499W WO 2016164062 A1 WO2016164062 A1 WO 2016164062A1
Authority
WO
WIPO (PCT)
Prior art keywords
resource
interoperability
workload
resources
support matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2015/038499
Other languages
French (fr)
Inventor
Swaroop Jayanthi
Sripadwallabha Dattatraya KOLLUR
Brahmanand VUPPULURI
Kanagaraj MANICKAM
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Priority to US15/543,130 priority Critical patent/US20180011741A1/en
Publication of WO2016164062A1 publication Critical patent/WO2016164062A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Definitions

  • 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.
  • hardware resources e.g., servers, host bus adapters, network adapters, switches, laptops, desktops, game consoles, storage devices, and the like
  • software resources e.g., versions of operating systems, applications, hypervisors, firmware, and the like.
  • FIG. 1 is a diagram illustrating a cloud environment system that supports Interoperability-as-a-Service (“InteropaaS”), according to an example.
  • InteropaaS Interoperability-as-a-Service
  • FIG. 2 is an interoperability support matrix that may be stored in an interoperability support matrix driver, according to an example.
  • FIG. 3 is a flowchart illustrating a method for obtaining interoperability support matrixes from resources, according to an example.
  • FIG. 4 is a diagram illustrating a data structure for storing an interoperability support matrix in an interoperability support matrix repository, according to an example.
  • FIG. 5 is a flowchart illustrating a method for generating a recommendation of interoperable products, according to an example.
  • FIG. 6 is a flowchart illustrating a method for generating a resource set recommendation, according to an example.
  • FIG. 7 is a block diagram illustrating a computer device, in accordance with an example. Detailed Description
  • 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.
  • 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.
  • InteropaaS short for 1nteroperability-as-a-Service
  • Some implementations of an InteopaaS 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.
  • 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).
  • OIF open interoperability format
  • a vendor can publish an interoperability matrix in an OIF file located in a driver for the resource.
  • the OIF file can be included in software packages or system images.
  • FIG. 1 is a diagram illustrating a cloud environment system 100 that supports InteropaaS, according to an example.
  • the system 100 may include an administration device 102, a data center operating system (OS) 104, and a set of resources 106.
  • the administration device 102, the data center operating system (OS) 104, and the set of resources 106 may be communicatively coupled through, for example, a network.
  • 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.
  • Product Version 8.0
  • 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.
  • the cloud OS system 104 may provision a workload deployment request onto the resources 106.
  • FIG. 1 shows that the cloud OS 104 may include an orchestration module 1 12, an InteropaaS module 1 14, interoperability data repository 1 16, and cloud services 1 18.
  • the orchestration module 1 12 may be a computer-implemented module that can configure multiple resources together to execute a given workload. Further, the orchestration module 1 12 may connect and automate workload when applicable to deliver a defined service.
  • the InteropaaS module 1 14 may be a service implemented by a computer system for providing interoperability data for resources 106. Further, in some examples, the InteropaaS module 1 14 may gather interoperability information from the resources. The operation of the InteropaaS module 1 14 is discussed in greater detail below.
  • the interoperability data repository 1 16 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.
  • the data stored in the interoperability data repository 1 16 may allow the InteropaaS module 1 14 to search for and identify resources that can interoperate with a given resource.
  • FIG. 1 shows that the cloud OS 104 may also include cloud services 1 18.
  • Cloud services 1 18 may be a collection of services implemented by a computer system for providing services across the infrastructure provided by the resources 106.
  • cloud services may include a cloud fabric controller (e.g., the NOVA service that is part of OPENSTACK), an object storage service (e.g., the SWIFT service that is part of OPENSTACK), a block storage service (e.g., the CINDER service that is part of OPENSTACK), a service for managing a network and Internet Protocol (IP) addresses (e.g., the NEUTRON service that is part of OPENSTACK), a backup service (e.g., the RAKSHA service that is part of OPENSTACK), an imaging service (e.g., the GLANCE service that is part of OPENSTACK, which provides discovery, registration, and delivery services for disk and server images), and the like.
  • IP Internet Protocol
  • the system 100 includes the resources 106 (individually, resources 106a-n).
  • a resource may be a physical or logical entity in cloud environment that can be used to execute a workload, once deployed thereon.
  • a resource may be a server, a storage array, a network switch, a host bus adapter card, a network adapter, a logical network, a subnet, a network port, a gateway, a router, an operating system, an application, hypervisor, firmware, or the like.
  • 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.
  • the interoperability support matrixes of the resources 106 may be expressed in an open interoperability format ("OIF").
  • FIG. 2 is an interoperability support matrix 200 that may be stored in an interoperability support matrix driver, according to an example.
  • the interoperability support matrix 200 may include fields to characterize a given resource, such as a resource name field 202 to specify a product name, a vender identifier field 204 to specify a name associated with the vendor of the resource, a product type field 206 to identify the type of the resource, a resource description field 208 to list attributes of the resource (which may, in some cases, be dependent on the resource type), and an interoperability section 210 that may include a list of resources that can interoperate with the resource represented by the interoperability support matrix 200.
  • a resource name field 202 to specify a product name
  • a vender identifier field 204 to specify a name associated with the vendor of the resource
  • a product type field 206 to identify the type of the resource
  • a resource description field 208 to list attributes of the resource (which may, in some cases, be dependent on the resource
  • the interoperability section 210 may include multiple interoperability resource sub- fields that each characterize an interoperable resource.
  • the multiple interoperability resource sub-field 212 specifies that the resource represented by the interoperability support matrix 200 (the '3PAR' product) may interoperate with a 'PRODUCT2' OPERATING SYSTEM,' as may be offered by 'ACMESOFT,' as may be detailed by the multiple interoperability resource sub-field 212 through fields that specify a product name, resource type, and vender, respectively.
  • FIG. 3 is a flowchart illustrating a method 300 for obtaining interoperability support matrixes from resources, according to an example.
  • the method 300 may be performed by the modules, components, systems shown in FIG. 1 , and, accordingly, is described herein merely by way of reference thereto.
  • the method 300 may be performed by a cloud OS or, more precisely, in some cases, an InteropaaS module. It will be appreciated that the method 300 may, however, be performed on any suitable hardware.
  • the method 300 may begin when the cloud OS discovers a resource in the cloud environment.
  • the discovery may occur when the resource is added to the cloud environment.
  • the cloud OS can assign a unique identifier to the resource, such as a universally unique identifier ("UUID").
  • UUID universally unique identifier
  • a dedicated cloud service may monitor for addition events.
  • 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.
  • a cloud fabric controller e.g., NOVA
  • an imaging service e.g., GLANCE
  • 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.
  • a hardware resource may include an interoperability support matrix in the interoperability support matrix driver released with the hardware resource.
  • 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.
  • 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.
  • the cloud OS may upload software modules as images and store these images in an image repository, e.g., a GLANCE.
  • an interoperability support matrix (possibly in OIF format) for a software resource may be stored in an image uploaded to the image repository.
  • 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.
  • the interoperability support matrix e.g., an OIF file
  • 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.
  • 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.
  • the InteropaaS module may obtain the interoperability support matrix via a storage device supplied by an administrator.
  • 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.
  • 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.
  • FIG. 4 is a diagram illustrating a data structure for storing an interoperability support matrix 400 in an interoperability support matrix repository, according to an example.
  • the interoperability support matrix 400 may be represented as a table where the rows represent different resources and the columns represent properties of a resource.
  • a row of the interoperability support matrix 400 may represent an interoperability record.
  • Column 402 may specify a resource identifier assigned to a resource when the resource is added to the set of resources.
  • Column 404 may specify a product name for the resource.
  • Column 406 may specify a vendor for the resource.
  • Column 408 may specify a product type for the resource.
  • Column 408 may specify a resource type for the resource.
  • Column 410 may specify a version number for the resource.
  • the interoperability blob may specify resources that may interoperate with a given resource.
  • the interoperability blob may be derived from data contained in the interoperability section of an interoperability support matrix stored in an interoperability support matrix driver. Further, an interoperability blob may be formatted in any number of data formats, such as JavaScript Object Notation ("JSON”), Extensible Markup Language (“XML”), or any other suitable format.
  • JSON JavaScript Object Notation
  • XML Extensible Markup Language
  • 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.
  • 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 egine 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:
  • FIG. 5 is a flowchart illustrating a method 500 for generating a recommendation of interoperable products, according to an example.
  • the method 500 may be performed by the modules, components, systems shown in FIG. 1 , and, accordingly, is described herein merely by way of reference thereto.
  • the method 500 may be performed by a cloud OS or, more precisely, in some cases, an orchestration module. It will be appreciated that the method 500 may, however, be performed on any suitable hardware.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 FIG. 6. However, to clarify the discussion of the method 500, a resource set recommendation may include a set of resources for each resource type listed by the deployment tree.
  • the orchestration module may use the resource set recommendation to provision the workload on the resources.
  • the resource set recommendation may include a set of resource type recommendations.
  • each, resource type recommendation may include products that interoperate with the products listed in the other resource type recommendations.
  • the resource set recommendation may be a data set, such as:
  • 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.
  • FIG. 6 is a flowchart illustrating a method 600 for generating a resource set recommendation, according to an example.
  • the method 600 may be performed by the modules, components, systems shown in FIG. 1 , and, accordingly, is described herein merely by way of reference thereto.
  • the method 600 may be performed by a cloud OS or, more precisely, in some cases, an InteropaaS module. It will be appreciated that the method 600 may, however, be performed on any suitable hardware.
  • 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.
  • a workload deployment request e.g., WRQ
  • DTchosen deployment tree
  • 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.
  • 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.
  • 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.
  • the InteropaaS module returns the identified the resources that interoperate with the workload to the orchestration module of the cloud OS.
  • FIG. 7 is a block diagram illustrating a computer device 700, in accordance with an example.
  • the computer device 700 may include a processor 741 and a computer-readable storage device 742.
  • the processor 741 may be a device suitable to read and execute processor executable instructions, such as a CPU, or an integrated circuit configured to perform a configured function.
  • the processor executable instructions may cause the processor 741 to implement techniques described herein.
  • the processor 741 shown in FIG. 7 is coupled to the computer-readable storage device 742.
  • the computer-readable storage device 742 may contain thereon a set of instructions, which when executed by the processor 741 , cause the processor 741 to execute the techniques described herein.
  • the computer-readable storage device 742 may include interoperability matrix building instructions 744 and interoperability recommendation instructions 746.
  • execution of the instructions 744 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.
  • 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.
  • 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.
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

Methods, devices, and techniques for determining interoperable resources are discussed herein. For example, in one aspect, a resource in a cloud environment may be discovered. Responsive to discovering the resource, an interoperability support matrix associated with the resource can be obtained. The interoperability support matrix may specify another resource that interoperates with the resource. An interoperability record is then stored in an interoperability support matrix repository. The interoperability record can specify that the another resource interoperates with the resource.

Description

INTEROPERABILITY-AS-A-SERVICE IN A CLOUD ENVIRONMENT
Background
[0001 ] 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.
Brief Description of the Drawings
[0002] FIG. 1 is a diagram illustrating a cloud environment system that supports Interoperability-as-a-Service ("InteropaaS"), according to an example.
[0003] FIG. 2 is an interoperability support matrix that may be stored in an interoperability support matrix driver, according to an example.
[0004] FIG. 3 is a flowchart illustrating a method for obtaining interoperability support matrixes from resources, according to an example.
[0005] FIG. 4 is a diagram illustrating a data structure for storing an interoperability support matrix in an interoperability support matrix repository, according to an example.
[0006] FIG. 5 is a flowchart illustrating a method for generating a recommendation of interoperable products, according to an example.
[0007] FIG. 6 is a flowchart illustrating a method for generating a resource set recommendation, according to an example.
[0008] FIG. 7 is a block diagram illustrating a computer device, in accordance with an example. Detailed Description
[0009] 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.
[0010] 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.
[001 1 ] 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 1nteroperability-as-a-Service"). Some implementations of an InteopaaS 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.
[0012] 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.
[0013] These and other example are discussed in the foregoing.
[0014] FIG. 1 is a diagram illustrating a cloud environment system 100 that supports InteropaaS, according to an example. For example, the system 100 may include an administration device 102, a data center operating system (OS) 104, and a set of resources 106. The administration device 102, the data center operating system (OS) 104, and the set of resources 106 may be communicatively coupled through, for example, a network.
[0015] 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.
[0016] 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.
[0017] FIG. 1 shows that the cloud OS 104 may include an orchestration module 1 12, an InteropaaS module 1 14, interoperability data repository 1 16, and cloud services 1 18. The orchestration module 1 12 may be a computer-implemented module that can configure multiple resources together to execute a given workload. Further, the orchestration module 1 12 may connect and automate workload when applicable to deliver a defined service.
[0018] The InteropaaS module 1 14 may be a service implemented by a computer system for providing interoperability data for resources 106. Further, in some examples, the InteropaaS module 1 14 may gather interoperability information from the resources. The operation of the InteropaaS module 1 14 is discussed in greater detail below.
[0019] The interoperability data repository 1 16 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 1 16 may allow the InteropaaS module 1 14 to search for and identify resources that can interoperate with a given resource.
[0020] FIG. 1 shows that the cloud OS 104 may also include cloud services 1 18. Cloud services 1 18 may be a collection of services implemented by a computer system for providing services across the infrastructure provided by the resources 106. By way of example and not limitation, cloud services may include a cloud fabric controller (e.g., the NOVA service that is part of OPENSTACK), an object storage service (e.g., the SWIFT service that is part of OPENSTACK), a block storage service (e.g., the CINDER service that is part of OPENSTACK), a service for managing a network and Internet Protocol (IP) addresses (e.g., the NEUTRON service that is part of OPENSTACK), a backup service (e.g., the RAKSHA service that is part of OPENSTACK), an imaging service (e.g., the GLANCE service that is part of OPENSTACK, which provides discovery, registration, and delivery services for disk and server images), and the like. [0021 ] With continued reference to FIG. 1 , the system 100 includes the resources 106 (individually, resources 106a-n). A resource may be a physical or logical entity in cloud environment that can be used to execute a workload, once deployed thereon. By way of example and not limitation, a resource may be a server, a storage array, a network switch, a host bus adapter card, a network adapter, a logical network, a subnet, a network port, a gateway, a router, an operating system, an application, hypervisor, firmware, or the like.
[0022] 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").
[0023] FIG. 2 is an interoperability support matrix 200 that may be stored in an interoperability support matrix driver, according to an example. The interoperability support matrix 200 may include fields to characterize a given resource, such as a resource name field 202 to specify a product name, a vender identifier field 204 to specify a name associated with the vendor of the resource, a product type field 206 to identify the type of the resource, a resource description field 208 to list attributes of the resource (which may, in some cases, be dependent on the resource type), and an interoperability section 210 that may include a list of resources that can interoperate with the resource represented by the interoperability support matrix 200. For example, the interoperability section 210 may include multiple interoperability resource sub- fields that each characterize an interoperable resource. For example, the multiple interoperability resource sub-field 212 specifies that the resource represented by the interoperability support matrix 200 (the '3PAR' product) may interoperate with a 'PRODUCT2' OPERATING SYSTEM,' as may be offered by 'ACMESOFT,' as may be detailed by the multiple interoperability resource sub-field 212 through fields that specify a product name, resource type, and vender, respectively.
[0024] Examples of operational aspects of a cloud environment system that offering an InteropaaS are now discussed in greater detail. [0025] FIG. 3 is a flowchart illustrating a method 300 for obtaining interoperability support matrixes from resources, according to an example. The method 300 may be performed by the modules, components, systems shown in FIG. 1 , and, accordingly, is described herein merely by way of reference thereto. For example, in some cases, the method 300 may be performed by a cloud OS or, more precisely, in some cases, an InteropaaS module. It will be appreciated that the method 300 may, however, be performed on any suitable hardware.
[0026] 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.
[0027] 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. [0028] 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.
[0029] 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.
[0030] 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.
[0031 ] FIG. 4 is a diagram illustrating a data structure for storing an interoperability support matrix 400 in an interoperability support matrix repository, according to an example. The interoperability support matrix 400 may be represented as a table where the rows represent different resources and the columns represent properties of a resource. A row of the interoperability support matrix 400 may represent an interoperability record. Column 402 may specify a resource identifier assigned to a resource when the resource is added to the set of resources. Column 404 may specify a product name for the resource. Column 406 may specify a vendor for the resource. Column 408 may specify a product type for the resource. Column 408 may specify a resource type for the resource. Column 410 may specify a version number for the resource. Column 412 may specify an interoperability blob. The interoperability blob may specify resources that may interoperate with a given resource. The interoperability blob may be derived from data contained in the interoperability section of an interoperability support matrix stored in an interoperability support matrix driver. Further, an interoperability blob may be formatted in any number of data formats, such as JavaScript Object Notation ("JSON"), Extensible Markup Language ("XML"), or any other suitable format.
[0032] 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:
Application(s) - Operating System - Hypervisor -> Server -> Network - Storage
[0033] 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.
[0034] The InteropaaS egine 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. [0035] Table 1 illustrates, by way of examples and not limitation, additional deployment trees that may be passed to the InteropaaS module:
Figure imgf000011_0001
Table 1
FIG. 5 is a flowchart illustrating a method 500 for generating a recommendation of interoperable products, according to an example. The method 500 may be performed by the modules, components, systems shown in FIG. 1 , and, accordingly, is described herein merely by way of reference thereto. For example, in some cases, the method 500 may be performed by a cloud OS or, more precisely, in some cases, an orchestration module. It will be appreciated that the method 500 may, however, be performed on any suitable hardware.
[0036] 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.
[0037] 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.
[0038] 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 FIG. 6. However, to clarify the discussion of the method 500, a resource set recommendation may include a set of resources for each resource type listed by the deployment tree.
[0039] 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, NetWOrkrecom mended, StOragerecommended} [0040] 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.
[0041 ] 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.
[0042] The operations of generating a resource set recommendation is now discussed in greater detail. For example, FIG. 6 is a flowchart illustrating a method 600 for generating a resource set recommendation, according to an example. The method 600 may be performed by the modules, components, systems shown in FIG. 1 , and, accordingly, is described herein merely by way of reference thereto. For example, in some cases, the method 600 may be performed by a cloud OS or, more precisely, in some cases, an InteropaaS module. It will be appreciated that the method 600 may, however, be performed on any suitable hardware.
[0043] 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. [0044] 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.
[0045] At operation 606, the InteropaaS module returns the identified the resources that interoperate with the workload to the orchestration module of the cloud OS.
[0046] FIG. 7 is a block diagram illustrating a computer device 700, in accordance with an example. The computer device 700 may include a processor 741 and a computer-readable storage device 742. The processor 741 may be a device suitable to read and execute processor executable instructions, such as a CPU, or an integrated circuit configured to perform a configured function. The processor executable instructions may cause the processor 741 to implement techniques described herein.
[0047] The processor 741 shown in FIG. 7 is coupled to the computer-readable storage device 742. The computer-readable storage device 742 may contain thereon a set of instructions, which when executed by the processor 741 , cause the processor 741 to execute the techniques described herein. For example, the computer-readable storage device 742 may include interoperability matrix building instructions 744 and interoperability recommendation instructions 746.
[0048] 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. [0049] 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.

Claims

I/We Claim:
1 . A method comprising:
receiving, by at least one processor, a workload deployment request, the workload requesting a workload to be deployed in a cloud environment;
creating, by the at least one processor, a deployment tree that specifies an ordered list of resource types to be used in provisioning a workload represented by the workload deployment request;
communicating, by the at least one processor, the workload deployment request and the deployment tree to an Interoperability-as-a-Service ("InteropaaS") module of the cloud operating system (OS);
receiving, by the at least one processor, a resource set recommendation from the InteropaaS module; and
using, by the at least one processor, the resource set recommendation to provision the workload on a set resources.
2. The method of claim 1 , wherein the workload deployment request includes a product name, a vendor name, product version, and a resource type.
3. The method of claim 2, wherein the resource set recommendation specifies a set of resources for each of the resource types listed by the deployment tree that interoperate with each other.
4. The method of claim 1 , wherein provisioning the workload includes configuring resources according to resources selected from the set of resources specified by the resource set recommendation.
5. The method of claim 1 , wherein the resource types include at least one of a server, a storage array, a network switch, a host bus adapter card, a network adapter, a logical network, a subnet, a network port, a gateway, a router, an operating system, a hypervisor, an application, or firmware.
6. A device comprising:
a processor; and
a machine-readable storage device comprising instructions that provide an Interoperability-as-a-Service ("InteropaaS"), the instructions when executed, cause the processor to:
discover a resource in a cloud environment;
responsive to discovering the resource, obtain an interoperability support matrix associated with the resource, the interoperability support matrix specifying another resource that interoperates with the resource; and
store an interoperability record in an interoperability support matrix repository, the interoperability record specifying that the another resource interoperates with the resource.
7. The device of claim 6, wherein the instructions further cause the processor to discover the resource when the resource is added to the cloud environment.
8. The method of claim 7, wherein the interoperability support matrix includes an interoperability section that lists additional resources that interoperate with the resource.
9. The method of claim 8, wherein the interoperability record specifies that the another resource interoperates with the resource based on the another resource being listed in the additional resources of the interoperability section.
10. The method of claim 6, wherein the instructions further cause the processor to obtain the interoperability support matrix based on fetching the interoperability support matrix from a driver corresponding to the resource.
1 1 . The method of claim 6, wherein the instructions further cause the processor to obtain the interoperability support matrix based on fetching the interoperability support matrix from a system image.
12. A machine-readable storage device comprising instructions that provide an Interoperability-as-a-Service ("InteropaaS"), the instruction, when executed, cause a processor to:
receive a workload deployment request and a deployment tree from an orchestration module of a cloud operating system ("OS") of a cloud environment, the workload deployment request including properties that characterize a workload, the deployment tree specifying 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, 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; and
return the identified resources to the orchestration module of the cloud OS.
13. The machine-readable storage device of claim 12, wherein the ordered list of resource types include at least one of a server, a storage array, a network switch, a host bus adapter card, a network adapter, a logical network, a subnet, a network port, a gateway, a router, an operating system, a hypervisor, an application, or firmware.
14. The machine-readable storage device of claim 12, wherein the instructions, when executed, further cause the processor to identify the resources that interoperate with the workload specified in the workload deployment request and the ordered list of resource types based on:
identifying an interoperability record matching the workload; and
identifying, within a interoperability blob, interoperability resource sub-fields corresponding to the resources.
15. The machine-readable storage device of claim 13, wherein the workload deployment request includes a product name and a vender name, and identifying the interoperability record matching the workload involves matching the product name and vender name with fields in the interoperability record.
PCT/US2015/038499 2015-04-10 2015-06-30 Interoperability-as-a-service in a cloud environment Ceased WO2016164062A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/543,130 US20180011741A1 (en) 2015-04-10 2015-06-30 Interoperability-as-a-service in a cloud environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN1897CH2015 2015-04-10
IN1897/CHE/2015 2015-04-10

Publications (1)

Publication Number Publication Date
WO2016164062A1 true WO2016164062A1 (en) 2016-10-13

Family

ID=57071950

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/038499 Ceased WO2016164062A1 (en) 2015-04-10 2015-06-30 Interoperability-as-a-service in a cloud environment

Country Status (2)

Country Link
US (1) US20180011741A1 (en)
WO (1) WO2016164062A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12056353B2 (en) * 2023-01-04 2024-08-06 Kyndryl, Inc. Dynamically assigning storage objects to compartment constructs of a storage system to reduce application risk

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452377B2 (en) * 2016-10-24 2019-10-22 Vmware, Inc. Simulating end-to-end upgrade process in production environment
US10979531B2 (en) 2019-01-31 2021-04-13 International Business Machines Corporation Pessimistic scheduling for topology optimized workload placement
US12244672B2 (en) * 2021-10-08 2025-03-04 Capital One Services, Llc Cloud data ingestion system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080243947A1 (en) * 2007-03-30 2008-10-02 Yasunori Kaneda Method and apparatus for controlling storage provisioning
US7609651B1 (en) * 2006-01-03 2009-10-27 Emc Corporation Methods and systems for maintaining configuration information
US20100058352A1 (en) * 2008-09-02 2010-03-04 Computer Associates Think, Inc. System and Method for Dynamic Resource Provisioning for Job Placement
US20120246318A1 (en) * 2011-03-27 2012-09-27 Sakhavullah Mohammed Resource compatability for data centers

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984436B1 (en) * 2005-09-27 2011-07-19 Intuit Inc. Management of compatibility of software products installed on a user's computing device
US10025580B2 (en) * 2013-01-23 2018-07-17 Dell Products L.P. Systems and methods for supporting multiple operating system versions
US10432548B2 (en) * 2015-07-31 2019-10-01 Hewlett Packard Enterprise Development Lp Workload deployment in computing networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7609651B1 (en) * 2006-01-03 2009-10-27 Emc Corporation Methods and systems for maintaining configuration information
US20080243947A1 (en) * 2007-03-30 2008-10-02 Yasunori Kaneda Method and apparatus for controlling storage provisioning
US20100058352A1 (en) * 2008-09-02 2010-03-04 Computer Associates Think, Inc. System and Method for Dynamic Resource Provisioning for Job Placement
US20120246318A1 (en) * 2011-03-27 2012-09-27 Sakhavullah Mohammed Resource compatability for data centers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FRANCOIS GALASSO ET AL.: "A method to select a successful interoperability solution through a simulation approach", JOURNAL OF INTELLIGENT MANUFACTURING, 12 March 2014 (2014-03-12), XP035913781 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12056353B2 (en) * 2023-01-04 2024-08-06 Kyndryl, Inc. Dynamically assigning storage objects to compartment constructs of a storage system to reduce application risk
US12511039B2 (en) 2023-01-04 2025-12-30 Kyndryl, Inc. Dynamically assigning storage objects to compartment constructs of a storage system to reduce application risk

Also Published As

Publication number Publication date
US20180011741A1 (en) 2018-01-11

Similar Documents

Publication Publication Date Title
US10095537B1 (en) Driver version identification and update system
US9268589B2 (en) Method and system for deploying multiple distributed application stacks on a target machine
US8312115B2 (en) Network booting apparatus and method
US9100297B2 (en) Registering new machines in a software provisioning environment
US10044795B2 (en) Methods and apparatus for rack deployments for virtual computing environments
US8762986B2 (en) Advanced packaging and deployment of virtual appliances
US10177974B2 (en) Configuring managed server
US11528186B2 (en) Automated initialization of bare metal servers
US11082505B2 (en) Dynamic discovery of available storage servers
JP2021524090A (en) Selectively provide mutual transport layer security using alternate server names
EP2019358A1 (en) A method and a system for the creation and deployment of a virtual machine appliance on virtualised servers
US10372463B1 (en) Provisioning a computerized device with an operating system
US12020011B2 (en) Managing an upgrade of a virtualization infrastructure component
US20160261459A1 (en) Package dependency maps for distributed computing
US12197936B2 (en) Scalable visualization of a containerized application in a multiple-cluster and multiple deployment application environment
US11119754B1 (en) Upgrading system components with forward and backward compatibility
US11303583B2 (en) Resource trees by management controller
WO2018146671A1 (en) Dynamically adaptive cloud computing infrastructure
US20180011741A1 (en) Interoperability-as-a-service in a cloud environment
US9928097B1 (en) Methods, systems, and computer readable mediums for defining and updating a virtual computing system comprising distributed resource components
US20170269905A1 (en) Method and apparatus for delivering software solutions
US11799743B2 (en) Node addition in cloud networks
US11055108B2 (en) Network booting in a peer-to-peer environment using dynamic magnet links
US20230259274A1 (en) Software-defined storage information in view of available hardware resources
US10628193B2 (en) Technique for operating a system controller of a virtualized application cluster

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15888704

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15888704

Country of ref document: EP

Kind code of ref document: A1