Cloud Computing Models: SaaS, PaaS, IaaS
The term Cloud computing is used in very broad manner. Some people use it already for simple web-applications, others only for services that provide a complete computing infrastructure. Christofer Hoff identified three cloud-computing models discerned by the type of service delivered to customers (see first chapter of the CSA Guide for details): Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (Iaas). All models have in common that they provide ubiquitous access to data and resources, and that they offer an utility or subscription based billing model. They differ basically by the degree of control, customization flexibility, and capabilities for integration and migration.
A customer that uses a SaaS (Software as a Service) based Customer Relations Management application (e.g. Highrise by 37Signals) must fully rely on the security mechanisms put in place by the provider; he is not empowered to e.g. encrypt his data or to provide additional measures for intrusion prevention (lack of control). The customer is also bound to the feature set of the specific provider’s proprietary software. Additional features he considers important might never be implemented or not in the way the organization would like to (lack of customization flexibility). It might also be difficult for the customer to switch the provider and migrate his data securely and without major interruptions to another platform, or to integrate the CRM application with other applications that should share a part of the same data set (lack of capabilities for integration and migration).
The PaaS model (Platform as a Service) offers more flexibility and integration capabilities (at least as long as the customer doesn’t change the platform). Independent application and service providers can extend applications and implement customized features via well defined APIs provided by the platform provider (e.g. Salesforce). The same set of data is accessible for different applications. The flexibility is however limited by the capabilities of the provided APIs. While there might be more control, the customer nevertheless is not empowered to apply the same fine-grained control as in IaaS environments, e.g. to deploy more sophisticated security schemes for certain data.
IaaS (Infrastructure as a Service) provides a maximum level of control and flexibility to customers – almost the same as if they would operate their own hosting center. Customers of infrastructure services (e.g. such as Amazon EC2) can do virtually anything they want with their application services and data. They are empowered to apply the security tools of their choice, to add new resources at any time, to deploy complementary tools, or run business intelligence processes on their data. If they use their own software or open source software, they can even extend the core feature set of their applications and integrate with other parts of their service architecture.
Something in the Middle: myPaaS
Control and flexibility for the IaaS model comes at the price of additional costs for maintenance and administration. We expect new tools to emerge that will facilitate and reduce costs for operating a software service infrastructure in the cloud. Nevertheless, IaaS will always require a high level of expertise and time that not every enterprise may want to deal with – especially, small companies or companies that consider IT only a commodity.
One way to cope with those issues is to outsource the administration to a third party provider. This provider would be responsible to run the customers software infrastructure and to provide ubiquitous, secure, and high-available application level and data access for the customer. He may also – in more customized setups – be responsible for software updates and the deployment of patches – or even for professional services like integrating new functionality, deploying additional tools, or switching to new applications. Such a provider is working similarly to a SaaS provider – in the sense that he offers application software as a service – but not in a one-fits-all approach, but providing customized services for individual companies. He also operates similarly to an infrastructure provider – in the sense that he provides infrastructure related services like security, computing resource provisioning, and management – and to a platform provider – in the sense, that the customer has full access to his data. That’s why we would call such a provider a myPaaS provider.
To become myPaaS a viable business model, we need tools that allow myPaaS providers to scale their services up, to be able to easily monitor, administer, and upgrade thousands of different setups. From the perspective of a customer, such an approach combines the comfort of SaaS delivery with the flexibility of IaaS and the permanent option for customization and professional services – it’s like mass customization for application services.
What do you think – will we see myPaaS providers emerge with the growing popularity of IaaS and SaaS? Is the demand for such a type of service stronger than for solutions following the one-fits-all SaaS model? Can myPaaS become scalable enough to become a highly profitable business model?