When passionate software developers get to work in the morning (or in the middle of night) what do you think they look forward to doing? Is it:
A) Looking for updates to runtimes, installing them, testing to make sure they work correctly, and then calling the operations staff to get that stuff deployed everywhere; or,
B) Firing up their IDE of choice and cranking out code.
The obvious (shorter) answer to this question points to the advantage of platform as a service (PaaS) -- one that is often taken for granted. While the benefits of PaaS are many, they really boil down to developer and operational efficiencies that are offered by leveraging the best practices of experts. In an earlier blog, I noted that cloud is both a place and a thing. PaaS is a thing that becomes a place when it is hosted in a cloud (public or private). It is a place that runs applications, and it is a thing that embodies and implements the best practices (as software and operations) for running those applications.
The complexity of application development
To get the "aha!" moment you have to look at what a developer has to do to build and run a production application (cloud hosted) outside of a PaaS. It doesn't matter what the language is. The developer writes some code and hosts it on a development server, and then tests it in a cloud in a VM that contains all of the runtime libraries needed to support the application. To roll to production, a load balancer might be selected for scaling, and then some configuration and UI work might be done to pool in VMs for the application, etc. The set of VMs are then pushed up to a cloud provider and managed by tools that peer inside the VM and manage the VM from the outside. The application components inside the VM are opaque to the cloud infrastructure, so can't be managed as anything but a simple VM. As a result, every application ends up being kind of "bespoke" or custom.
When it comes time to update a runtime, maybe a language library, the developer needs to remember where that library is used (yes, there are tools to make repositories) and get the update out to the running instances after testing to make sure the update doesn't break something else in the stack. There is a lot going on here that isn't about getting software written. And every developer might do something a bit differently. The process is so complex that there are even a few "devops" groups that exist to support the development team by providing a set of strict guidelines so everyone isn't re-inventing the stack.
PaaS to the rescue
Enter PaaS. Sometimes brilliant things are simple restatements of the obvious. PaaS does all of the non-coding stuff that developers have been forced to do just to get their code running somewhere. What is making PaaS implementations so compelling regardless of language (PHP, Ruby on Rails, Java, .NET) is that they are generally built by people who are expert developers in those languages. One can see how a PaaS might have been born out of the necessity or observation by experts to just run their code the best way possible. And well, if it's good enough for the expert's code, then it's good enough for everyone else's, and it becomes a product.
The best PaaS not only does a great job of providing the most optimal deployment environment (good for the developer) but also manages the environment on behalf of the operations staff (autoscale, build, monitor, patch, alert, report). The expertly-written PaaS allows developers to simply drop their code into something like a folder, and it's off to the races. The code is built and running in the cloud in seconds. The results are compelling and are why PaaS is a hot technology right now.
Software developers have a saying, "The best line of code is the line of code I don't have to write". PaaS takes that saying to the next level by doing the same application operations: "The best config, deploy, patch is the one I don't have to do".
Now we just need to get a GDP measure of the productivity enhancement by the use of PaaS. That has to be good for 500 points on the Dow.
Frank Artale is a partner at Ignition Partners, a venture capital firm, where he specializes in cloud, core infrastructure, networking, and security investments. Follow Frank on Twitter: @frankartale.
Neither Frank nor Ignition has any financial interest in any company or product mentioned in this post.