I had a great talk earlier this week with the CEO and founder of CloudBees, Sacha Labourey. It’s probably best to take this advice with a grain of salt, because Labourey does have a vested interest in the success of cloud services. CloudBees provides platform as a service (PaaS) for Java developers. Still, Labourey is a pretty straight shooter and I think he has a good deal of insight into enterprise application development.
According to Labourey, the cloud is all about the advantages of specialization. “About 20% of enterprise development operations is custom-built stuff that requires a PhD in Puppet and Chef,” he said, “The rest is all – or can be all – standardized based on best practices.” He thinks too much of the development team’s time is spent on application development tasks that could be automated or delegated.
He said the best case scenario from a business perspective is that your organization can find a Software as a Service (SaaS) offering that does what they want it to. That’s going to be the least expensive route because you only pay for the actual work getting done – there’s no worrying about creating, maintaining, or upgrading any of the software.
But — that only works if you can find a SaaS offering that does what you want it to. SaaS offerings rarely fit actual enterprise needs. They tend to be tailored for individuals and small businesses and frequently leave zero room for customization.
PaaS is the next best thing. This lets you build and run your own custom application, but without worrying about many of the infrastructure needs. Server provisioning and maintenance are all taken care of and it’s relatively easy to get a development and testing environment ready. If the project succeeds, great – it pays for itself to keep running in a more permanent environment. If not, no problem – you just pull down that environment and start fresh on the next project.
Still, PaaS does have some limitations, Labourey admits. If your project can’t be built on the cloud platforms you find out there, you might be able to take advantage of a simpler infrastructure as a service (IaaS) offering like AWS. The advantage of going to AWS is that you don’t have internal IT operations headaches. AWS doesn’t ask questions about how necessary your resources are. If you’ve got the budget, they’ve got the resources ready for you. The disadvantage is that you don’t have internal IT operations support, so if the app goes down you might be out of luck.
And of course there are projects for which the cloud is still just not a feasible option. There are still security and compliance concerns, although those are diminishing. There are some projects that are just too central to your organization to hand it over to outside operations. So until next time remember that an app in the hand is worth two in the cloud.