Before we learn how to do scalable data processing in the cloud,
let's first try to understand what cloud computing really is.
So, the objective of this unit is to understand the basic concept of cloud computing.
So, what exactly is cloud?
If you asked this from different person, you may get different answers.
Do we have a official definition of cloud computing?
And the definition here is probably as official as you can get.
This definition is provided by the National Institute of Standards and Technology.
And this definition is actually quite long.
So, let's just try to read it and I'll help you understand it,
I'll help you dissected later.
So, what this definition says is,
cloud computing is a model for enabling ubiquitous, convenient,
on-demand network access to a shared pool of
configurable computing resources that can be rapidly
provisioned and released with minimal management effort or service provider interaction.
So, from this really long definition,
we can already see a few things.
First of all, cloud computing is a computing model and
this model will allow the users of cloud computing
to have access to computing resources.
And these resources, they are from a shared pool of
resources and this kind of access is down via network,
via ubiquitous, convenient, on-demand network access to this shared pool of resources.
And moreover, these resources can be rapidly provisioned and released
with minimal management effort and the service provider interaction.
So, at this stage just try to understand that cloud computing is a computing model
that will allow users to access a shared pool of resources across the network,
pretty much from everywhere and the resource can be rapidly provisioned
and released without involving a lot of human effort.
So, now let's just try to dissect this definition.
To understand this definition,
we can start with the key essential characteristics of cloud computing.
And the first one is On-Demand Self-Service.
So, what On-Demand Self-Service means is that a consumer
can unilaterally provision computing capabilities.
And these capabilities include server-time,
network storage and any other kind of resource that
a consumer needs to run his or her jobs in the cloud.
And these capabilities can be provisioned as needed
automatically without having to require human interaction with the service provider.
So, that's what the unilaterally really means here is that the user
can request resources and release resources,
by himself or herself without having to involve the service provider really.
And the capabilities again can
include any kind of resources that the user may need to run his or her job.
So, that's basically what On-Demand Self-Service mean.
That's the first essential characteristic of cloud computing.
Now, the next one is Broad network access.
And this is a fundamental characteristic,
one of the neighboring technology of cloud computing that the resources,
the capabilities from the cloud computing are
provided through the network and this network is ubiquitous.
So, as long as you have network access,
then you should be able to use it,
to be able to access the capabilities that are available in the cloud.
And in order to enable the ubiquitous access to their B2B some kind of
standard mechanism so that no matter what kind of environment the users have,
the user can use the same mechanisms to access the capabilities available in the cloud.
And later on, when we study some concrete examples of cloud computing,
you can see that one of these standard mechanisms is web services.
I just give this as one example.
And these standard mechanisms will allow users to access
cloud resources from whatever kind of environment that the user has.
And this environment, the user environment can be either a thick client platform.
That's the kind of laptops,
workstations that we are familiar with or it can
be a thin platform such as the smartphones and
tablets which are becoming more and more widely used than personal computers.
So, the phones and tablets they're called thin clients
because we have a much thinner software stack in those kind of
devices and the traditional laptops and
workstations they're considered as thick platforms
because their software stacks are much thicker.
So, to summarize, broad network access means that
the users will be able to use some standard mechanisms
to access the cloud resources across the network
no matter what kind of thin client or thick client they are using.
This is second essential characteristic of cloud computing.
Now, the next one is Resource Pooling.
This is a very important one.
This is in mainly from the user's provider perspective.
It says that the providers computing resources are pulled together to
service the consumer, the cloud users.
And another way to- a more formal term for this resource pooling,
we use resource consolidation.