Let's consider some important details when it comes to compute services.
From the provider's perspective,
there are three main capabilities that come under management.
Reservations for a compute is representing the minimum guaranteed that
a provider gives to a consumer. Limits are the maximum amount of
compute available, and then shares are only applied if there is a
contention for resources that occurs. There are two elements of
compute that we will consider.
The first one is actually the amount of virtual CPUs that would be consumed.
On the other side of it is the amount of memory that the consumer would
have, along with their virtual compute resources.
Let's look at it from a practical implementation perspective. Let's say that
the service provider provides a minimum guaranteed of 32 GHz for every
launched virtual machine. Then, they have a limit that says that from a
compute perspective, you would max out at 40 GHz.
The shares would kick in only if there is some kind
of contention for those resources.
So, let's say that we have a combined total of 128 GHz available in the
compute resource pool of the cloud service provider. They install the
hypervisor and pool those resources together, and then, the tenants are
allowed to launch VMs. So Tenant 1 launches their 32 GHz VM, Tenant 2,
their 32 GHz VM, and so does Tenant 3. Everything's working fine. There's
32 GHz left over for processing. But what if something went wrong? What if
there was an errant process that was occurring? Let's say that the
situation was that you didn't have 128 GHz, but you actually only had 96
GHz.
This is where shares would come into play.
Now, you're actually maxing out and the amount of
processing that is available can put the cloud service
provider in an oversubscription situation.
The preallocation of shares,
let's say VM1 gets one share, VM2, four shares, and VM3, eight
shares, means that VM1 only gets one part of the whole,
whereas VM3 gets eight parts of the whole that's left
over from a contention standpoint.
This could be something that would be applicable,
connected to an SLA based off of availability,
a confirmation of services that you can have allocated to
you in case of some type of resource contention inside of
the cloud management plane.
What is visible though to the tenant?
Well,
here's an example of if we are in AWS and we were deciding to launch a new
virtual machine. The management console will actually give the tenant the
visibility to know what the size is of the virtual CPUs and how much memory
will be allocated along with it.
Next, we're going to take a look at storage services and how that
appears to both the tenant and the cloud provider.