Choosing the right type of platform is one of the more important decisions facing companies developing cloud computing strategies, particularly when considering Infrastructure as a Service (IaaS) and Platform as a Service (PaaS). Selecting a Software as a Service (SaaS) service provider is normally more straightforward, as the software offering is already well-defined, although some SaaS providers, like SalesForce with its Force.com platform, are offering PaaS solutions as well. In recent weeks we’ve seen some interesting developments that reflect a convergence of some key aspects of the IaaS and PaaS models.
The IaaS and PaaS difference
When it comes to IaaS and PaaS, cloud customers have to choose between flexibility and simplicity. From the perspective of IaaS, customers select flexibility by obtaining direct access to virtual machines (VMs) and by creating their own server and database instances as needed, and installing the desired middleware and OS resources. This provides a high degree of autonomy but increases complexity.
PaaS platforms conceal the underlying hardware infrastructure and customers obtain access to a pre-installed and integrated development environment, which frees the customer from having to manage the underlying hardware and middleware infrastructure. PaaS customers supposedly receive all the needed facilities to build and deliver applications and services to be deployed over the Internet.
IaaS and PaaS limitations
The general limitations of IaaS are well known, and usually apply to PaaS as well. These include various security concerns, bandwidth limitations, service availability and legal issues such as data privacy and data jurisdiction. Moreover, many feel that IaaS requires a constant babysitting of operating systems, data stores, messaging queues and application containers. And it‘s clear that most IaaS platforms require a substantial IT know-how and understanding when it comes to deploying instances and managing load-balancing, elasticity and scalability mechanism.
One of the main problems with PaaS, however, is its lock-in potential. Customers selecting a particular PaaS are more likely to lock themselves into the PaaS vendor, forcing them to use and adapt to the pre-determined development environment provided – limiting developers’ flexibility and control. Migrating to another PaaS provider with a different infrastructure architecture can then become a costly and complex undertaking.
Are IaaS and PaaS moving closer to each other?
Despite the additional complexities associated with IaaS implementation, it remains more appealing to many enterprise customers due to its inherent flexibility and maneuverability. Furthermore, several new offerings, like the AWS Elastic Beanstalk, are providing a PaaS like functionality on top of the IaaS platform, making it even more appealing for customers to select the IaaS route with enhanced functionality.
The benefits of the Elastic Beanstalk include its capabilities to automatically handle deployment details of capacity provisioning, load balancing, auto-scaling and more – which are in fact some of the primary selling points of PaaS solutions. Furthermore, in Elastic Beanstalk the development environment is based on Java and uses the Apache Tomcat software stack. With this approach, Amazon AWS is providing a much broader alternative to enterprise customers by offering automated provisioning capabilities and a development environment on top of its IaaS platform, enabling customers to control and optimize the configuration and performance of infrastructure as well as developing applications using the provided development layer.
Meanwhile, Microsoft is going in the opposite direction by offering an IaaS platform on top of its Azure PaaS platform though the Windows Azure Virtual Machine Role.
A gradual convergence of IaaS and PaaS is most likely to continue, even as development will continue on separate platform types, as cloud computing customers continue to sort out the most appropriate platform for their particular requirements.