Cloud Computing

 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

Previous
Next Post »