This content is part of the Essential Guide: Developing cloud applications in the new IT era

How to future-proof your cloud app development process

As cloud computing evolves, users won't just move their apps to the cloud -- they'll design them to take advantage of cloud's scale and resiliency.

Every time there's a computing revolution -- such as batch to real-time processing or mainframe to mini computers -- organizations must rethink how applications are built and behave.

And cloud, the latest revolution, is no exception. In the first phase of cloud app development, organizations repurposed existing applications to run on the cloud. In the second, businesses will build applications for cloud. Cloud planners are on a mission to advance cloud computing out of that first generation and into the second.

Reaching the second generation of cloud

If first-generation cloud computing was hosted server consolidation, the second generation is optimizing application behavior to take advantage of cloud's scalability, resiliency and geographic elasticity. As soon as any organizations committed to cloud are comfortable with its basic principles, they should undertake second-generation planning.

Without embracing second-generation cloud, it's difficult -- or, in some cases, impossible -- to fully reap its benefits, such as cloud bursting or failover. One of cloud's biggest benefits is horizontally scaling applications to respond to increased or decreased load. Cloud's ability to spin up a second copy of an application if the primary copy fails also improves availability. However, unless the application is prepared to cooperate, these features are difficult or impossible to use effectively.

Scaling and failover require two capabilities: distributing work among application copies and multi-application database sharing. If a cloud application fails, simply planting another copy won't connect to users. Cloud planners have to consider how requests will be directed to the new application copy and how that new copy will gain access to the same databases. The same is true for cloud bursting; each active application copy must share work and databases. To meet that first requirement, stateful load balancing is essential. And to meet the second, optimizing database hosting locations and multi-phase commit protocols for online transaction processing is essential.

Another cloud benefit is the distribution of application copies across multiple regions, which reduces latency and improves response times. As time zone changes impact workloads, cloud applications can migrate "with the sun." The challenge is ensuring workers in a certain location access the application copies they're actually intended to use. Applications are known by URLs that a DNS server then decodes. If multiple regions have different application instances serving their needs, they'll need different URLs or a different path to decoding them.

Preparing for the third generation of cloud

Though critical, the second generation of cloud won't be the last. In third-generation cloud computing, users will develop applications that depend on cloud-hosted features. As infrastructure as a service and platform as a service providers seek to grow their profits, many are adding these hosted features to their clouds. Amazon, for example, calls them "Web services," and applications access them through APIs. To use these cloud-hosted services, third-generation cloud planning involves changing applications.

Database as a service (DBaaS) is an example of third-generation cloud planning. By making databases cloud-resident and more broadly accessible, DBaaS enhances second-generation cloud planning for application scale and resilience. Organizations can also publish these database services from their own data centers into the cloud, making them available to all cloud applications and their instances.

Because there are no standards for cloud-hosted services, cloud planners will have to explore different cloud providers' options to determine which service is right for them. This also makes it difficult to replicate cloud-hosted services across multiple cloud providers, or to offer them with compatible APIs. As a result, once enterprises use these hosted services, changing providers may require application tuning.

It is likely, however, that at least de facto standards for these third-generation Web services will emerge over time. This will not only improve application portability, but accelerate the migration to third-generation cloud apps and facilitate cloud app development. It may be tempting to wait for this market to mature, but a careful review of your transition strategy for the next generation of cloud will pay off significantly today.

About the author
Tom Nolle is president of
 CIMI Corp., a strategic consulting firm specializing in telecommunications and data communications since 1982.

Next Steps

Analyzing cloud's evolution and its impact on DevOps

Experts predict future cloud market trends

Looking at the future of cloud computing technology

Dig Deeper on Managing Cloud-Native Applications