Over a million developers have joined DZone.

The battle for cloud application design

DZone's Guide to

The battle for cloud application design

· ·
Free Resource
It seems there's a battle brewing for the preferred method to build applications in the cloud. There's currently three different models: a) Develop and deploy on my platform, b) develop and deploy in my container and c) deploy your own container/OS stack.

The types of products represented by class (a) include Wavemaker, Yahoo Pipes! and Appjet. The types of products represented in class (b) include Microsoft Azure and Google App Engine -- these products focus on packaging your application and deploying it into an application container. Class (c) is a full operating system platform vis a vis Amazon Web Services. These three different models each offer their own benefits and have their own limitations and risks. Moreover, these three models do not exist mutually exclusive to each other. Indeed, I believe that each model provides developers with differing levels of experience the opportunity build and deploy an application in the Cloud.

However, what is really interesting about these three different models is that the two largest vendors -- Microsoft and Google -- chose to offer an application container model. These are businesses that have focused on building highly-scalable application environments and they have backed the approach that provides developers with a strong services framework, but gives the developer enough freedom to design their application as they see fit. It also seems that this model may offer the best approach to optimization of compute resources. That is, the packaging model allows them to move the application package to any instance of a container but doesn't have to dedicate storage, CPU and memory to the application as is the case with class (c) applications.

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}