Cloud Computing
Introduction about Cloud Computing
Hi there, welcome to this brand new learning video called
Cloud Computing Tutorial. I'm Samuel, a multi-platform cloud architect and
trainer working for Simply Learn. Let's dive deep into the topics we're going
to discuss here: why we needed cloud computing to begin with, what cloud
computing is, the different types of cloud computing available at the moment,
and the dominant cloud providers in the market. We will also touch on a few
topics or scenarios related to the life cycle of a cloud computing solution and
discuss how cloud computing is implemented in AWS. There is nothing like
visually seeing how things work in the cloud, so we're going to end it with a
demo. We'll talk about products and actually use products like EC2 and S3—EC2
being a virtual computer in the cloud and S3 being an object storage in the
cloud
Why Cloud computing Needed?
Let's understand why cloud computing was needed and what
problems it solved. Since then, it has taken over the market. Here on the left,
we have an owner of a business who wants to set up an IT infrastructure for his
company. He consulted Paul, an IT professional in his company, about how to set
up the infrastructure. Paul, who stays updated with industry trends and
frequently learns about emerging technologies, suggested setting up the environment
in the cloud. However, his manager was unsure about what cloud computing is and
more curious about its benefits over having an on-premises data center.
Paul started to explain the very same points I'm going to
explain to you now. Let's start with the expenditure or billing model. With
cloud computing, the billing model is pay-as-you-go, meaning we use less and
pay less, and we use more and pay less per unit. On the other hand, with
on-premises infrastructure, we pay everything upfront and incur additional
operating costs. On-premises setups require a lot of space for servers, while
in the cloud, no such space is needed.
In an on-premises setup, a dedicated team is required to
manage the hardware and software, but in the cloud, most services are managed
by the provider. Even if we need to manage them, the provider offers a console
that is much simpler than managing directly from the device. Data security is
another concern; on-premises environments often have poorer security due to the
high cost of procuring secure hardware and software. In contrast, cloud
providers invest heavily in securing data and meeting compliance standards
Data recovery in traditional data centers is often less
effective due to the high costs and effort involved in replication. The cloud
offers more robust data recovery solutions for the same cost. On-premises
environments lack the flexibility needed for modern business needs. Cloud
environments can be easily restructured, migrated, or torn down with just a few
clicks.
Scheduling updates in an on-premises environment would be a
full-time job, but with the cloud, updates happen automatically. For teams
spread across the globe, working together and sharing data is tedious
on-premises. In the cloud, numerous tools and technologies make it easy to
share data with team members or new prospective customers. Sure! Here’s the
text with extra spaces removed from the paragraphs:
I will be working with who is present across the other side
of the globe in on-premises. The data will be present inside the DC or inside
the on-premises DC, and even a valid user trying to access the data from
outside the organization is a tough task. But with a cloud, as long as someone
has internet, providing the person access is just a few mouse clicks away.
Implementation
Talk about implementation—building an on-premises DC takes
time. I was working on a project a few years back, and the goal to make a DC go
live at that time was set for two years from the date we were speaking about
it. But with the cloud, we can bring our DC in the cloud within weeks.
After all this explanation and comparisons and talking about
benefits, Paul's manager was fully enlightened and wants to have his IT
environment in the cloud. But our Paul is not done yet, and he took his manager
through another level of discussion about the cloud, just like I'm going to
take you now. So let's talk about what cloud computing is now.
Cloud computing is the ability to deliver on-demand
computing service over the internet, and that too on a pay-as-you-go basis.
Now, you might think, "Well, what does that mean?" Let me explain.
With cloud, rather than managing files on local storage devices, cloud
computing makes it possible to save them over the internet and access them from
the internet. So I can be a mobile person, moving from place to place, but I
can access the storage from the internet because it's in the internet. And if I
want to give access to somebody else, again, it's easy for me to give access to
them as long as they have internet connection available with them.
Now let's move further and talk about or get understanding
on the types of cloud computing. We can categorize the different types of cloud
computing based on two wide categories: one being a deployment model and the
other one being a service model.
Development Model
Let's talk about the deployment model first. Deployment
model is categorized into three types: the first one is public, then private,
and then hybrid cloud. In other words, public cloud, private cloud, and hybrid
cloud. It'll be easy for me to explain, and also it'll be easy for you to
understand if I walk you through this example. Consider the different types of
vehicles we use to commute from one place to another. For example, if I want to
travel, I can pick a bus, which is accessible to anyone. I get in and I pay for
the seat that I occupy, and I pay for the time that I will be traveling in it,
and I'm done. The cost is very less here. A similar kind of thing happens in
the public cloud. I pay only for the resource that I use, and I pay for how
long I use it. If I use less, I pay less. If I use more, I pay more for that
month. Simple.
On the other hand, private cloud is like buying your own car
and using it for commuting purposes. Here, I pay a huge amount upfront, and it
is all owned only by me. I do not pay for it in an hourly fashion but
completely and all upfront. The cost here is very huge. And thirdly, if I want
the best of both types, like the comfort of the own car and still don't want to
pay all upfront—otherwise, I only want to pay for the time that I use the
service—I can rent a car. Similarly, I can have it in a hybrid environment.
Meaning if I already have a DC, I can integrate it with the cloud and use both
the DCs, and that would become a hybrid environment.
Alright, so that was good, often learning. Let's summarize
the types of cloud based on deployment models. As we know now about the public
cloud, public cloud is a cloud infrastructure that's made available to the
general public over the internet, and it is owned by the cloud provider. Some
of the major players as cloud providers are AWS, Microsoft Azure, IBM's Blue Cloud,
and Sun Cloud.
Private cloud, now this cloud infrastructure is exclusively
operated by a single organization. It can be managed by organizations or third
party and may exist on premises or off-premises; it doesn't matter. But the
point here is this is exclusively operated for a single organization. Some
companies that provide private cloud are AWS and VMware.
Hybrid cloud gives the best of both public and private
clouds. For example, federal agencies opt for private clouds for storing and
developing personal data, and they use public cloud to share the non-sensitive
data with the general public or with other government departments.
Different Clouds Based on Service Model
Now let's talk about different clouds based on the service
model. If we need to categorize them broadly, we can categorize them as
Infrastructure as a Service (IaaS), Platform as a Service (PaaS), or Software
as a Service (SaaS). They are sometimes referred to as IaaS, PaaS, and SaaS.
Now at this moment, you could be like this guy thinking,
"Sam, I thought you're done categorizing the cloud. Now you're going to
talk about three more categories. Which one should I pick?
Certainly! Here’s the revised text with extra spaces removed
from the paragraphs:
Well, let me explain. If all that you want is just a VM and
you have all the expertise to install the software on top of it and make it
work, then go for IaaS. If you only want a platform or an interface to program
or upload a program and make it run, then pick PaaS. If all that you want is a
finished product hosted in the cloud and be able to access it through the
internet, then go for SaaS. Here, you get a username and password for an
application and you can begin to customize the application based on your needs.
What is IaaS in Cloud Computing?
Alright, let’s talk about IaaS in a bit more detail. IaaS
provides basic computing infrastructure based on a pay-for-what-you-use model.
Some of the big players in IaaS are AWS, Azure, and Google. Here, the users are
generally IT admins.
In PaaS, the provider gives you a platform or a runtime
environment for developing, testing, and managing applications. It’s
platform-ready—you buy the platform, upload your code, and start working on it.
It allows software developers to deploy applications without managing the
underlying infrastructure. The interesting candidates who would use PaaS are
software developers.
In SaaS, everything is managed by the vendor, be it the
hardware or the software. It’s managed by the vendor, and you pay for the
service through a pay-as-you-go subscription model. The end users here would be
the end customers themselves.
Alright, let’s put everything together on the same page and
compare and contrast the different types of service models. In this chart, it
explains the difference between the four models, starting from on-premises to
IaaS, and then PaaS and SaaS. It is self-explanatory that the resources managed
by us are huge in on-premises and a little less in IaaS, further reduced in
PaaS, and nothing to manage when it comes to SaaS.
Types of Cloud Services
Let me also explain the different types of cloud services
through an example like this. Let’s say that you have a crush on cake and
you're planning to bake one yourself. Now, let’s look at the options you can
have. You can make all the ingredients yourself—be the flour, butter, and other
ingredients—put them together, and bake the whole thing yourself using your own
oven and pan. Everything is yours, and that’s on-premises. All that you use is
owned by you, and nothing is managed by the vendor.
The other option you can have is to buy the ingredients and
mix and bake the cake yourself. This would be like IaaS. Here, the
infrastructure is managed by the provider, and we get to use it and customize
it the way we want. Here, the cloud service is shared responsibility.
The other option you still have on hand is to simply pick up
the phone and order a cake. This is a lot simpler than the rest we discussed so
far. You pick up the phone, order the cake, and pay for it when it arrives.
Simple. When it reaches home, you will have to arrange the table, garnish the
cake if needed, and then enjoy it. It’s the same way with PaaS—just get the
platform in which you would run your code, upload your code, and start running
your application. Here, you and the vendor still share the responsibility.
You still have one more option left, which is to simply go
out and dine. This is a lot simpler as it requires no effort from us at all.
You buy the fully finished and garnished cake, pay for it, and walk out. No
responsibility for making the cake. It’s the same way with SaaS. We buy the
finished product and pay for the finished application.
Different Type of Cloud Providers
Next thing, let’s talk about the different cloud providers.
Amazon Web Services (AWS) is a cloud computing service provided by Amazon. It
provides a mix of Infrastructure as a Service (IaaS), Platform as a Service
(PaaS), and Software as a Service (SaaS) offerings.
Microsoft Azure, formerly known as Windows Azure, is a cloud
computing service by Microsoft. It specializes in using cloud for building,
testing, deploying, and managing applications through the servers throughout
the global network that Microsoft manages. It also provides SaaS, PaaS, and
IaaS, and it supports lots of different programming languages, tools, and
frameworks, including both Microsoft and third-party software and systems.
IBM Cloud is a cloud computing service offered by IBM. IBM
Cloud includes IaaS, SaaS, and PaaS. The difference is it offers these services
through public, private, and hybrid cloud delivery models
VMware, on the other hand, is a subsidiary of Dell
Technologies and provides cloud computing and platform virtualization software
and services. It was the first commercially successful company to virtualize
the x86 architecture.
Google Cloud Platform is offered by Google. It’s a suite of
cloud computing services that run on the same infrastructure that Google uses
internally for its end-user products, such as Google Search and YouTube,
alongside a set of managed tools. It also provides cloud services including
computing services, data storage services, data analytics, and machine learning
services.
DigitalOcean, headquartered in New York City with data
centers worldwide, provides developers cloud services that help deploy and
scale applications that run simultaneously on multiple computers. As of January
2018, DigitalOcean was the third-largest hosting company in the world in terms
of web-facing computers.
Cloud Computing in AWS
Let's talk about cloud computing in AWS. Amazon Web Services
(AWS) is a cloud computing service provided by Amazon, and these services are
accessible over the internet. Because AWS provides Infrastructure as a Service
(IaaS) as a flagship offering, we can create and deploy any type of application
in the cloud on top of the IaaS that Amazon provides. The best part is that the
subscriptions are pay-as-you-go. You use less and pay less, and only for what
you have used. You use more, pay more, but still less per unit for the service
used. Attractive, isn't it?
Now, let’s talk about the life cycle of a cloud computing
solution. The very first thing in the life cycle of a solution or a cloud
solution is to get a proper understanding of the requirement. I didn’t say get
the requirement, but said get a proper understanding of the requirement. It is
very vital because only then will we be able to properly pick the right service
offered by the provider. Getting a sound understanding, the next thing would be
to define the hardware, meaning choose the compute servers that will provide
the right support where you can resize the compute capacity in the cloud to run
application programs. Getting a sound understanding of the requirement helps in
picking the right hardware. One size does not fit all. There are different
services and hardware for different needs you might have, like EC2 if you're
looking for IaaS, and Lambda if you're looking for serverless computing, and
ECS that provides containerized services. So there are a lot of hardware
options available—pick the right hardware that suits your requirement.
The third thing is to define the storage. Choose the
appropriate storage service where you can back up your data and a separate
storage service where you can archive your data, locally within the cloud or
from the internet, and choose the appropriate storage. There is one separately
for backup called S3 and one separately for archival called Glacier. Knowing
the difference between them really helps in picking the right service for the
right kind of need.
Define the network. Define the network that securely
delivers data, video, and applications. Define and identify the network
services properly, for example, VPC for network, Route 53 for DNS, and Direct
Connect for a private P2P line from your office to the AWS data center.
Set up the right security services—IAM for authentication
and authorization and KMS for data encryption at rest. There are a variety of
security products available. We need to pick the right one that suits our
needs. There are also various deployment, automation, and monitoring tools you
can pick from. For example, CloudWatch is for monitoring, Auto Scaling is for
being elastic, and CloudFormation defines the management process and tools. You
can have complete control of your cloud environment if you define the
management tools, which monitor your AWS resources and the custom applications
running on the AWS platform. There are a variety of deployment, automation, and
monitoring tools you can pick from, like CloudWatch for monitoring, Auto
Scaling for automation, and CloudFormation for deployment. Knowing them will
help you define the life cycle of the cloud computing solution properly.
Similarly, there are many tools for testing a process, like
CodeStar, CodeBuild, and CodePipeline. These are tools with which you can
build, test, and deploy your code quickly. Finally, once everything is set and
done, pick the analytic service for analyzing and visualizing the data using
the analytics services, where we can start querying the data instantly and get
results. If you want to visually view the happenings in your environment, you
can pick Athena, and other tools for analytics are EMR (Elastic MapReduce) and
CloudSearch.
Alright, enough of theory. Let’s have a quick look at how
two services in AWS, EC2 and S3, work together and benefit us. Here are two IT
professionals talking to each other. One says, "I have an application that
takes a lot of storage and works only on Linux systems, which I do not have at
the moment." The other one is a smart guy, and he immediately replies that
he could use S3 to store data and the drive data and use EC2 for all his
compute needs. The curious conversation builds up, and the first person wants
to know what EC2 and S3 are.
The second guy starts to explain that AWS EC2 is a web
service that provides secure and resizable compute capacity in the cloud. EC2
can also be used to launch as many virtual servers as we need. About S3, he
explains that AWS S3 is a simple storage service provided by AWS. Using Amazon
S3, we can store and retrieve any amount of data at any time on the web.
So the very first thing is to have an AWS account. Create an
AWS account and the second thing is to create an AWS S3 bucket and upload the
files there. The files that the EC2 server is going to pull from will get
stored in S3.
Let’s create an S3 bucket and call it “website-bucket.”
These names have to be unique, so let’s see if this bucket name is available.
If it says “bucket name already taken” or “already exists,” let me top it up
with “-sl” meaning “simply learn.”
Alright, so we were able to create a bucket. In that bucket,
let me upload content that will be my index file, which is going to go and sit
in my web server.
So let me also make it public and view it. Alright, so this
is the content that I have stored in my S3, and this is the content I'm going
to push to my EC2 server.
The second step is to create an AWS S3 bucket and upload
files. We're done with that. The third step is to create an EC2
instance—essentially, create a virtual machine in the cloud. Let’s go and
create it.
Alright, the third thing is to create an EC2 instance. So
let's create an EC2 instance. It’s plain and simple. I’m going to keep
everything as defaults here.
Alright, so I've launched an EC2 instance. As you see, it’s
running. I also have a public IP address here. With that, I have logged into
this EC2 instance and I'm in the folder `/var/www/html`. As you see, there is
nothing in there at the moment. This server also has Apache installed in it. As
you can see, when I browse to the IP address of the EC2 instance, it’s showing
a page which is the default Apache page.
If I had any files in this folder, they would get shown as
the web page instead of the default page. Our task is to save files in S3 and
move them to the EC2 instance. So S3 is going to act as a storage or repository
or a source code control in this example.
Alright, so let's do that. The third step is to create your
EC2 instance, which we have done. The EC2 instance has no files in it. The
fourth step is to synchronize the source code bucket with the EC2 instance.
Let’s do that.
The actual command to do that would be `aws s3 sync`, then
the name of the bucket from which we’re going to pull the code, and the folder
in which we’re going to put the code or data.
Alright, so it has downloaded something. Look at that. Now
if we go back to the test page and do a refresh, there you go—it’s showing the
page that it pulled from S3.
So here I can use S3 as the source code control bucket, and
any information that I put in there will get reflected in the EC2 instance once
I do a sync every day. That’s how I use S3 as my storage for EC2.
Finally, we were able to synchronize the S3 bucket and the
EC2 instance, and we were also able to view the results in the web browser of
the EC2 instance. The data was copied from S3 to the EC2 instance, and that we
were able to view from the web browser.
Alright, so what did we learn? We learned about what cloud
computing is, understood the basics of cloud computing, understood the types of
cloud computing based on deployment models and service models, and then we
understood how cloud computing works with AWS. We saw how AWS is a cloud
computing service provider and the benefits of using AWS over other providers.
We also looked at the life cycle of the cloud computing solution, and finally,
we did a demo on AWS EC2 and S3 and saw how EC2 is dependent on S3, or how we
can use S3 to act as storage for the EC2 instance.
Also Read - What is TypeScribe
ConversionConversion EmoticonEmoticon