PaaS has enabled the software development process to shift its base from a traditionally hosted environment to an environment that is not tightly coupled to a hardware machine , a database, or any other single point of failure. Instead of setting up environments that are duplicated across development, QA , build and production which often tends to to be a time intensive, costly and error prone process, development teams can leverage an environment that is self-serve, elastic, can be auto-scaled and can sit on top of any infrastructure that is best suited for that business. I remember as a developer I had 4 or 5 machines sitting in my office set up with various environments that I needed to test the code prior to propagating it to the build machine. Now my development team at enStratus writes code on their laptops and pushes the code out to the cloud where our development environment is hosted.
With PaaS, middleware services are standardized and deployments are simplified leading to improved productivity and faster time to market. Test teams are able to rapidly test multiple configurations and operations teams are able to easily manage software upgrades. But there are several vendors in the market that provide platforms as a service offerings and this list keeps growing. How do we pick?
I did a short survey and asked folks what they thought about things to consider when evaluating a paas solution. Here are the results.
The top 5 things to consider
It is not a surprise that time to value top of mind when evaluating PaaS since that is one of the primary benefits of Paas. And when selecting a vendor one of the first things to ensure is that we do not run into the situation of “here today, gone tomorrow”. Vendor stability is important. But so is answering the questions – What can the PaaS provider do to alleviate security concerns? Has the provider built in sufficient sandboxing to secure the container and memory? Flexibility also often comes into picture when PaaS is considered. Since PaaS providers often limit the infrastructure and platform components that can be used, if the business requires developers to continually support new infrastructure choices or evaluate new platform components, choosing a vendor that provides this flexibility is important.
Note that vendor lock-in, which is often cited as a drawback of PaaS is not listed as one of the top 5 factors to consider. More on that later in the post.
What about that age old debate – Public vs Private?
In my survey, I continued on to ask folks what would be their top reasons for selecting a Public PaaS solution, vs a Private PaaS solution. Not surprisingly, the results look similar to what we have seen in the past for public vs private IaaS. The motivation to select public PaaS is faster time to value and that to select private PaaS is security.
And finally if nobody meets your needs go out and build your own PaaS.
The key question to answer – Where is my competitive advantage?
In the results for the survey question “What are the top reasons for building your own PaaS”, some responded that they would never do this. If you are a car manufacturer and have a PaaS solution that doesn’t meet all your needs, but say meets 90% of your needs, would you hire developers that will build a kick ass solution from scratch or hire developers that can piece together a solution that will work letting them concentrate on building software for the cars?
The thing to concentrate on is the activity that brings competitive advantage to your business and not spend far too much in IT on things that don’t matter. In some situations it makes sense to build your own PaaS. The most commonly cited example is Netflix who built its own development platform because there wasn’t anything out there that met their needs. But the thing to note is that Netflix also transitioned from its own infrastructure platform to Amazon because it is in the business of providing entertainment and not maintaining servers.
How about that open PaaS?
Open PaaS solutions touted by vendors usually come with the tag line “All the benefits of PaaS without the Lock-in” and cite the following reasons for why PaaS has not taken off yet
- Most PaaS providers only provide a service
- They usually require you to use their proprietary framework
- There is no-way to leverage the code you created to run apps on another cloud.
Which of these arguments really has merits? Lets examine them..
You may not want to get tied to a vendor that offers limited choices. Even if today a single service meets your needs, you may need additional services tomorrow if your business grows
You also do not want to get tied to a proprietary framework unless your business largely depends on it. Then it makes complete sense to tie your solution to this framework
Moving on to the last argument and raising some controversy… vendor lock-in isn’t evil. If a vendor meets your needs, that vendor is a better choice versus an open PaaS provider that requires compromise.
I presented this material at Interop 2012. The presentation can be found at this link: http://www.interop.com/lasvegas/2012/presentations/workshops.php