The Future of PaaS: What Its Evolution Means for Software Development
The cloud infrastructure of Platform as a Service (PaaS) usually is promoted as a benefit to the datacenter and sysadmin staff. But creating software in the cloud impacts how development teams work, including process changes, speed of development (especially mobile), and IT-business collaboration.
In its first iteration, Platform as a Service simply moved to the cloud (cloud PaaS) what used to take place on on-premises clients and servers, the way that early desktop publishing efforts duplicated established publishing processes without taking advantage of new capabilities (except using a lot of ugly fonts). As with desktop publishing, it didn’t take long for PaaS to embrace new ways to improve the development process; PaaS options now fundamentally change how software is written. (For an introduction to PaaS and its jargon, see Making Sense of PaaS.)
Some PaaS offerings implement model-driven development and other techniques that reduce the need for hard coding. In some cases you simply describe what you want, in a detailed way, and the PaaS basically does the rest. “I envisage that we’ll inject the business functionality into the PaaS layer,” said Richard Nicholson, CEO and founder of Paremus, at a GigaOM panel discussing The Future of Private PaaS Solutions. “The PaaS layer will assemble the business systems in response with a catalog of services that can be stood up, and all those dependencies will be dealt with via the runtime; whereas at the moment it tends to be dealt with through the operations and the dev guys.”
Where does all this ultimately lead? “If you want to really speed up [development] and make it more adaptable from a high level to low level, we should stop programming,” argued Johan den Haan, CTO of Mendix, during the GigaOM panel discussion. “We should do model-driven development to really speed up the whole lifecycle of an application.”
In fact, model-driven development helps elevate PaaS to the next level, abstracting the process of developing software in a similar way the cloud has abstracted the deployment process. Model Driven Development as an integral part of PaaS allows the business experts, not the IT department, to visually model what the application is meant to do. That model is then interpreted by the runtime environment, which creates and deploys an application —all seamlessly made available as part of a complete PaaS environment.
Clear Cut Abstraction
The cloud is made possible largely through the virtualization of the underling hardware, making it easier for providers to offer services or for internal data centers to become computing utilities. PaaS brings a similar layer of abstraction to software development. “PaaS really abstracts the virtual machine layer and it creates a software layer. Your software can just talk to that,” explains panelist Ruben Daniels, CEO of the Cloud9 IDE. “This is just the first step.” Daniels expects PaaS to evolve to include language and storage improvements that allow developers to abstract that even further.
The result is not just a new way to build apps, but new apps themselves. “The applications are going to become smarter, more modular,” said Paremus’ Nicholson. “The thing that’s going to make that really fly is the PaaS layer. I don’t really care what’s underneath it (what service provider offering), the PaaS will become the abstraction layer in the next generation run time stack.”
PaaS got a jumpstart in the market through mobile development. Mobile apps tend to be smaller and they need to be developed quickly, especially given the appetite of the mobile user who has fully adjusted to ever-changing app stores.
Mobile adoption is driving big enterprises to take the step to public PaaS. “Enterprises want to have mobile apps. Everybody wants to have mobile apps,” explained Mendix’s Johan den Haan. “It is a new thing for them, and when you are in a new space, other new things (such as PaaS) are also allowed. It’s a lot easier to sell a public PaaS to a company that needs a mobile app.” Mendix, through its support of HTML5 on the client, can quickly spit out mobile applications that run on Android, Blackberry, iPhone, iPad, and Windows.
Expect PaaS to continue its mobile rampage, making mobile corporate apps ubiquitous and plentiful and far easier to frequently update with significant new functionality.
Some PaaS offerings grew out of particular vendors’ on-premises offerings. Microsoft Windows Azure, for instance, initially targeted .NET developers. Many other PaaSes were likewise language- or framework-specific. Today, many PaaSes encompass a bevy of “foundational” frameworks and traditional programming languages. A few have taken it to another level and support new technologies that automate development so much you never even have to code.
Today, PaaS tends to support existing programming languages. Mendix’s den Haan predicts future PaaSes to come equipped with new higher level languages “to make it easy for different kinds of people to develop apps and do it faster,” he said.
The Rise of the Hybrid PaaS
There are two main types of PaaS, hosted in-house (a.k.a. private) or in the public cloud. But as PaaSs mature, it is easier to move work, data, and applications back and forth from private to cloud instances based on cost (if the provider raises prices, shift to private), whether your data center has extra capacity, to solve performance issues, and based on developers’ changing location. For instance, if more developers go off site and become teleworkers, you can shift to public cloud PaaS.
For adoption, many observers see large enterprises shying away from public services and building or buying private PaaS first, while smaller shops opt for public. Den Haan disagrees. “We actually see Fortune 100 companies in the U.S using public PaaS,” he notes. Those creating apps in Mendix can run them in-house in a Mendix private PaaS or deploy in one click to the public Mendix cloud..
Hybrid – using a mix or private clouds with the public cloud – is another option that gives businesses flexibility. Companies using private PaaS often have their development and test environments in the public PaaS, says den Haan. “They have the flexibility and the speed of public PaaS. And if it’s going into production or acceptance with production data then you move to the premises.”
Other new PaaS items to look for:
- Automated deployment takes center stage.
- Collaborative development becomes the norm.
- More specialized PaaS offerings will become available.
- Existing solutions will offer more styles of development and infrastructure options.
- More components and objects will make it easier to quickly assemble software. Increasingly, large and complex apps can be assembled rather than written.
- PaaS will drive down the cost of development through components, assembly, and reusability.
- Better standards and interoperability can end enterprise lock-in (just as storage area networks, which used to be closed and proprietary, and now generally are open).
- New native cloud PaaS architectures, languages, and environments will enable less porting to the cloud and more invention.
The Future of PaaS is (Almost) Now
The next generation of PaaS fulfills the true promise of 4GLs and object-oriented development: faster development with far less work. If you can imagine it, the PaaS will build it.
Unfortunately, much of what passes for PaaS today is simply replacing with the cloud what leading edge developers already had in-house. PaaS made current software development a bit faster and more flexible, and got rid of much of the infrastructure grunt work. That is an operational breakthrough, and valuable, but not quite a revolution.
In coming years (perhaps even months) PaaS customers will enjoy deeper and deeper levels of abstraction much the way that virtualization offers ever-deeper levels of hardware abstraction. Developers will be further and further removed from the languages and frameworks such that development is no longer just the purview of the developer. Business stakeholders will use PaaS to roll their own quality software.
“Each new evolution pushes us further and further from physical hardware and its accompanying hard constraints. Over the last decade or two, we’ve seen how helpful it has been to have a virtual machine as the underpinning of our programming environment (e.g., a Java VM, a Microsoft CLR). Even more recently, we’ve seen hardware virtualization take this a step further,” says Sandy Syx, writing on Doozer.com. “Taking the next step requires a new environment and new service abstractions about which to program. Exactly which PaaS flavor will have value, and when, will depend on your own needs.”
Next-generation PaaS will be a real revolution. It will allow legions of non-programmers, indeed non-techies, to build state-of-the-art software at high speed for true competitive advantage. Raising the bar are high level approaches to development itself, allowing business to focus on defining their software requirements logically and intuitively, and as Mendix’s den Haan sees it, “then utilizing a platform that makes all infrastructure, software components, and tools invisible, but instantly available in a simple way – like electricity comes out of the power outlet in the wall.”