DEV Community

Nirbhay Vashisht
Nirbhay Vashisht

Posted on

Fundamentals of Cloud Computing

Before we start, I want to state that this tutorial is for absolute beginners who want to get started with Cloud Computing.
(And there are going to be a lot of cloud jokes, I am sorry in advance 😂 )

The tutorial has no specific prerequisites.

After reading this tutorial you’ll be able to answer the following questions:

Alright, let's do this one last time


What is a cloud ☁️ ?

Definition by Cloudflare.com
The cloud refers to servers that are accessed over the Internet, and the software and databases that run on those servers.

In Layman's Term
It is someone else’s computer that you can rent remotely and can be accessed through the internet.

Cloud servers are located in data centres all around the world.

Cloud allows the user to access the same files and applications from almost any device from anywhere in the world, as the storage and computing takes place in data centres.

Alt Text


What is cloud computing?

  • Cloud computing refers to renting resources, like compute power or storage space, on some other company's computers.
  • You only pay for what you use.
  • The company providing these services is referred to as a cloud provider.
  • The cloud provider is responsible for the maintenance of physical hardware required to execute your work, and for keeping it up to date.
  • The cloud computing services offered tend to vary by cloud provider.

cloud computing meme


Some Cloud Computing Services ✅

The two most common services that all cloud providers offer are:

  • Compute power
  • Storage

Compute Power

There are generally three compute options:
Virtual Machines, Containers and Server-less computing.

Virtual Machines💻

When you are building a product on the cloud you can choose how much work you want to do or how much responsibility for the resources do you want.
If you want to have more control and responsibility for maintenance, you could create a virtual machine.

  • A Virtual Machine on the cloud is an emulation of a computer which is remotely accessed through your computer.
  • Each Virtual Machine includes an operating system like Linux or Windows.
  • You can then install whatever software you need to run your task.
  • The major advantage of a virtual machine is that you do not have to buy any of the hardware or install the operating system.

Containers🎁

  • Containers are very similar to Virtual Machines except they do not require an operating system.
  • The application and its dependencies are packed into a package called a “container” and then a standard runtime environment is used to execute the app.
  • Docker is a standard open-source project that is used to create, deploy, and run applications using containers.

Server-less Computing (I can't find any emoji for this)

  • Server-less computing is an approach you go for when you want the least control over the server(s).
  • It lets you run your project without creating, configuring, or maintaining a server.
  • The main idea behind server-less computing is that your application is broken down into separate functions that run when triggered by some action.
  • This type of computing is ideal for the tasks that are automated – for example using chat-bots which are triggered by a specific keyword or tasks.
Image from docs.microsoft.com

Vm v/s containers v/s server-less computing

Storage

Cloud Storage meme

Most applications need storage to read or/and write data for various purposes.
For example – storing user data, images, videos.

  • Most Cloud Providers offer such services that can take care of all your data storing needs.
  • The advantage of using cloud storage is you can scale according to your needs.
  • If you need more storage at any given time, you can pay more and expand your available storage.


BENEFITS OF CLOUD COMPUTING

One of the best things about cloud computing is that it is not an all or nothing approach.
Companies can choose to use cloud resources as much, or as
little, as necessary to fulfil their needs.



Let's learn some of the benefits of cloud computing

It is cost-effective 😍 💰

Cloud computing provides a pay-as-you-go model, which means that you only have to pay for the resources that you use. This model brings with it many benefits, including.

  • There is no upfront cost.
  • You do not need to buy hardware and infrastructure.
  • You do not need to maintain the hardware.
  • You can stop paying for resources that are no longer needed.
  • It leads to better cost prediction.

It is scalable 📈 😎

You can increase or decrease the resources and services at any given time according to your needs. You can scale your resources both vertically and horizontally according to your
need.

  • Vertical scaling, also known as “scaling up”, refers to adding resources to increase the power of an existing server. For example – adding more GPUs or adding more memory.
  • Horizontal Scaling, also known as “scaling out”, refers to adding more servers that function together as one unit.

It is reliable 💛

Cloud providers often provide services like data recovery,
disaster recovery and data replication services, as data is the most crucial information and cloud providers help to secure it.
It is achieved through data redundancy.
So, if one component fails, a backup component will take its place.
This is known as fault tolerance.

It is secure 😷 💪

  • You have physical security – The data centres are equipped with walls, cameras, security personnel, gates, and so on to protect their assets.
  • You have digital security – The cloud providers make sure that your data is secure from any potential threats and unauthorised users.

It is global 🌎 🌍 🌏

Most cloud providers have fully redundant data centres in various regions throughout the globe allowing you to replicate your services into multiple regions for redundancy and locality.

It is current 🚀

The cloud hardware is maintained and upgraded by the cloud providers and you can focus on what matters: building and deploying applications.

It is elastic〰️

Your cloud computing system can compensate for workload changes due to spike or drop-in demand by automatically adding or removing resources.

For example – Imagine your website experiences a sudden spike in traffic due to some reason. The cloud will automatically allocate more computing resources to handle increased traffic.

When the traffic is normalised the cloud will automatically de-allocate additional resources to minimise cost.
Cloud meme



MAIN SERVICE MODELS OF CLOUD COMPUTING

🌐Software-as-a-Service (SaaS)🌐

SaaS applications are the applications that are hosted on cloud servers and users access then over the internet.
SaaS is just like renting a fully furnished house: you get to use it as your own, but it is still owned by your landlord.

Example: Google Apps, Dropbox, Salesforce

🌐Platform-as-a-service (PaaS)🌐

PaaS is a kind of service in which the vendor offers you everything you need to build your application like development tools, infrastructure, operating system.
You get a complete environment to build, test and deploy your
application.

Example: Microsoft Azure, Heroku, Google App Engine

🌐Infrastructure-as-a-Service (IaaS)🌐

It is the most flexible kind of cloud service.
In this kind of service, a company rents the infrastructure and storage they need from the cloud vendor and then use that cloud infrastructure to build their application.
IaaS is like leasing land on which you can build whatever you want.

Example: Digital Ocean.

🌐Function-as-a-Service (FaaS)🌐

Function as service is also known as serverless computing.
The main idea behind serverless computing is that your
application is broken down into separate functions that run
when triggered by some action.



☁️CLOUD DEPLOYMENT MODELS☁️

⚡Private Cloud⚡

In a Private Cloud, you create a cloud environment in a data centre that is completely dedicated to your organisation. This allows simulation of public cloud to your organisation, but you are completely responsible for the maintenance of hardware and the software services you provide.

⚡Public Cloud⚡

Public cloud service is run by an external vendor. Using virtual machines, individual servers are shared by multiple organisations.

⚡Hybrid Cloud⚡

Hybrid cloud is an assortment of Public Cloud and Private Cloud. An organisation might use public cloud for one service and private cloud for some other service.


🎊 🎉 Congratulations 🎉 🎊

You have completed this tutorial

If you liked this tutorial consider supporting by Liking and Sharing this article.

Follow me on Twitter

You can also Buy Me a Coffee

If you want me to make a tutorial on any computer science concept then leave the topic down in the comments.

Any feedback is appreciated


REFERENCES

cloudflare.com
docs.microsoft.com


Top comments (24)

Collapse
 
nirbhayvashisht profile image
Nirbhay Vashisht

It has a "Pay as you go" model. We can use cloud resources as much, or as little, as necessary to fulfil our needs.
Unlike shared/dedicated hosting, there is no upfront cost. We only pay for the resources that we use.
Your cloud computing system can compensate for workload changes due to spike or drop-in demand by automatically adding or removing resources.

Collapse
 
curlmuhi profile image
Ekta Maurya

Please make a tutorial on computer networks.

Collapse
 
thisismanaswini profile image
Manaswini

Very well explained Nirbhay!!

Collapse
 
nirbhayvashisht profile image
Nirbhay Vashisht

Thank you very much for the feedback :D

Collapse
 
ashwinsharmap profile image
Ashwin Sharma P

Yet another good article Nirbhay. Everything explained to the point.

Collapse
 
nirbhayvashisht profile image
Nirbhay Vashisht

Thank you very much for the feedback Ashwin😄

Collapse
 
jaydipparikh profile image
Jaydip Parikh

Great Insight. It's interesting to discover some known terms in very easy to understand language. Thanks

Collapse
 
nirbhayvashisht profile image
Nirbhay Vashisht

Thanks you very much for the feedback Jaydip😄

Collapse
 
chuksokwuenu profile image
Chuks Okwuenu

Wow. Well explained and nice article Nirbhay

Collapse
 
nirbhayvashisht profile image
Nirbhay Vashisht

Thanks for the feedback Chuks😄

Collapse
 
cdaracena profile image
Christian Aracena

Great easy breakdown!

Collapse
 
nirbhayvashisht profile image
Nirbhay Vashisht

Thanks for the feedback :D

Collapse
 
anuradhakumari profile image
Anuradha

this is quite informative Nirbhay... thanks for this

Collapse
 
nirbhayvashisht profile image
Nirbhay Vashisht

Thanks for the feedback :D I am glad you found it helpful

Collapse
 
exploreraadi profile image
Aadi

Wow! That was alot to take in considering I am a complete newbie with this but you did a great job🔥

Collapse
 
nirbhayvashisht profile image
Nirbhay Vashisht

Thank you for the feedback! I am glad it was helpful :D

Collapse
 
vishwa1610 profile image
Vishwanath

Very nice. Detailed explanation provided. Thanks!

Some comments may only be visible to logged-in visitors. Sign in to view all comments.