Cloud computing or simply “Cloud” is a term that is used in almost all “techy” conversations but what it actually means? First of all it means that the physical servers, solid state drives etc are at a remote location, a data center, and you have access to the application or the files that you want over the Internet.
There are three different acronyms for Cloud Computing, the 3 faces,
- SaaS: Software as a service
- IaaS: Infrastructure as a service
- PaaS: Platform as a service
SaaS applications are run from your browser. Usually you do not have to install something to run them. Email services like Yahoo or Gmail are SaaS applications. Google search is a SaaS application. Using these services you do not care on what type of servers are run, who makes the OS (operation system) updates, who writes the code, where your data is stored, how the vendor load balances the traffic to the application. You only care on the availability of the service and the security of your data.
IaaS gives companies or individuals the opportunity to move their computers or servers on the cloud. Why you may choose to do that? Because of cost benefits, space benefits, stuff benefits, scale benefits etc.Infrastructure means that the provider of the service (Amazon, Google, Rackspace and many others) provides the tools to create a virtualization platform with storage and networking services. To give you an example, assume that you have two servers running your applications and sharing files / information at you premisses . When you decide to move them to the cloud you have the ability to create two virtual servers on a stronger physical machine. You can do it on your premisses too, but by putting them on the Cloud gives you more advantages like you will stop worrying about hardware issues, bandwidth, network infrastructure and scalability issues.
PaaS is a great way to create distributed applications that can have 99.999% availability. To leverage the benefits of a PaaS you have to architect your solution to take advantages of the platform offerings in queues, blobs, storage and other areas. Why to choose PaaS to develop your application? You have numerous benefits such as scalability, reliability, no OS administration time and costs and many other advantages. I will discuss in another blog post how to architect such solutions.
You have to remember that by just putting your application on a cloud server you do not transform them to a PaaS application or to a SaaS application. In almost all the cases you will need to rewrite parts of your application.
Which of the 3 faces of Cloud computing is suitable for you?