this is our first module
in this module will cover several basic topics.
We will start with what is cloud computing,
defining cloud computing and comparing it to utility services that were already familiar with.
Then we will outline the benefits of using the cloud.
We will talk about compliance requirements and terms, and after that we'll explain the differences between capital and operational expenditures and how those relate to the cloud.
And at the end, we'll discuss the cloud deployment models and service models and become familiar with those.
what is cloud computing.
Here's the definition from the National Institute of Standards and Technology.
According to NIST, Cloud Computing is the capability provided to consumers to provision processing, storage network and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications.
The consumer does not manage or control the underlying cloud infrastructure, but has control over operating systems, storage and deployed applications and possibly limited control of selected networking components.
There are a few important things to remember here.
The first part is that the cloud allows you to provision fundamental computing resources.
We'll talk about that a little bit later.
What are those fundamental computing resources?
The cloud also allows you to deploy and run arbitrary software.
That means you can run almost anything in the cloud.
Another more important part is that you do not manage and control the underlying cloud infrastructure.
What that means is that you have certain restrictions on what you can control and manage. And there are other things that you cannot control and manage. Since you don't have access to them.
let's compare cloud computing to something. We're all familiar with
Every one of us knows that when we press the on switch,
We never think about what's actually happening behind the scenes, how the electricity gets generated in the power plant, how the electricity then gets delivered to our houses and so on and so forth.
We're just happy and satisfied that there is electricity and that we can have the lights during the night.
If we press on the on switch again,
the lights turn off and we save on the electricity bill the same way with the cloud.
The expectation is that when you press on a switch a server or some computing power gets provisions for you somewhere in the cloud, and it doesn't matter how that happens for you.
It's just important for you that you can actually go and use this computing power to run your application or store your data. If you don't need it, you can just click a button and the server goes away.
So what are the fundamental computing resources that you can rent from the cloud?
Everything boils down to computation, which is actually the computing power that allows you to run algorithms, make calculations, run your applications,
storage, which is the ability to save data on a permanent basis.
This data can be personal data purchases. It can be images and so on.
The last fundamental computing resource is networking, which allows communications between your clients, your business clients and the cloud or the applications that you are running in the cloud.
Let's look at the computation services.
Once again. Those are services that you can use to run your application process requests. Execute some business logic that your application has in order to do something for your clients, etcetera.
One of the ways to actually rent the computational power is through the so called virtual machines.
The virtual machines are actually virtualized hardware similar to the laptop or the desktop that you're using at home.
However, instead of having real hardware, the virtual machine represents the hardware to you in a virtual manner.
Here's what happens.
The cloud Provider has the physical hardware in their data center.
On this physical hardware, they install the so called host operating system.
The host operating system is something that only the cloud provider has access to.
There is also an abstraction layer in these host operating systems, called a hyper visor.
What the hyper Visor does is it virtualized all the physical hardware resources and represents them for every customer that actually runs on this hardware.
What that means is that the virtual machine is an actual representation of some part of the hardware the physical hardware that is given to you for your use.
You have complete control on this virtual machine.
You can install an arbitrary operating system like, for example, windows or Linux box. You can install your own applications. You can install your own software. You can do almost whatever you want with this virtual machine.
There are other ways, actually, that you can rent computational power.
Two other ways are containers and server lists.
Here's how the containers work
very similar picture to the virtual machine.
You still have the physical hardware and the host operating system that is managed by the cloud vendor.
But on top of the host operating system, there is no hyper visor.
There is another abstraction layer called the container engine.
The container engine allows you to actually provide some sandbox environment for different so called containers.
Those containers are with the runtime or the environments that are running your application.
The only thing you need to do is to satisfy the dependencies for your application, and you can run it on. The container Engine
server list, on the other hand, is even less footprint.
You have the traditional stuff, which is the physical hardware and host operating system and another abstraction layer that is called server. Let's run time.
However, the server. This runtime provides everything needed for your application to run.
In this particular case, the application is not called an application, but instead a function or server list function.
And it's just a piece of code that executes your business logic.
One important thing to remember is that server lists or functions
are only paid for when they're running, which means that you're paying for the function only while your code or business logic is executing.
This is not the case with virtual machines or containers.
if your website that is running in the cloud is not used and nobody's making requests to use it and you're running your website on the virtual machine or a container,
you're still paying for the time that those virtual machines or containers are running.
While if your website or Web requests are processed by a function,
you only pay for the time that this function is executing the code.
Let's look at the different storage services that you can rent from the cloud.
The first, and maybe the most obvious one is the virtual disk, which is attached to the virtual machine.
The virtual machine has all the processing power. The virtual disk is the part where you actually save the data that gets processed.
There are file shares,
for example. If multiple virtual machines need to access the same data,
you can create a file share that is accessible by those virtual machines
very similar to the local area network or your home network, where you have a file share with all the photos that your family can access.
If you have, for example, an online shop,
you may want to store the catalog or all the orders in a relational database so you can create a service or resource in the cloud that actually is a relational database.
Also a document database.
This is the so called no SQL databases.
If you're storing images or big files binary files, you can use blob service for that.
If you're storing very simple data like, for example, key value pairs, you can use key value or table storage.
Or if you have anything that is processed in order, you can use the so called Q storage.
Let's look at the networking services that you can actually create in the cloud.
The first one is a virtual network.
A virtual network exactly simulates your local network environment so you can create a virtual network which is dedicated to you as a cloud customer.
Another thing is, if your business is global, you can use the global traffic manager in order to direct the traffic to the closest point for your customer.
Let's say you have customers in West Coast, US and East Coast US.
You can use the global traffic manager to send them to the closest point where you can process their request.
DNS, which is resolving the domain names like www dot azure dot com to I p addresses.
You can have a service for that
You can create a service to protect your virtual networks from external access, and if you need to scale your Web servers or your applications, you can use load balancers in order to do that.