When decision is made that the business you are trying to create depends on cloud services you need to choose between one of the following deployment models -
- IaaS (Infrastructure as a Service)
- PaaS (Platform as a Service)
- SaaS (Software as a Service)
Simply speaking following diagram should tell you what each model represents -
Lets discuss in details about each of the cloud models -
SaaS (Software as a Service)
SaaS is the simplest cloud service model that serves the end users. All end users have to do is log into the cloud service from a client (typically a browser) and start using the service - Excellent example here would be GMail . All you do is log into your gmail account and send/receive mails.
Target Audience : End Users
Benefits : It saves you the trouble of creating and maintaining software's by yourself. I gave Gmail as an example for SaaS above. Now think you are starting your own business/company and you need to communicate via emails. If you start from scratch you will have to have your own mail server, configuration and most importantly it's maintenance . SaaS lets you delegate this to 3rd party (SaaS vendors) - Gmail in our example.
Working : SaaS generally works on Subscription model. You pay for the duration of time you are using the services. Some SaaS based companies may give out free trials for some trial period or give some basic features for free to end users to try out. For example Gmail - if you exceed the space quota available you have to pay for the extra space.
Example : Look around you - the services that you use in day to day life. Gmail, Salesforce, DropBox, Cisco WebEx, Google Forms, Google Docs, Microsoft 365 etc.
PaaS (Platform as a Service)
PaaS comes at a level lower than SaaS. PaaS allows you to deploy your code without bothering about underlying runtime ,operating system or server infrastructure. Best example here would be - Google App Engine . You choose what programming language suits your business model - Java, NodeJs, PHP ... , write code and deploy it on the PaaS provider.
Target Audience : Developers
Benefits : It saves you the trouble of owning and maintaining servers (data centers), operating systems on it, runtimes needed to build and deploy your application etc. PaaS delegates these infrastructure requirements to 3rd party (PaaS vendors) - Google App Engine in our example.Also you don't have to worry about scaling and performance.
Working : So lets say you have written a code for the service you want to provide but dont want to bear the additional cost of purchasing and maintaining infrastructure required to build and deploy your code. So you go to a PaaS vendor and deploy your code there. Again this is pay as you use model. You will have some memory space / RAM allotted to you for free. As your application scales, your customer base increases you will have to pay for that. Best thing about this is that you don't have to pay unless your requirements exceed the ones provided by the PaaS vendor.
Example :Unless you are a developer I don't expect you to know these but here are some example - Google App Engine, Cloud Foundry, Heroku, IBM Bluemix, Red Hat’s OpenShift.
IaaS (Infrastructure as a Service)
This is the lowest level of cloud services that are provided. This saves you the trouble of actually buying and maintaining server infrastructure. In this you get servers from IaaS vendor. You choose your own OS, your runtimes, your application code etc (Refer to topmost picture to visualize). Famous example of this is AWS (Amazon web services).
Target Audience : Typically IT Admins
Benefits : It saves you the overhead of maintaining hardware infrastructure. You directly get the servers from IaaS vendor.
Working : This generally works using virtual environments. IaaS vendor will have data centers each having multiple servers. Each server will have multiple virtual machines running on them and each IaaS customer will get such a virtual machine. You can then decide what OS you prefer, what runtimes you need etc. Note as a IaaS customer you will get the experience of a full server + OS stack. You will never know that it infact is virtual environments. How this actually works will of-course depend on the vendor. As far as AWS goes you can try it out for one year without any charges with specified data limits. After a year you will be charged.
To summarize each of these cloud models have their own uses, So choose according to your business model.