Iaas, Paas, Saas are the major three major categories of cloud services.
IaaS (Infrastructure as a Service): Using Iaas, you can create your own virtual machines or storage, firewalls, load balancers, IP addresses, network, OS, etc. Iaas is an instant computing infrastructure available for you to use by paying for what you use. It aims to give you complete control over the hardware that runs your application (IT infrastructure servers and virtual machines (VMs), storage, networks, and operating systems). Instead of buying hardware, with IaaS, you rent it. It’s an instant computing infrastructure, provisioned and managed over the internet.
Examples: Amazon EC2, Windows Azure, Rackspace, Google Compute Engine.
When using IaaS, ensuring that a service is up and running is a shared responsibility: the cloud provider is responsible for ensuring the cloud infrastructure is functioning correctly; the cloud customer is responsible for ensuring the service they are using is configured correctly, is up to date, and is available to their customers. This is referred to as the shared responsibility model.
PaaS (Platform as a Service): provides an environment to build, test and deploy software applications. This includes OS, Programming language execution environment, database, web server, etc. You don’t have to maintain OS or any system updates.
Examples: AWS Elastic Beanstalk, Windows Azure, Heroku, Force.com, Google App Engine, Apache Stratos.
SaaS (Software as a Service): In the SaaS model, you will directly get the application from the vendor. You don’t even have to install the OS or the application and maintain it. You just have to pay and use it through some client.
Examples: Google Apps, Microsoft Office 365.
Let’s consider an example of creating an application that stores data in a database.
With Iaas, you have to create the VM to install and configure the application, configure the network, create another VM for the database (or get a paas database from azure) etc. Now, you are ready to access the application.
With Paas, you will get the VM with OS for the application, network and a database server as well. You just have to work on configuring the application.
With Saas, application is completely configured and is directly available to you. You have to use and pay.
List of resources that you manage and your service provider manages in cloud:
- IaaS requires the most user management of all the cloud services. The user is responsible for managing the operating systems, data, and applications.
- PaaS requires less user management. The cloud provider manages the operating systems, and the user is responsible for the applications and data they run and store.
- SaaS requires the least amount of management. The cloud provider is responsible for managing everything, and the end user just uses the software.
Cost and Ownership
|Upfront costs||There are no upfront costs. Users pay only for what they consume.||There are no upfront costs. Users pay only for what they consume.||Users have no upfront costs; they pay a subscription, typically on a monthly or annual basis.|
|User ownership||The user is responsible for the purchase, installation, configuration, and management of their own software, operating systems, middleware, and applications.||The user is responsible for the development of their own applications. However, they are not responsible for managing the server or infrastructure. This allows the user to focus on the application or workload they want to run.||Users just use the application software; they are not responsible for any maintenance or management of that software.|
|Cloud provider ownership||The cloud provider is responsible for ensuring that the underlying cloud infrastructure (such as virtual machines, storage, and networking) is available for the user.||The cloud provider is responsible for operating system management, network, and service configuration. Cloud providers are typically responsible for everything apart from the application that a user wants to run. They provide a complete managed platform on which to run the application.||The cloud provider is responsible for the provision, management, and maintenance of the application software|