This article is a beginner guide for anyone
who wanted to understand what is Cloud computing, its benefits and different
layers in cloud computing.
Before moving further, let's understand first
What is Cloud Computing?
Cloud Computing can be defined as on-demand
services that can be delivered over the internet.
This services can be broadly classified
into
รผ Infrastructure as a Service (IAAS)
รผ Platform as a Service (PAAS)
รผ Software as a Service (SAAS)
We will look into more details about these
services into the later part of this article.
Benefits of using Cloud Computing
- Flexibility: The
businesses that have fluctuating bandwidth demands need the flexibility of
Cloud Computing. If you need high bandwidth, you can scale up your cloud capacity. When you do not need high bandwidth, you can just scale down.
There is no need to be tied into an inflexible fixed capacity
infrastructure.
- Disaster Recovery: Cloud
Computing provides robust backup and recovery solutions that are hosted in the cloud. Due to this, there is no need to spend extra resources on homegrown disaster recovery. It also saves time in setting up disaster recovery.
- Automatic Software Updates: Most
of the Cloud providers give automatic software updates. This reduces the extra task of installing a new software version and always catching up
with the latest software installs.
- Low Capital Expenditure: In Cloud computing, the model is Pay as you Go. This means there is very less upfront capital expenditure. There is a variable payment that is based on usage.
- Collaboration: In a cloud environment, applications can be shared between teams. This increases collaboration and communication among team members.
- Remote Work: Cloud solutions provide the flexibility of working remotely. There is no on-site work. One can just connect from anywhere and start working.
- Security: Cloud computing solutions are more secure than regular onsite work. Data stored in local servers and computers are prone to security attacks. In Cloud Computing, there are very few loose ends. Cloud providers give a secure working environment to its users.
- Document Control: Once
the documents are stored in a common repository, it increases the visibility and transparency among companies and their clients. Since there is one shared copy, there are fewer chances of discrepancies.
- Competitive Pricing: In
Cloud computing, there are multiple players, so they keep competing among themselves and provide very good pricing. This comes out much cheaper compared to other options.
- Environment-Friendly: Cloud
computing saves precious environmental resources also. By not blocking the
resources and bandwidth.
On-demand computing in
Cloud Computing
On-demand Computing is the latest model in
enterprise systems. It is related to Cloud computing. It means IT resources can
be provided on demand by a Cloud provider.
In an enterprise system demand for computing
resources vary from time to time. In such a scenario, On-demand computing
makes sure that
servers and IT resources are provisioned to
handle the increase/decrease in demand.
A cloud provider maintains a poll of
resources. The pool of resources contains networks, servers, storage,
applications, and services. This pool can serve the varying demand for
resources and computing by various enterprise clients.
There are many concepts like- grid computing,
utility computing, autonomic computing, etc. that are similar to on-demand
computing.
This is the most popular trend in computing
models as of now.
Different layers of Cloud
computing
Three main layers of Cloud computing are as
follows:
I. Infrastructure as a Service
(IAAS): IAAS providers give low-level abstractions of physical
devices. Amazon Web Services (AWS) is an example of IAAS. AWS provides EC2 for
computing, S3 buckets for storage, etc. Mainly the resources in this layer are
hardware like memory, processor speed, network bandwidth, etc.
An IAAS provider can give physical, virtual or
both kinds of resources. These resources are used to build a cloud.
IAAS provider also handles security and backup
recovery for these services. The main resources in IAAS are servers, storage,
routers, switches, and other related hardware etc.
II. Platform as a Service
(PAAS): PAAS providers offer managed services like Rails, Django, etc.
One good example of PAAS is Google App Engineer. These are the environments in
which developers can develop sophisticated software with ease.
Developers just focus on developing software,
whereas scaling and performance are handled by PAAS providers.
A PaaS provider offers a platform on which clients
can develop, run and
manage applications without the need for
building the infrastructure.
In PAAS clients save time by not creating and
managing infrastructure environments associated with the app that they want to
develop.
III. Software as a Service (SAAS): SAAS
provider offers an actual working software application to clients. Salesforce
and Github are two good examples of SAAS. They hide the underlying details of
the software and just provide an interface to work on the system. Behind the
scenes, the version of Software can be easily changed.
The main benefit of SaaS is that a client can
add more users on the fly based on its current needs. And the client does not
need to install or maintain any
software on its premises to use this software.
Different deployment
models in Cloud computing
Cloud computing supports the following
deployment models:
I. Private Cloud: Some companies build their private cloud. A private cloud is a
fully functional platform that is owned, operated and used by only one organization.
The primary reason for the private cloud is
security. Many companies feel secure in a private cloud. The other reasons for
building a private cloud are strategic decisions or control of operations.
There is also a concept of Virtual Private Cloud
(VPC). In VPC, a private cloud is built and operated by a hosting company.
But it is exclusively used by one
organization.
II. Public Cloud: There are cloud platforms by some companies that are open for
the general public as well as big companies for use and deployment. E.g. Google
Apps, Amazon Web Services, etc.
The public cloud providers focus on layers and
applications like- cloud application, infrastructure management, etc. In this
model, resources are shared among different organizations.
III. Hybrid Cloud: The combination of public and private clouds is known as the
Hybrid cloud. This approach provides benefits of both the approaches- private
and public cloud. So it is a very robust platform.
A client gets functionalities and features of both the cloud platforms. By using a Hybrid cloud an organization can create its cloud as well as they can pass the control of its cloud to another third party.
Why companies now prefer
Cloud Computing architecture over Client-Server Architecture?
In Client-Server architecture there is one to
one communication between client and server. The server is often at an in-house
data center and the client can access the same server from anywhere. If the
client is at a remote location, the communication can have high latency.
In Cloud Computing there can be multiple
servers in the cloud. There will be a Cloud controller that directs the
requests to the right server node. In
such a scenario, clients can access cloud-based
service from any location and they can be directed to the one nearest to them.
Another reason for Cloud computing
architecture is of high availability. Since there are multiple servers behind the
cloud, even if one server is down,
another server can serve the clients
seamlessly.