System and method for tag based resource limits or quotas in a cloud infrastructure environment
Systems and methods described herein support tag based resource limits or quotas in a cloud infrastructure environment. Cloud administrators do not generally have the ability to restrict resource usage in existing clouds. Granting a user permission to create resources allows them to create any number of resources up to a predefined account limit. Tags are associated with resources for allowing administrators to restrict a user's resource usage to the appropriate level by allowing fine-tuned cost control. A usage of resources in a tenancy associated with a resource tag corresponding to a request characteristic of a request to provision a resource is determined and compared against a plurality of tag-based quotas, wherein the request to provision the resource is dropped based on the determined usage exceeding one of the plurality of tag-based quotas.
1 . A system for tag based control of resource usage in an associated cloud infrastructure environment, the system comprising:
a computer comprising one or more microprocessors; and
a tenancy defined in the associated cloud infrastructure environment, wherein the tenancy is associated with a plurality of compartments that are organized in a nested hierarchical manner and that control access to a collection of related resources,
wherein the computer comprises a memory device storing service level limit data representative of a service level limit defined by the associated cloud infrastructure environment, wherein the service level limit restricts a total quota of resources of the associated cloud infrastructure environment available to a user across the tenancy,
wherein the memory device stores tag-based quota data representative of a plurality of tag-based quotas of resource-specific provisioning in the tenancy, for use in limiting usage of specific resources by the tenancy, wherein the tag-based quotas are applied in the system in addition to the service level limits and are inheritable by a base compartment from a sub-compartment nested under the base compartment,
wherein a request to provision a specific resource in the tenancy is received from the user, the request comprising request characteristic data representative of a request characteristic of the request and comprising user group data representative of a first user group category assigned to a user of the system requesting provisioning of the specific resource in the tenancy,
wherein the request is assigned based on the first user group category to a first compartment storing resources requested to be provisioned in the tenancy and associated with the first user group category,
wherein a usage of resources in the tenancy associated with a resource tag corresponding to the request characteristic of the request is determined and compared against the plurality of tag-based quotas of the resource-specific provisioning in the tenancy,
wherein the request to provision the specific resource in the tenancy is processed based on receiving an override request to provision the specific resource of the tenancy when the first compartment associated with the tenancy and related to the requested specific resource exceeds one of the plurality of tag-based quotas.
2 . The system according to claim 1 , wherein:
the tenancy comprises a plurality of compartments storing the resources, wherein each compartment of the plurality of compartments provides isolation of a set of the resources within the compartment relative to one or more other sets of the resources in the other compartments;
the usage of the resources in the tenancy associated with the resource tag corresponding to the request characteristic of the request is determined collectively across the plurality of compartments, and the usage determined collectively across the plurality of compartments is compared against the plurality of tag-based quotas of the tenancy; and
the request to provision the specific resource is dropped based on the usage determined collectively across the plurality of compartments exceeding one of the plurality of tag-based quotas.
3 . The system according to claim 1 , wherein:
the tag-based quota data stored in the memory device is representative of a plurality of tag-based quotas of resource provisioning in the tenancy of a corresponding plurality of resource types of the tenancy;
the request characteristic data of the request to provision the resource in the tenancy comprises resource type data representative of a first resource type of the requested resource;
a usage of resources in the tenancy associated with a resource tag corresponding to the first resource type is determined and compared against a first tag-based quota of resource provisioning in the tenancy of the first resource type; and
the request to provision the resource of the first resource type is dropped based on the determined usage of resources in the tenancy associated with the resource tag corresponding to the first resource type exceeding the first tag-based quota of the resource provisioning in the tenancy of the first resource type.
4 . The system according to claim 1 , wherein:
the tag-based quota data stored in the memory device is representative of a plurality of tag-based quotas of resource provisioning in the tenancy allocated to a corresponding plurality of user groups of the tenancy;
the request characteristic data of the request to provision the resource in the tenancy comprises user group data representative of a user group category assigned to a user of the system requesting the resource;
a usage of resources in the tenancy associated with a resource tag corresponding to the user group category is determined and compared against a first tag-based quota of resource provisioning in the tenancy allocated the user group category; and
the request to provision the specific resource is dropped based on the determined usage of resources in the tenancy associated with the resource tag corresponding to the user group category exceeding the first tag-based quota of resource provisioning in the tenancy allocated to the user group category.
5 . The system according to claim 1 , wherein:
the tag-based quota data stored in the memory device is representative of a tag-based quota of resource provisioning in the tenancy of a plurality of resource types of the tenancy allocated to a plurality of user groups of the tenancy;
the request characteristic data of the request to provision the resource in the tenancy comprises: i) resource type data representative of a first resource type of the requested resource; and ii) user group data representative of a user group category assigned to a user of the system requesting the resource;
a usage of resources in the tenancy associated with a resource tag corresponding to the first resource type provisioned to the first user group category is determined and compared against a first tag-based quota of resource provisioning in the tenancy of the first resource type allocated to the first user group category; and
the request to provision the resource is dropped based on the determined usage of resources in the tenancy associated with the resource tag corresponding to the first resource type provisioned to the first user group category exceeding the first tag-based quota of the resource provisioning in the tenancy of the first resource type allocated to the first user group category.
6 . The system according to claim 1 , wherein:
the tag-based quota data stored in the memory device is representative of a tag-based quota of resource provisioning in the tenancy of a plurality of resource types of the tenancy allocated to a plurality of user groups of the tenancy;
a first request to track resource usage of the tenancy is received, the first request comprising request characteristic data representative of a first user group category and a first resource type;
a first usage of resources in the tenancy associated with a resource tag corresponding to the first resource type provisioned by the first user group category is determined; and
resource usage tracking data is generated based on the determined first usage of the resources in the tenancy of the first resource type provisioned by the first user group.
7 . The system according to claim 1 , wherein:
resource usage overage data is generated based on the specific resource being provisioned in response to the system receiving the override request.
8 . A method for tag based control of resource usage in an associated cloud infrastructure environment, the method comprising:
providing a tenancy in the associated cloud infrastructure environment by a computer comprising one or more processors and a memory device operatively coupled with the computer, the memory device storing service level limit data representative of a service level limit defined by the associated cloud infrastructure environment, wherein the service level limit restricts a total quota of resources of the associated cloud infrastructure environment available to a user across the tenancy and tag-based quota data representative of a plurality of tag-based quotas of resource-specific provisioning in the tenancy, for use in limiting usage of specific resources by the tenancy, wherein the tag-based quotas are applied in the system in addition to the service level limits and are inheritable by a base compartment from a sub-compartment nested under the base compartment;
receiving a request to provision a specific resource in the tenancy, the request comprising request characteristic data representative of a request characteristic of the request and comprising user group data representative of a first user group category assigned to a user of the system requesting provisioning of the specific resource in the tenancy;
assigning the request based on the first user group category to a first compartment storing resources requested to be provisioned in the tenancy and associated with the first user group category;
determining by the one or more processors executing the tag based control logic a usage of resources in the tenancy associated with a resource tag corresponding to the request characteristic of the request;
comparing by the one or more processors executing the tag based control logic the determined usage against the plurality of tag-based quotas of the resource-specific provisioning in the tenancy; and
processing the request to provision the specific resource in the tenancy based on receiving an override request to provision the specific resource when the first compartment associated with the tenancy and related to the requested specific resource exceeds one of the plurality of tag-based quotas.
9 . The method according to claim 8 , wherein:
the providing the tenancy comprises providing a plurality of compartments storing the resources, wherein each compartment of the plurality of compartments provides isolation of a set of the resources within the compartment relative to one or more other sets of the resources in the other compartments;
the determining the usage comprises determining a usage of the resources in the tenancy associated with the resource tag corresponding to the request characteristic of the request collectively across the plurality of compartments;
the comparing comprises comparing the usage determined collectively across the plurality of compartments against the plurality of tag-based quotas of the tenancy; and
dropping the request to provision the resource based on the usage determined collectively across the plurality of compartments exceeding one of the plurality of tag-based quotas.
10 . The method according to claim 8 , wherein:
the storing the tag-based quota data comprises storing tag-based quota data in the memory device representative of a plurality of tag-based quotas of resource provisioning in the tenancy of a corresponding plurality of resource types of the tenancy;
the receiving the request comprises receiving a request comprising resource type data representative of a first resource type of the requested resource;
the determining comprises determining a usage of resources in the tenancy associated with a resource tag corresponding to the first resource type is determined;
the comparing comprises comparing the determined usage against a first tag-based quota of resource provisioning in the tenancy of the first resource type; and
dropping the request based on the determined usage of resources in the tenancy associated with the resource tag corresponding to the first resource type exceeding the first tag-based quota of the resource provisioning in the tenancy of the first resource type.
11 . The method according to claim 8 , wherein:
the storing the tag-based quota data comprises storing tag-based quota data in the memory device representative of a plurality of tag-based quotas of resource provisioning in the tenancy allocated to a corresponding plurality of user groups of the tenancy;
the receiving the request comprises receiving a request comprising resource type data representative of a user group category assigned to a user of the system requesting the resource;
the determining comprises determining a usage of resources in the tenancy associated with a resource tag corresponding to the user group category;
the comparing comprises comparing the determined usage against a first tag-based quota of resource provisioning in the tenancy allocated the user group category; and
dropping the request based on the determined usage of resources in the tenancy associated with the resource tag corresponding to the user group category exceeding the first tag-based quota of resource provisioning in the tenancy allocated to the user group category.
12 . The method according to claim 8 , wherein:
the storing the tag-based quota data comprises storing tag-based quota data in the memory device representative of a tag-based quota of resource provisioning in the tenancy of a plurality of resource types of the tenancy allocated to a plurality of user groups of the tenancy;
the receiving the request comprises receiving a request comprising resource type data comprising: i) resource type data representative of a first resource type of the requested resource;
and ii) user group data representative of a user group category assigned to a user of the system requesting the resource;
the determining comprises determining a usage of resources in the tenancy associated with a resource tag corresponding to the first resource type provisioned to the first user group category;
the comparing comprises comparing the determined usage against a first tag-based quota of resource provisioning in the tenancy of the first resource type allocated to the first user group category; and
dropping the request based on the determined usage of resources in the tenancy associated with the resource tag corresponding to the first resource type provisioned to the first user group category exceeding the first tag-based quota of the resource provisioning in the tenancy of the first resource type allocated to the first user group category.
13 . The method according to claim 8 , further comprising:
storing tag-based quota data in the memory device representative of a tag-based quota of resource provisioning in the tenancy of a plurality of resource types of the tenancy allocated to a plurality of user groups of the tenancy;
receiving a first request to track resource usage of the tenancy is received, the first request comprising request characteristic data representative of a first user group category and a first resource type;
determining a first usage of resources in the tenancy associated with a resource tag corresponding to the first resource type provisioned by the first user group category; and
generating resource usage tracking data based on the determined first usage of the resources in the tenancy of the first resource type provisioned by the first user group.
14 . The method according to claim 8 , further comprising:
generating resource usage overage data based on the specific resource being provisioned in response to the system receiving the override request.
15 . A non-transitory computer readable storage medium having instructions thereon for tag based control of resource usage in an associated cloud infrastructure environment, that when read and executed by a computer cause the computer to perform steps comprising:
providing a tenancy in the associated cloud infrastructure environment by a computer comprising one or more processors and a memory device operatively coupled with the computer, the memory device storing service level limit data representative of a service level limit defined by the associated cloud infrastructure environment, wherein the service level limit restricts a total quota of resources of the associated cloud infrastructure environment available to a user across the tenancy and tag-based quota data representative of a plurality of tag-based quotas of resource-specific provisioning in the tenancy, for use in limiting usage of specific resources by the tenancy, wherein the tag-based quotas are applied in the system in addition to the service level limits and are inheritable by a base compartment from a sub-compartment nested under the base compartment;
receiving a request to provision a specific resource in the tenancy, the request comprising request characteristic data representative of a request characteristic of the request and comprising user group data representative of a first user group category assigned to a user of the system requesting provisioning of the specific resource in the tenancy;
assigning the request based on the first user group category to a first compartment storing resources requested to be provisioned in the tenancy and associated with the first user group category;
determining by the one or more processors executing the tag based control logic a usage of resources in the tenancy associated with a resource tag corresponding to the request characteristic of the request;
comparing by the one or more processors executing the tag based control logic the determined usage against the plurality of tag-based quotas of the resource-specific provisioning in the tenancy; and
processing the request to provision the specific resource in the tenancy based on receiving an override request to provision the specific resource when the first compartment associated with the tenancy and related to the requested specific resource exceeds one of the plurality of tag-based quotas.
16 . The non-transitory computer readable storage medium according to claim 15 , wherein:
the providing the tenancy comprises providing a plurality of compartments storing the resources, wherein each compartment of the plurality of compartments provides isolation of a set of the resources within the compartment relative to one or more other sets of the resources in the other compartments;
the determining the usage comprises determining a usage of the resources in the tenancy associated with the resource tag corresponding to the request characteristic of the request collectively across the plurality of compartments;
the comparing comprises comparing the usage determined collectively across the plurality of compartments against the plurality of tag-based quotas of the tenancy; and
dropping the request to provision the resource based on the usage determined collectively across the plurality of compartments exceeding one of the plurality of tag-based quotas.
17 . The non-transitory computer readable storage medium according to claim 15 , wherein:
the storing the tag-based quota data comprises storing tag-based quota data in the memory device representative of a plurality of tag-based quotas of resource provisioning in the tenancy of a corresponding plurality of resource types of the tenancy;
the receiving the request comprises receiving a request comprising resource type data representative of a first resource type of the requested resource;
the determining comprises determining a usage of resources in the tenancy associated with a resource tag corresponding to the first resource type is determined;
the comparing comprises comparing the determined usage against a first tag-based quota of resource provisioning in the tenancy of the first resource type; and
dropping the request based on the determined usage of resources in the tenancy associated with the resource tag corresponding to the first resource type exceeding the first tag-based quota of the resource provisioning in the tenancy of the first resource type.
18 . The non-transitory computer readable storage medium according to claim 15 , wherein:
the storing the tag-based quota data comprises storing tag-based quota data in the memory device representative of a plurality of tag-based quotas of resource provisioning in the tenancy allocated to a corresponding plurality of user groups of the tenancy;
the receiving the request comprises receiving a request comprising resource type data representative of a user group category assigned to a user of the system requesting the resource;
the determining comprises determining a usage of resources in the tenancy associated with a resource tag corresponding to the user group category;
the comparing comprises comparing the determined usage against a first tag-based quota of resource provisioning in the tenancy allocated the user group category; and
dropping the request based on the determined usage of resources in the tenancy associated with the resource tag corresponding to the user group category exceeding the first tag-based quota of resource provisioning in the tenancy allocated to the user group category.
19 . The non-transitory computer readable storage medium according to claim 15 , wherein:
the storing the tag-based quota data comprises storing tag-based quota data in the memory device representative of a tag-based quota of resource provisioning in the tenancy of a plurality of resource types of the tenancy allocated to a plurality of user groups of the tenancy;
the receiving the request comprises receiving a request comprising resource type data comprising: i) resource type data representative of a first resource type of the requested resource; and ii) user group data representative of a user group category assigned to a user of the system requesting the resource;
the determining comprises determining a usage of resources in the tenancy associated with a resource tag corresponding to the first resource type provisioned to the first user group category;
the comparing comprises comparing the determined usage against a first tag-based quota of resource provisioning in the tenancy of the first resource type allocated to the first user group category; and
dropping the request based on the determined usage of resources in the tenancy associated with the resource tag corresponding to the first resource type provisioned to the first user group category exceeding the first tag-based quota of the resource provisioning in the tenancy of the first resource type allocated to the first user group category.
20 . The non-transitory computer readable storage medium according to claim 15 , further comprising:
storing tag-based quota data in the memory device representative of a tag-based quota of resource provisioning in the tenancy of a plurality of resource types of the tenancy allocated to a plurality of user groups of the tenancy;
receiving a first request to track resource usage of the tenancy is received, the first request comprising request characteristic data representative of a first user group category and a first resource type;
determining a first usage of resources in the tenancy associated with a resource tag corresponding to the first resource type provisioned by the first user group category; and
generating resource usage tracking data based on the determined first usage of the resources in the tenancy of the first resource type provisioned by the first user group.