A typical cloud service provides a pool of hosted computing resources and/or storage resources for its customers. The cloud service may offer several advantages for a given customer, as compared to the customer hosting and managing the resources, such as advantages pertaining to reducing capital costs, achieving economies of scale, creating flexibility to expand computing infrastructure and/or services as needed, increasing accessibility to resources, and so forth.
Referring to
As examples, the cloud resources 150 may include such resources as Infrastructure as a Service (IaaS) resources 154 (resources that provide hosted equipment, such as computing components, storage components and network components as a service); Platform as a Service (PaaS) resources 158 (resources that provide hosted computing platforms, such as platforms having an operating system, hardware, storage, and so forth); Software as a Service (SaaS) resources 162 (resources that provide hosted applications as a service); DataBase as a Service (DBaaS) resources 166 (resources that provide hosted database as a service); and so forth.
The cloud resources 150 may include, in accordance with example implementations, resources that provide services that are useful for the cloud services, such as resources 170, 174 and 178 pertaining to Server Automation (SA), Database Middleware Automation (DMA), Matrix Operating Environment (MOE), or Operations Orchestration (OO), respectively, as well as other infrastructure provisioning system(s) or IaaS provisioning system(s). The cloud resources 150 may include other cloud resources 182, in accordance with further example implementations.
As depicted in
As examples, the cloud service provider system 102 may be a publically accessible cloud computing system (a system for which the cloud service is accessed using the Internet, for example) that is generally publically open to all potential users; a limited access private cloud computing system, where cloud service is provided over a private network; a cloud computing system that provides a managed cloud service (e.g., a virtual private network accessible cloud service); or a hybrid cloud computing system, which may be a combination of two or more of the foregoing cloud computing systems.
In general, an authorized human administrator for a given tenant 105 may select, order and manage cloud services for the tenant 105 by communicating with the cloud services management system 120. In this manner, using a computing system, the administrator may communicate with a store front 124 of the cloud services management system 120 and in particular interact with a user interface 126 (such as a graphical user interface (GUI) 128) of the store front 124 for purposes of selecting, ordering and managing cloud services for the tenant 105.
The cloud services management system 120, in general, may strive to provide isolation among the tenants 105. In accordance with example implementations, as part of providing this isolation among tenants 105, the cloud services management system 120 undertakes measures to ensure that a given tenant 105 may not access data used by another tenant 105 or indirectly learn of data used by another tenant 105.
For example, the cloud services management system 120 may protect tenant privacy when providing a data deduplication service. In general, the data deduplication service reduces the amount of data stored in the system 102. In data deduplication, repeating, or redundant, units of data (called “chunks”) are identified, and the redundant chunks are replaced with references that point to corresponding stored, single instances of the chunks. A given tenant 105 may financially benefit from the data deduplication service, in that the reduced data storage may result in a fee reduction from the cloud service provider.
For purposes of preserving data isolation among the tenants 105, the cloud service provider may place boundaries on the data deduplication so that, in general, the deduplication service is performed across individual tenants 105 but not across multiple tenants 105 (i.e., the data deduplication for a given tenant 105 considers the data for that individual tenant 105 and not data associated with any other tenant 105). In this manner, if deduplication were to otherwise occur across tenants 105, a given tenant 105 may indirectly learn which data the tenant 105 shares in common with other tenants 105 based on the given tenant's deduplicated data.
For purposes of providing the data deduplication service, the cloud services management system 120 includes a deduplication engine 144 (part of its service delivery component 143). In accordance with example implementations, as part of the deduplication for a given tenant 105, the deduplication engine 144 identifies repeating, or redundant, chunks of data for the tenant 105 and replaces redundant chunks with reference(s) that point to stored chunks. The deduplication engine 144 may control or primarily consist of components running on the cloud resources being leased to the tenant 105, in accordance with example implementations.
As a more specific example, in accordance with example implementations, the tenants 105 may be affiliated with different business enterprises. One way for a business enterprise to take advantage of a data deduplication service that is provided by a cloud service provider while still preserving the privacy of the enterprise is for the enterprise to combine all of its “groups” (its business units, for example) into a single tenant designation, i.e., use a single tenant account for all groups. Thus, the entire business enterprise is designated as being a single tenant 105 for purposes of receiving cloud services from the cloud service provider system 102. Although the business enterprise may benefit from data deduplication from such consolidation, as reduced data storage may result in reduced cloud service fees and/or fee reductions from the cloud service provider, combining groups (business units, for example) of a given tenant 105 into the single tenant designation results in no billing separation or cost control among the tenant's groups.
A given business enterprise may alternatively designate its groups as separate tenants 105 and thus, set up separate tenant accounts for the groups with the cloud service provider. Although this arrangement may benefit the business enterprise from the standpoint of billing separation and cost control, the data shared in common among the groups is not consolidated, thereby reducing the amount of data deduplication (and reducing fee reductions due to data deduplication).
In accordance with systems and techniques that are disclosed herein, a given tenant 105 may classify at least some of its groups as being corresponding subtenants 110 of the tenant 105. In this manner, the tenant 105 may have an account, and the tenant 105 may set up separate subaccounts for its subtenants 110. The deduplication engine 144 is constructed to perform data deduplication across the subtenants 110 of a given tenant 105, as isolation of data is not a concern for subtenants 110 of the same tenant 105. In words, the deduplication engine 144, when performing deduplication for the tenant 105, considers the data for all of the subtenants 110. The ability to deduplicate data across the subtenants 110 provides a corresponding cost savings, or fee reduction, for the tenant 105; and this fee reduction may be apportioned among cloud service bills for the subtenants 110 (as further described herein), thereby creating billing separation and cost control among the tenant's groups.
For purposes of generating tenant and subtenant invoices, or bills, the cloud services management system 120 includes an accounting engine 134, which may be a service consumption component 130 of the cloud services management system 120, as depicted in
In this manner, the accounting engine 134 credits savings due to data deduplication to the tenant 105 for the purpose of the tenant's bill. The cloud service provider may provide some form of volume discount or “elite status,” due to the amount of resources the tenant 105 is consuming, and the accounting engine 134 is constructed to apply this discount or fee reduction at the tenant level because the fee reduction is based on the amount of resources consumed by the tenant 105. To allow greater cost control for the tenant 105, the accounting engine 134 is further constructed to generate bills for the subtenants 110 of the tenant 105; select and apply a rule to apportion the fee reduction due to data deduplication among the subtenants 110; and credit the apportioned fee reductions to the subtenant bills, as further disclosed herein.
Thus, referring to
From the viewpoint of the cloud service provider, providing subtenant bills is a convenience for the customer, as the cloud service provider expects to be paid the overall invoice amount for a given tenant 105, either by the tenant 105 on behalf of all of the subtenants 105 or in aggregate as a sum of payments by the subtenants 110. In other words, the sum of the subtenant bills should equal the tenant bill.
In accordance with example implementations, the accounting engine 134 charges the fees for the resource usage entirely within a given subtenant 110 (including non-duplicate storage) to that subtenant 110. Moreover, the accounting engine 134 may apportion charges for communication between two subtenants 110 equally (i.e., fifty percent to each subtenant 110). The accounting engine 134 may, per the customer's request, apply a different percentage (for particular subtenant pairs), including different percentages for the different directions. The accounting engine 134 may further distribute volume discounts proportionally, in accordance with example implementations.
Referring to
The service consumption component 130 may further include tenant/subtenant configuration data 137, which describes the cloud services for the tenants 105 and subtenants 110, rules data 140 for purposes of specifying apportionment rules for apportioning fees and fee reductions among subtenants 110 of each tenant 105; and tenant/subtenant deduplication configuration data 138, which specifies which data is to be deduplicated for a given tenant and/or subtenant 110. In addition to providing data deduplication services, the service delivery component 143 may provide other cloud for the customers of the cloud service.
Next, the accounting engine 134 makes decisions for purposes of selecting the appropriate apportionment rule, as selected by the tenant 105. Although
For the implementation that is depicted in
Referring to
Referring to
Thus, referring to
As a further example implementation, the cloud service provider may allow deduplication across tenants for the limited case in which the deduplicated data is associated with “public” files. For example, in accordance with some implementations, the cloud service provider may provide a data deduplication service for publically available Windows® operating system files, publically available application files, and so forth. A given tenant 105 may, via a selected option of its cloud service subscription, configure the deduplication engine 144 to include the tenant 105 in a public data file-based data deduplication across multiple tenants 105. Although such data deduplication across tenants 105 may reveal that public data is shared among the tenants (very unsurprising and thus not leaking of information), isolation for private data is still preserved among the tenants 105.
Thus, referring to
Referring to
The physical machine 600 may include such hardware 610 as one or more central processing units 612 (CPUs) and a memory 614 that stores machine executable instructions, application data, configuration data and so forth. The memory 614 may include volatile and non-volatile storage devices, depending on the particular implementation. In general, the memory 614 is a non-transitory memory, which may include such storage devices as semiconductor storage devices, memristors, phase change memory devices, magnetic storage devices, optical storage devices, and so forth.
The physical machine 600 may include various other hardware components, such as one or multiple network interfaces 616 and one or more of the following: mass storage drives; a display; input devices, such as a mouse and a keyboard; removable media devices; and so forth.
The machine executable instructions 650, when executed by the CPU(s) 612, cause the CPU(s) 612 to form one or more components of the cloud service management system 120, such as the deduplication engine 144 and accounting engine 134. Moreover, the machine executable instructions 650 may, when executed by the CPU(s) 612, form other software components, such as an operating system 654, device drivers, applications, and so forth.
Referring to
While the present techniques have been described with respect to a number of embodiments, it will be appreciated that numerous modifications and variations may be applicable therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the scope of the present techniques.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2014/063823 | 11/4/2014 | WO | 00 |