Cloud computing will bring demand for elastic application platforms.
Promises that cloud computing can save money and reduce time-to-market by automatically scaling applications (either up or down) oversimplify what it takes to develop application architectures to achieve these benefits of elastic scaling. Few of today's business applications are designed for elastic scaling, and most of those few involve complex coding unfamiliar to most enterprise developers. A new generation of application platforms for elastic applications is arriving to help remove this barrier to realizing cloud's benefits. Elastic application platforms (EAPs) will reduce the art of elastic architectures to the science of a platform.
EAPs provide tools, frameworks, and services that automate many of the more complex aspects of elasticity. These include all the runtime services needed to manage elastic applications, full instrumentation for monitoring workloads and maintaining agreed-upon service levels, cloud provisioning, and, as appropriate, metering and billing systems. EAPs will make it normal for enterprise developers to deliver elastic applications — something that is decidedly not the norm today.
Forrester defines an elastic application platform as:
An application platform that automates elasticity of application transactions, services, and data, delivering high availability and performance using elastic resources.
We see organizations moving toward EAPs by extending their current web architectures, following one or more of four paths:
- Extend web architectures with elastic caching. We find widespread adoption of elastic caching platforms across the economy — not just in consumer-facing web products and properties. Application development and delivery shops that adopt elastic caching products introduce EAPs' computing-services/data-services combination into their architectures — and add a certain degree of elasticity to their applications.
- Add NoSQL for "big data" applications. Most application development and delivery teams seem to adopt NoSQL products to create so-called "big data" applications. These applications typically analyze large and/or fast-changing pools of data that would be too expensive to manage using conventional relational database products. Some organizations use NoSQL products to improve their ability to deliver data and/or content to mobile devices. Shops that adopt NoSQL products introduce an elastic data service into their architecture.
- Adopt EAP distributed computing layers to virtualize applications. Some application development and delivery teams introduce new middleware to help them adapt existing applications to take advantage of elastic scaling. Application development and delivery shops that implement specialists such as Appistry, Cloudsoft, CloudSwitch, and Paremus introduce EAPs' computing services and deployment services layers to their architectures.
- Adopt PaaS products that provide EAP concepts. Lastly, platform-as-a-service products will introduce many application development and delivery teams to the benefits of EAPs.
We are fast approaching the "crossing the chasm" moment for EAPs. Only a handful of vendors are offering comprehensive EAPs today, but Microsoft is in the game with its Azure platform. So are salesforce.com with its Force.com portfolio and GigaSpaces with XAP. We expect IBM to push its WebSphere platform into the EAP arena this year. And Oracle, as well. Bottom line: The big enterprise vendors will soon be offering EAPs too.
Mike Gualtieri and I collaborated on this research.