A few days ago I talked about the merits of Platform as a Service (PaaS) to help bridge the Dev and Ops divide. However, PaaS adoption in Enterprise IT remains slow and faces several challenges – some perceived, some real.
Of perceived challenges, the most relevant is the one about security. A banking, insurance or health care IT does not allow hosting (and even developing) of applications in the Public Cloud – which is what the PaaS vendors offer as their primary service.
As a response, a number of these vendors have launched “Private” PaaS – where they offer their technology to enterprises and allow them to host it in their Private Cloud (read – infrastructure within IT’s firewall).
However, from those of us who have worked in Enterprise IT or are intimately connected with it, several challenges, including complexity of deployment, support for thousands of existing apps and problem of fragmented technology still remain. Lets take a look at each of these quickly and discuss alternatives or strategies to adopt the right Cloud for IT.
Complexity of Deployment
Using PaaS is quite simple but if you take the bits and deploy it on your own, the process becomes quite complex. You still have to download all the components, like a web server, app server, messaging service, database that the PaaS would use and wire it together using the PaaS core that would manage the underlying infrastructure for you. The process could be time consuming and difficult to manage. However, once you have invested time and resources on the initial setup, management is quite easy (unless you find bugs in the PaaS management components).
Support for Existing Apps
This is one of the thorniest issue that no PaaS provider is willing to talk about. IT organizations have thousands of applications and over 80% of dev time is spent fixing issues with these apps. Of the remaining 20%, most of the time is spent extending these apps and hardly 2-3% is dedicated to developing brand new apps from the scratch. That basically means that all the effort you’d put into PaaS would benefit only 2-3% of what you do. Is the investment really worth it?
Unless you are writing a web app using Ruby (Rails), Java (Spring, Scala) etc., PaaS is not very useful for you. There’s limited support for J2EE and .NET. App servers like Weblogic and Websphere are also not handled gracefully leaving you with a very narrow definition of what exactly is a “Platform”.
First alternative is what the PaaS vendors have been talking about. Adopt PaaS as is for the new web apps being built using modern frameworks like Scala and RoR.
If however, you’d still like to consider private PaaS, my suggestion is to wait. PaaS solutions are still maturing and while they do simplify management of app stack, they could be a hassle to deploy and upgrade and may not be worth the effort and cost at this time.
If you’d like to play with PaaS for some new, experimental development, I think there’s a better option. Adopt a more flexible IaaS option. AWS by itself has added a number of PaaS like features under its “Elastic Beanstalk” service. With support for Java and .NET apps and auto-scaling features, I don’t think it is too much of a stretch to call it a PaaS. The most beautiful part of AWS EB service is it allows you to control how much or how little control you want over the app stack and where you want it to be available.
Mind you, you are still outside of your firewall but looking at the capabilities and simplicity that AWS brings to the table, I find it a much better solution for Enterprise IT.