This content is part of the Essential Guide: Essential guide to application modernisation

Choose the right PaaS for developing cloud applications

Not all PaaS products are the same. Choosing the right type for your application development efforts depends on the cloud platform where those apps ultimately run.

Sliced one way, two platform as a service models exist for developing cloud applications: private, hosted on premises or in a private cloud; and public, hosted by a third-party provider and paid for on a subscription basis. That's only half a loaf. PaaS also can be sliced in a completely different way -- one based on linkage to cloud environments.

Examine PaaS from the linkage perspective, and two distinct models emerge, according to longtime IT and cloud consultant Judith Hurwitz. One is a PaaS that is anchored to a specific software as a service (SaaS) environment, such as Salesforce's and Heroku Enterprise. The second is a PaaS that is captive to a particular cloud operating environment, typified by Amazon Web Services' (AWS) Elastic Beanstalk. Add to that the free-for-all open PaaS offerings that are not linked to any one cloud. These include Apprenda, CloudBees, Engine Yard and others.

As confidence in the security of cloud providers has deepened, so too has reliance on PaaS for developing cloud applications. PaaS spending, though it represents only a small piece of the overall cloud environment, is growing at an astonishing pace. In a recent study, MarketsAndMarkets predicted the global PaaS market will grow to $6.94 billion in 2018, up from just $1.28 billion five years earlier -- a compound annual growth rate of 32.54%.

Anchoring a PaaS to a SaaS, the first of Hurwitz's two models, allows the vendor to "extend the brand by providing a complete, protected ecosystem," she said. "It is the easiest, fastest and most secure way for independent software vendors or corporate developers to create custom applications designed to function solely within that environment." The idea isn't new: In 2011 -- ancient by cloud standards -- Workday, a Pleasanton, Calif., maker of a cloud-based human resource and financial management applications, launched its own captive PaaS under the name Workday Integration Cloud Platform.

In the second model, PaaS offerings are tightly coupled to an overall cloud operating environment, rather than a specific application service. "If you plan to write applications to run only on AWS or Microsoft Azure or IBM Bluemix, their PaaS offerings would be a logical choice," she said. If, for example, an organization has significant expertise in, or a large application portfolio that leverages the .NET framework, choosing Microsoft's Azure development and deployment ecosystem would be a natural choice, she said.

This PaaS landscape is poised for big changes, according to Hurwitz. "While we still see PaaS solutions tied to a specific platform, we're now seeing Pivotal's open source Cloud Foundry gaining traction as a standard way to implement PaaS," she said. EMC's VMware unit launched Cloud Foundry in 2011. Two years later, EMC spun off those assets as Pivotal Software.

The key factor in choosing the right PaaS type for developing cloud applications is understanding the project at hand, said Dave McCrory, CTO at Basho Technologies, maker of the Riak open source database. No one PaaS type fits all circumstances, and that may necessitate keeping several in a developer's toolkit simultaneously.

"There are a large number of distinct PaaS types, because application development scenarios differ," McCrory said. Concurring with Hurwitz, he said one is the SaaS style, typified in the way that Force is tied to Salesforce. Heroku, he said, is different in that, "you upload everything you want to run, and put the apps online. It isn't bound to Salesforce as tightly as Force."

McCory said other PaaS offerings allow for developing cloud applications that are more tightly coupled with infrastructure, citing Mesosphere as an example. "This is a PaaS-style service that's closer to the network physical layer."

A recent addition to the cloud computing scene is AWS Lambda, which describes itself as a "brand new way to build and run applications in the cloud." Though not a classic PaaS, it is based on the idea of writing tiny snippets of code that connect other small code modules together, McCrory said. "You're not creating a giant program; instead, you're creating a little series of widgets." Like other PaaS models, the aim is speedy development and simplified maintenance, McCrory said.

The trend is having an integrated workflow from beginning to end, from a cloud-based IDE where you code it, to a source code repository like GitHub, to automated test and deploy.
Dave McCroryCTO at Basho Technologies

Regardless of which PaaS type is chosen to help developers speed development and deployment, McCrory said it is important to remain aware that PaaS is just one component within an overall development environment. "The trend," he said, "is having an integrated workflow from beginning to end, from a cloud-based IDE where you code it, to a source code repository like GitHub, to automated test and deploy."

For developers, shifting to a PaaS model ultimately is about speeding both development and updating of applications once they are in production, McCrory said. "The advantage is that you do away with huge, monolithic upgrades in favor of small, incremental changes."

Systems can run problem-free for months, only to come crashing down in the wake of a software change, whether large or small. Already in January 2016, Twitter was brought down nearly worldwide, a six-hour outage the company blamed on an "internal code change." A code rollback eliminated the immediate problem. "When you have problems following an update, with a PaaS model, you can easily roll back and examine the incremental change that was responsible," McCrory said. "It's far superior to the alternative of a six-month upgrade cycle in which thousands of changes might be made, and you could be down for days while you search for the offending code."

Though the concept of PaaS was slow to catch on, Hurwitz said, due to performance and security concerns, the concept is now universally accepted. "From individual developers working alone to small departments to large enterprises, PaaS may be an inevitability for developing cloud applications," she said. "You can get up and running almost instantly, test existing code or write new code in the language of your choice. As a development methodology, PaaS is here to stay."

Next Steps

An in-depth look at private PaaS offerings

2016 application development trends

The difference between iPaaS and SaaS integration vendors

New cloud platform options for IoT

Dig Deeper on PaaS and other cloud development platforms