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
1. Infrastructure as a Service (IAAS)
2. Platform as a Service (PAAS)
3. 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.
About Ankur Jain
Ankur is currently working as Automation Test Manager. He has 13+ years of professional experience with 8+ years of automation testing which includes Design Automation Testing Frameworks with Selenium, Appium, Protractor, Cucumber, Rest-Assured, Katalon Studio, SOAP UI and Postman. He is an ISTQB Certified Test Manager and a Certified Scrum Master as well.
More on Ankur Jain.