Forrester’s survey and inquiry research shows that, when it comes to cloud computing choices, our enterprise customers are more interested in infrastructure-as-a-service (IaaS) than platform-as-a-service (PaaS) despite the fact that PaaS is simpler to use. Well, this line is beginning to blur thanks to new offerings from Amazon Web Services LLC and upstart Standing Cloud.
The concern about PaaS lies around lock-in, as developers and infrastructure and operations professionals fear that by writing to the PaaS layer’s services their application will lose portability (this concern has long been a middleware concern — PaaS or otherwise). As a result, IaaS platforms that let you control the deployment model down to middleware, OS and VM resource choice are more open and portable. The tradeoff though, is that developer autonomy comes with a degree of complexity. As the below figure shows, there is a direct correlation between the degree of abstraction a cloud service provides and the skill set required by the customer. If your development skills are limited to scripting, web page design and form creation, most SaaS platforms provide the right abstraction for you to be productive. If you are a true coder with skills around Java, C# or other languages, PaaS offerings let you build more complex applications and integrations without you having to manage middleware, OS or infrastructure configuration. The PaaS services take care of this. IaaS, however, requires you to know this stuff. As a result, cloud services have an inverse pyramid of potential customers. Despite the fact that IaaS is more appealing to enterprise customers, it is the hardest to use.
Figure 1: Abstraction Determines DevOps Suitability
So how do IaaS providers widen their market? Becoming a PaaS layer makes them easier, but then lock-in concerns arise. How can you maintain the control of IaaS without requiring your customer base to become proficient in traditional IT ops tasks? The answer is in providing tools that ease deployment by making best practice infrastructure choices and set up IaaS services for availability and scale for you.
This is precisely what AWS Elastic Beanstalk does for Tomcat-based applications today (more types will be supported as this offering matures). Standing Cloud provides a similar value, letting you deploy myriad open source software solutions to IaaS, but goes a step farther in letting your choose from multiple clouds.
Both are welcome improvements to the IaaS cloud computing market and achieve this stated goal of making IaaS more widely appealing but aren’t competitive approaches. Elastic Beanstalk is aimed at speeding the deployment of your application but lets you open the hood and revise AWS’ best practice choices at any time. If the customer has the skills, or involves the IT ops team, you can optimize the configuration and performance, tweak the services choices or economics of your deployment. Standing Cloud is targeting small and medium businesses and service providers for these customers who really shouldn’t (or shouldn’t want to) open the hood. They are going for almost SaaS-level simplicity.
These new offerings aren’t the only solutions that make IaaS simpler; RightScale, CloudKick and others have been doing this for a while. But these solutions has been more squarely targeted at DevOps or enterprise architect professionals — people with more deep design and infrastructure skills; the more traditional IaaS buyer.
Microsoft is attempting to blur the line between IaaS and PaaS as well. Its VM role on Windows Azure isn’t a pure IaaS play but does provide greater control over your deployment and less lock-in concern than the traditional app role on this PaaS.
As these markets continue to mature we will see further and further blurring of the lines here, which will open the market to more customers but also create confusion along the way. What’s important to focus on is the core of the offering, which doesn’t change through these efforts, and what value they deliver. Elastic Beanstalk is simpler on-ramping to IaaS. It doesn’t abstract the middleware or the cloud platform services. It just sets them up for you. Once it’s in place, you have to manage it. If you want that to be simpler, tools like RightScale and rPath still hold strong value. Don’t want to manage it or lack these skills? Consider hiring a firm with this expertise like Datapipe or CapGemini.
If you don’t want to manage the middleware or OS — you just want this to work — PaaS is more suited to your desires (as is keeping the app in-house).