Making Sense of PaaS
Platform as a Service (PaaS) is only a handful of years old, but in its short life the service platform has already grown a great deal.
In 2005, when the first Platform as a Service offering emerged, PaaS were cloud services with a base level software stack for developers. Essentially they were a new way to serve up application middleware. The offerings were few, and there wasn’t a huge amount of differentiation.
Today we have several main PaaS computing categories and a whole heap of sub-categories. The main categories include:
Infrastructure as a Service (IaaS): PaaS and IaaS are sometimes confused, as both are still relatively new and there is some overlap. Think of IaaS, PaaS, and Software as a Service (SaaS) as the three main layers of the cloud stack. IaaS is the lowest level, offering fundamental computing infrastructure, essentially replacing data center hardware with cloud services.
Foundational PaaS: PaaS is a layer above IaaS; it includes IaaS functions but adds pre-packaged tools and development environments for popular programming languages such as Java, Ruby or Python. Foundational refers to the fact that the PaaS provides effectively all the infrastructure and tools a developer would otherwise have to install and manage in-house. This makes life much easier for the individual developer, and essentially makes traditional development environments available in the cloud on a pay-per-use basis..
Much differentiation can take place on this foundation including support for specific programming languages, runtimes, IDEs, and frameworks, including commercial and open source development tools. Some styles of PaaS handle existing packaged apps, run your compiled corporate code, and support different styles of development, such as Web applications or social applications. Then there are platform-specific services such as Windows Azure, which naturally has a decidedly Microsoft bent.
While largely seen as a public cloud service, Foundational PaaS can be deployed as a private cloud as well, giving IT greater control of the development infrastructure.
Application PaaS (aPaaS): aPaaS (of which the Mendix App Platform is an example) takes PaaS to another level and is a much fuller version of PaaS wherein the entire software architecture for development, deployment and run-time, along with all necessary tools, are made invisible and provided in an abstracted way. This essentially eliminates the need for the developer to understand or manage any of the individual pieces. Development teams can now be completely focused on building functionality often increasing productivity by a factor of 4 or 5 and eliminating inherent technical, compliance, and security risks.
Think of it as the same transition going from on-premise Siebel CRM to salesforce.com. All of a sudden salespeople could just get started at the click of the mouse. Now developers and business experts have the same option when it comes to application development.
Software as a Service (SaaS): SaaS is the simplest layer to understand as it is no more than applications running in the cloud rather than on-premises. Still this can be confusing, as some SaaS vendors let businesses highly customize these apps through development and software interfaces, essentially adding PaaS to SaaS.
SaaS got a huge boost with the advent of Saleforce.com and now is becoming further entrenched with the launch of Microsoft Office 365.
Legacy PaaS: This set of offerings allows developers to move older code and applications, even COBOL, to the cloud, while at the same time opening these apps up to modernization and enhancement by letting programmers built on top of this legacy code.
But wait – there’s more cloud jargon! There is also a plethora of other terminologies and categories such as Integration PaaS, Content PaaS, database PaaS (or DBaaS), legacy PaaS, messaging PaaS, delivery PaaS, or Back-end as a service (BaaS). Most have not gotten much traction in the market yet.
There are also styles of PaaS for handling existing packaged apps, running your already compiled corporate code, and to support different styles of development such as Web apps, social apps, and the like. Then there are platform-specific services, such as the aforementioned Windows Azure.
There are various definitions of PaaS. Gartner defines PaaS as “a core layer of the cloud computing architecture” while HP views it as “an application platform for development, deployment, and management of cloud applications using any language on any stack.”
“With large and growing vendor investment in PaaS, the market is on the cusp of several years of strategic growth, leading to innovation and likely breakthroughs in technology and business use of all of cloud computing,” said Yefim Natis, vice president and distinguished analyst at Gartner. “Users and vendors of enterprise IT software solutions that are not yet engaged with PaaS must begin building expertise in PaaS or face tough challenges from competitors in the coming years.”
With PaaS there has been amazing movement. Today we have richer more reliable underlying services, fuller libraries to choose from, and far more languages supported. And now aPaaS has opened up an entirely new opportunity, far more than a mere place to run software and do basic development. This is the hot platform for innovation, allowing developers to focus on development, and not waste time installing or maintaining infrastructure and their development environment.