Example implementations relate to virtual appliances. In an example, a processor-based appliance abstraction engine exposes a programming interface for accessing undifferentiated resources of a computing environment irrespective of the type of the computing environment. Computing environment types may include physical infrastructure, virtual infrastructure, or cloud infrastructure. The appliance abstraction engine discovers available resources of the computing environment and creates a virtual appliance by configuring the discovered available resources of the computing environment according to capabilities defined in a specification and by populating the computing environment with artifacts for a computing platform defined in the specification.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A system comprising: a computing environment of a type that is physical infrastructure, virtual infrastructure, or cloud infrastructure; and an appliance abstraction engine deployed on the computing environment, the appliance abstraction engine to: expose a programming interface for accessing undifferentiated resources of the computing environment irrespective of and without knowledge of the type of the computing environment, receive an indication of the type of the computing environment upon initialization of the appliance abstraction engine, receive from a caller and via the programming interface an initial request for undifferentiated resources of the computing environment as a virtual appliance, the initial request not including any knowledge of the type of computing environment, receive directly by the appliance abstraction engine a specification that defines capabilities for the virtual appliance and defines a computing platform to be executed on the virtual appliance, discover available resources of the computing environment utilizing discovery tools included in the appliance abstraction engine for discovering available resources of physical, virtual, and cloud infrastructure types, where physical infrastructure type includes bare metal servers, virtual infrastructure type includes a hypervisor executing on physical infrastructure, and cloud infrastructure type includes a public cloud service, and in response to the initial request, create the virtual appliance by configuring the discovered available resources of the computing environment according to the capabilities defined in the specification and by populating the computing environment with artifacts for the computing platform defined in the specification, wherein the virtual appliance as created appears identical to the caller regardless of the type of the computing environment.
2. The system of claim 1 , wherein the appliance abstraction engine is to modify the virtual appliance according to a modification request from the computing platform that is executing on the virtual appliance.
3. The system of claim 1 , wherein the computing environment is physical infrastructure, and the appliance abstraction engine is to discover available resources of the computing environment by message gathering on a management network of the computing environment, including gathering messages based on server power on events, wherein the discovered available resources are described at hardware and firmware levels.
4. The system of claim 1 , wherein the computing environment is virtual infrastructure, and the appliance abstraction engine is to discover available resources of the computing environment by interrogating a virtual machine controller.
5. The system of claim 1 , wherein the computing environment is cloud infrastructure, and the appliance abstraction engine is to discover available resources of the computing environment by querying cloud application programming interfaces of the computing environment to determine a deployment quota.
6. The system of claim 1 , wherein at least one of the capabilities defined in the specification relate to network fabric initialization parameters.
7. The system of claim 1 , wherein at least one of the capabilities defined in the specification relate to minimum firmware levels.
8. The system of claim 1 , wherein at least one of the capabilities defined in the specification relate to storage initialization parameters.
9. The system of claim 8 , wherein the storage initialization parameters include high availability parameters.
10. The system of claim 1 , wherein the computing platform is a cluster management platform, a container management platform, or a storage management platform.
11. A method comprising: exposing, by a processor-based appliance abstraction engine deployed to a computing environment, a programming interface for accessing undifferentiated resources of the computing environment irrespective of and without knowledge of a type of the computing environment; receiving, by the appliance abstraction engine, an indication of the type of computing environment upon initialization of the appliance abstraction engine; receiving, by the appliance abstraction engine via the programming interface, an initial request from a caller for undifferentiated resources of the computing environment as a virtual appliance, the initial request not including any knowledge of the type of computing environment; receiving, by the appliance abstraction engine directly, a specification that defines capabilities for the virtual appliance and defines a platform to be executed on the virtual appliance; determining, by the appliance abstraction engine, the type of the computing environment, wherein the type includes physical, virtual, or cloud infrastructure types; discovering, by the appliance abstraction engine, available resources of the computing environment using a discovery tool selected from a plurality of discovery tools based on the determined type of the computing environment, wherein the plurality of discovery tools are included in the appliance abstraction engine and are to discover available resources of physical, virtual, and cloud infrastructure types of computing environment, and wherein physical infrastructure type includes bare metal servers, virtual infrastructure type includes a hypervisor executing on physical infrastructure, and cloud infrastructure type includes a public cloud service; and establishing, by the appliance abstraction engine and in response to the initial request, the virtual appliance by configuring the computing environment according to the capabilities defined in the specification using the available resources and by populating the computing environment with artifacts associated with the platform defined in the specification, wherein the virtual appliance as established appears identical to the caller regardless of the type of the computing environment.
12. The method of claim 11 , wherein the computing environment is physical infrastructure, and the discovering includes message gathering on a management network of the computing environment, including gathering messages based on server power on events.
13. The method of claim 11 , wherein the computing environment is virtual infrastructure, and the discovering includes interrogating a virtual machine controller of the computing environment.
14. The method of claim 11 , wherein the computing environment is cloud infrastructure, and the discovering includes querying cloud application programming interfaces of the computing environment to determine a deployment quota.
15. The method of claim 11 , wherein at least one of the capabilities defined in the specification relate to network fabric initialization parameters, and the configuring the computing environment includes initializing a network fabric of the environment according to the network fabric initialization parameters.
16. The method of claim 11 , wherein at least one of the capabilities defined in the specification relate to minimum firmware levels, and the configuring the computing environment includes determining whether the environment meets the minimum firmware levels.
17. The method of claim 11 , wherein at least one of the capabilities defined in the specification relate to storage initialization parameters.
18. The method of claim 11 , wherein the platform is a cluster management platform, a container management platform, or a storage management platform.
19. A non-transitory machine readable medium storing instructions of an appliance abstraction engine executable by a processing resource of a computing environment, the non-transitory machine readable medium comprising: instructions to receive an indication of a type of the computing environment upon initialization of the appliance abstraction engine; instructions to receive via a programming interface exposed by the appliance abstraction engine an initial request from a caller for undifferentiated resources of the computing environment as a virtual appliance, the initial request not including any knowledge of the type of computing environment; instructions to receive directly at the appliance abstraction engine a specification that defines capabilities for the virtual appliance and defines a computing platform to be executed on the virtual appliance; instructions to discover available resources of the computing environment utilizing discovery tools for discovering available resources of physical, virtual, and cloud infrastructure types, where physical infrastructure type includes bare metal servers, virtual infrastructure type includes a hypervisor executing on physical infrastructure, and cloud infrastructure type includes a public cloud service; instructions to establish, in response to the initial request, the virtual appliance by configuring the discovered available resources of the computing environment according to the capabilities defined in the specification and by populating the computing environment with artifacts for the computing platform defined in the specification, wherein the virtual appliance as established appears identical to the caller regardless of the type of the computing environment; and instructions to modify the virtual appliance according to a virtual appliance modification request from the computing platform executing on the virtual appliance.
20. The non-transitory machine readable medium of claim 19 , wherein the discovery tools include message gathering on a management network for physical infrastructure types including messages based on server power on events, interrogation of a virtual machine controller for virtual infrastructure types, and querying cloud application programming interfaces of cloud infrastructure types to determine deployment quotas.
21. The non-transitory machine readable medium of claim 19 further comprising instructions to provide updates to the artifacts to the virtual appliance.
22. The non-transitory machine readable medium of claim 19 further comprising: instructions to maintain an inventory that tracks available resources discovered by the instructions to discover and resources allocated to the virtual appliance by the instructions to establish the virtual appliance; instructions to periodically scrub the inventory to identify resources allocated to the virtual appliance that are no longer in use by the virtual appliance or the computing platform executing on the virtual appliance; and instructions to release identified resources no longer in use scrub back to the available resources tracked in the inventory.
23. The non-transitory machine readable medium of claim 19 wherein the instructions to establish the virtual appliance by configuring the discovered available resources of the computing environment includes: instructions to, if the computing environment is the physical infrastructure type, update firmware of the computing environment to a firmware baseline and initialize a network fabric or a storage protocol; instructions to, if the computing environment is the virtual infrastructure type, interface with a virtual machine controller of the computing environment to bootstrap the capabilities of the specification; and instructions to, if the computing environment is the cloud infrastructure type, using cloud APIs of the computing environment to reserve cloud resources of the computing environment and initialize private networks from the computing environment.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
December 14, 2017
November 17, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.