The concept of Platform as a Service promises a deployment and runtime option where operating systems and services are managed for you, where scalability concerns are handled more or less automatically and where late-night calls about unavailable systems are a thing of the past. But how close is this to reality? In the "Java PaaS" hands-on lab at the Jfokus conference today, developers learned about the current PaaS landscape.
Håkan Jonson and Patrik Fredriksson, both developers at Citerus, presented ideas based on their experiences delivering business applications in the cloud. They provided help with how to "navigate your way through the swamp of vendor logos." The PaaS industry has moved from infancy to consolation quickly, so it's great to get advice experienced users.
Here are the guidelines they provided on what to consider when looking at PaaS providers. You should consider:
and, most importantly,
Johson told a story of a having spun up an app very quickly and having "three exciting weeks with the app running. It had deployed very quickly. We had 99% uptime!" Then they started learning the limitations of their vendor. They needed more instances than originally planned (dev, test, production), therefore got a higher bill for infrastructure (the client was not happy to learn this). When they started to tweak the JVM, it took them outside the vendor's "standard config." Security issues came up when they learned that data going between nodes was unencrypted. The physical location of the cloud instances had an effect the application's responsiveness. All of this lead to the painful realization that the vendor's support staff was a different time zone, leaving only a two hour overlap of business hours.
The last straw was when the vendor accidentally deleted the entire application, including data. It took the vendor several hours to get the app back online. This lead them to the three most important considerations:
With this much to consider, is PaaS really worth it? Why not just do IaaS? A good question, but as a developer, PaaS provides a quick way to spin up an application, automatic scaling, OS updates, and for you, the developer, it's one less thing to worry about. A few PaaS vendors even provide a free tier to get started with. As with all technologies, PaaS has advantages and disadvantages. Nikoloas Roumpoutsos was at the lab and liked it because "it's always good to have another tool in your toolbox."