Tuesday, November 22, 2011

When to Develop for the Cloud

So now you know what the cloud is. It’s a revolutionary way of thinking about computing; it’s a universe of servers that you can build an application on; it’s a world of services that you can build or that you can use to build other things. Now, the question is, when should you use it?

You can write almost any application you want in the cloud. In fact, many people strongly believe that everything should be in the cloud— that there’s no longer any reason to develop applications for standalone personal computers. I don’t go quite that far: many applications are well suited to the cloud, but that doesn’t mean that it’s the ideal platform for everything. You can build anything as a service in the cloud, but it might be a lot harder than developing it as a standalone application.

There are three kinds of applications that it makes sense to build in the cloud:

Collaborative applications.
If the application you’re building will be used by groups of people to work together, share data, communicate, or collaborate, then you really should build that application in the cloud. Collaboration is the cloud’s natural niche.

Services.
If you ask, “What does my application do?” and the most natural answer sounds like a service, then you’re looking at a cloud application. The difference between an application and a service can be subtle—you can describe almost anything as a service. The key question here is what’s the most natural description of it? If you want to describe the desktop iTunes application, you could say, “It lets people manage their music collections,” which does sound service-like. But it leaves out the key property of what the iTunes desktop application does: it manages a collection of music files on the users’ computers and lets them sync that music with their iPods using a serial cable. Described the latter way, it’s clear that it’s a desktop application, not a cloud application.

On the other hand, if you take a look at something like eMusic, you’ll come to a different conclusion. eMusic is a subscription based website that lets users browse an enormous collection of music and buy a certain number of songs per month. eMusic is clearly a service: it lets people search through a library of hundreds of thousands of musical tracks, providing them with the ability to listen to snippets, read reviews, comment on things that they’ve listened to, get suggestions for new things based on what they like, and ultimately select things to purchase. That’s clearly a service, and it makes sense to keep it in the cloud.

Large Computations.
Is your application intended to perform a massive computation, which you could never afford to do if you needed to buy your own computers to run it? If so, the cloud allows you to purchase time on a server farm of computers in an affordable way and run your application. This is great for people like genetics researchers, who need to run massive computations but don’t have the money or other resources to set up a dedicated data center for their computations. Instead, they can purchase time on commercial data centers, which they share with many other users.

Source of Information : Pragmatic - Code in the Cloud Programming Google App Engine 2011

No comments: