A computer program product including a non-transitory computer readable storage medium having computer program code encoded thereon that when executed on a processor of a computer causes the computer to operate a storage system, the computer program product comprising:
- computer program code for providing access to a set of inventory information associated with an inventory of storage assets, the inventory information comprising information relating to:
- one or more policies, one or more hosts, one or more tiers of service, one or more storage types, one or more storage technologies, one or more sizes of storage, one or more storage protocols, one or more users, and performance history of past consumption requests
- computer program code for parsing a consumption request from a user, for consuming storage assets from the inventory of storage assets, the consumption request corresponding to a request type and comprising a size parameter defining a requested size of storage needed, a requested storage type, a requested storage protocol, and a host parameter specifying a requested host to provide storage, wherein the parsing is configured to determine additional parameters not explicitly provided in the consumption request but which can be determined based on one or more of the set of inventory information, the user, the request type, the requested storage protocol, the requested storage type, the size parameter and the host parameter, the additional parameters consisting of a data segregation parameter indicating whether or not user data must be segregated, and a storage technology parameter indicating one or more storage technologies capable of providing the requested storage protocol, wherein the user, request type, the size parameter, the host parameter, and the additional parameters together form a set of consumption parameters;
- computer program code for generating a template of requirements to apply to the inventory, wherein the template is based on the set of consumption parameters, on the past performance of consumption requests, and on predictive analytics based on the performance of past consumption requests, wherein the template is configured to determine if the consumption request can be satisfied by storage assets in the inventory;
- computer program code for applying the template to the inventory;
- computer program code for determining, based on a first analysis, whether there are storage assets in the inventory that are already deployed which match the template;
- computer program code for assigning, if the answer to the first analysis is yes, the already deployed storage assets, to correspond to matching storage assets that satisfy the consumption request;
- computer program code for determining, if the answer to the first analysis is no, based on a second analysis, whether already deployed storage assets exist and can be modified to satisfy the consumption request;
- computer program code for assigning, if the answer to the second analysis is yes, the already deployed storage assets to correspond to the matching storage assets that satisfy the consumption request;
- computer program code for determining, if the answer to both the first and second analyses is no, based on a third analysis, whether undeployed storage assets in the inventory can be deployed and configured to create the matching storage assets that satisfy the consumption request;
- computer program code for assigning, if the answer to the third analysis is yes, the undeployed storage assets to correspond to the matching storage assets that satisfy the consumption request;
- computer program code for configuring and, if necessary, deploying, the respective matching storage assets in accordance with the consumption request;
- and
- computer program code for failing the consumption request if no storage assets exist.