What is the Cloud? PAAS, SAAS and IAAS explained
Cloud is one of the most catchy buzzword in the last decade and much has been told about it like “It solves all the problems!”, “Move on the Cloud!”, “Create your own cloud!” and many many other exclamations. Still Cloud remains an unknown concept and something really abstracted to many outside of the industry.
Why this article?
This time I decided to start this article explaining why I decided to write it. The main reason I wrote it is because each and every time I hear someone speaking about the cloud (and even technical people) they have no clue about what they’re saying. The second reason is to inform, it is easier to explain people if I can link this page. The third reason is because someone had to.
Cloud and Buzzwords
Cloud is a buzzword like SEO, Big Data or IoT. Buzzwords are words or phrases (words mostly) that have gained a huge popularity and tend to express a really big concept that needs many other concepts to be understood. Most of the IT buzzwords have deep meanings and a simple search on Google won’t take you anywhere but adrift. That’s why like any buzzword Cloud still remains what it is meant to be: a mystery.
So what is Cloud?
So plainly speaking, Cloud is an abstraction of resources. But what does that mean? It means that resources like CPU, RAM or Disk space do not need to be on your computer any more, those resources can be on the Cloud providing services.
“Wait isn’t that what servers do?”
Indeed. Servers provide services, however the way we use server changes accordingly to the purpose. Let’s make an example: web hosting. Web hosting is the service you buy in order to host your site on a server and not on your home computer. Hosting abstracts you from using complicate skills in order to set up an operating system and a web server. But what if you wanted to? VPS (Virtual Private Server) comes to help. With VPS you can set up an operating system and possibly do whatever you want (in the limit of your contract). Now imagine you needed hundreds of VPS. Well you probably would fly to the Cloud. That’s practically what the Cloud is. Cloud is a flexible model that enables users to access resources over a network. In plain text, you can buy computational power (CPU), memory (RAM) and disk space over a network.
“But where is the cloud?”
Cloud is no paranormal entity, it exists and it is physical. Clouds are usually backed by large clusters of servers. A cluster is a group of computers that can be considered as one. So Clouds are composed of many many servers working together.
The three Clouds
There are three different models (there are also subsets) of Cloud services each one with its use case and pros/cons:
- Infrastructure As A Service (IAAS): Iaas is the lowest level of cloud computing, it comprises physical resources (CPU, RAM, Networks and Disks). So if you decide to use a Iaas solution you will be responsible of installing and managing the full stack: from hardware (usually in a virtualized fashion) to applications.
- Platform As A Service (PAAS): Paas is the second level, physical resources are abstracted. What you use is a Platform that usually comprehends an operating system and many software like DBMSs and programming languages environments.
- Software As A Service (SAAS): Saas is the farther level from hardware, it abstracts the platform (Operating system + software) to provide only a service. Saas entirely depends on the service provided.
Time for the examples! The most famous Iaas solution is Amazon AWS. AWS is a proprietary public cloud in which you can buy a wide gamma of solutions including Instances (CPU+RAM) and Storage. AWS offers much more and is also a Paas, however it is over the scope of this article to explain what AWS has to offer. A honour mention to Iaas is OpenStack an open source project to create clouds. Paas solutions are still somewhat unknown compared to Iaas and Saas solutions. Notable examples are Google App Engine, Heroku and Windows Azure. As for Saas there are many examples out there: the most known include Google Docs, Gmail, Dropbox and GitHub.
Why or why not the cloud
The Cloud is a great technology however it isn’t always the best fit for every job. The first thing cloud enables you to do is to scale out easily. Scaling out or scaling horizontally means adding more computers to sustain a workload opposed to scale up/scaling vertically which means adding resources to an existing computer. The cloud usually enables (depending on the provider) you to pay what you consume. You power up an instance? You pay (usually hourly). You power it down? You stop paying. That’s great isn’t it? However developing applications for the cloud might be a challenging task. And much more difficult would be to port a legacy application to a cloud one. Of course you could run a legacy application on a Iaas/Paas however you wouldn’t be taking full advantage of cloud.
Now you know what the cloud is and what it has to offer. The main cloud providers that are out there and the three different models of cloud computing. Still there are many uncovered things in this article like Public/Private/Hybrid Clouds or different models like DBAAS or MBAAS. And… as I always like to say: feel free to expand your knowledge.