There are many different ways to deploy a cloud instance.
One way is to use an internal cloud.
This means that you are creating resources
on your own internal network that
will be used for these application deployments.
Building your own cloud means that you'll need somewhere
to put all of this equipment, so you'll
need to build out your own data center,
you'll need to have all of your own racks,
and that's where you will install
all of the equipment for your internal cloud.
Although there is a cost associated
with acquiring all this equipment to begin with,
this also means that you do not have to pay
anything additional as you go.
Since there's no third party that's
going to bill you for usage on this cloud,
you can use as much or as little of this internal cloud
as you would like, and it will cost you
exactly the same amount of money.
If you're using an external cloud,
then you're using time that might
be on an Amazon, a Microsoft, or some other third-party cloud
provider systems.
This means that you're sharing resources
that are available on this very large public cloud,
and most of this is usually stored in the cloud providers'
data centers, usually multiple data centers around the world.
The cost for this external cloud can vary based on the provider.
They may require a large upfront cost,
or they may bill you based on how much of the platform
you're using, and you would simply pay as you go.
This idea of pay-as-you-go or paying for only the services
that you're using are sometimes referred to as metered cloud
services.
There might be costs for uploading a file
or downloading a file, or maybe simply storing the files
on their platform have an ongoing cost
associated with that.
This usually means there is a low entry cost,
so anyone can take advantage of this platform
because you don't have to pay for anything until you use it.
And then you can decide just how much of this platform
you'd like to use to match the amount of money you
might have in your budget.
Some platforms like to give you a fixed cost for everything
that you might be using.
For example, you might pay for the ability
to upload or download files, and it is a fixed cost every month.
This means for the entire month, you can transfer as much data
as you would like and still pay that same fixed cost.
So if you use platforms like Dropbox or Google Drive,
you're paying a flat fee every month,
meaning that this is a non-metered cloud service.
One of the advantages of having a cloud-based application
instance is that you're able to create more instances
as the load increases and decrease
the number of instances as the load decreases.
Often, this building out of additional capacity
or removing any excess capacity is all
seamless to the end user.
They have no idea that you're making these changes
behind the scenes.
We refer to this flexibility as "rapid elasticity."
The cloud gives us a way to instantly create
a much larger capacity all by using
these built-in technologies that are
in a cloud-based environment.
Cloud-based platforms also tend to be highly available.
That means there is redundancy built
into the cloud-based platform, so that if they lose power,
they lose a server, or something happens
with the infrastructure, there's always a way to keep everything
up and running, because they've already created
a redundant environment.
If they lose power, there might be a generator
to keep the center running.
If there is a problem with the network,
there may be multiple network lines coming into the building.
There are many ways to provide this type of redundancy,
and every cloud provider has a different level of redundancy
that they might offer.
This high availability is an important advantage,
especially if you have an application that should always
be available to your end users.
If you've deployed an application instance to a cloud
provider that's in a data center in one country
and then you deploy another application instance
to a cloud provider that's in a different country,
then you need some way to make sure that all of this data
remains in sync.
Many cloud providers have different methods
for file synchronization so that you
can deploy many different instances
wherever it might be in the world, but all of that
data is synchronized between all of those different data
centers.
The cloud isn't just used for application instances.
You might want to have your entire Windows
desktop running in the cloud.
You can do that by using Desktop as a Service.
With Desktop as a Service, your Windows
is running in the cloud, and you can access that Windows desktop
from any of your computing devices.
So you might have a tablet, a phone, or some other type
of computer that allows you to gain access
to your desktop that's running in the cloud.
You'll sometimes see this referred to as Desktop
as a Service, or DaaS.
The applications that are running
in this cloud-based service are running as a Virtual Desktop
Infrastructure, or VDI.
This means all you really need is a mouse, a keyboard,
and a screen and you will have access to your desktop
from anywhere in the world.
Most of what we will see on the tablet
that we're using to access this Windows desktop
is a screen share.
You're effectively getting a remote desktop view
of that Windows environment.
That means that the network connection
will be incredibly important if you're
using Desktop as a Service, because everything is happening
across the network.
Fortunately, this uses remote desktop technology
to send a minimal amount of information
between the client and the desktop,
but you still need that network connection
in order to take advantage of Desktop as a Service.
Here's Desktop as a Service running on Amazon.
Amazon's service is called Workspaces,
and I clicked a few buttons and created a Windows workspace all
by using Desktop as a Service.
This now to me looks like I'm running on a Windows platform,
but all of this is actually running on the Amazon cloud.