tags:

views:

248

answers:

5

What are the benefits of using a Cloud Service over a normal server setup? It's a given that i may benefit from a distributed server setup (The cloud) and maybe cost. But am i really missing out on any capabilities by not using a cloud service? If anything cloud computing is rather limited.

For example the Azure service not all of the .Net Framework assemblies are available to the developer.

There has been a lot of hype with Push and data synchronization technologies recently, and they seem to be sold as something that can only be done with cloud services. There's nothing baked into Cloud Services that enables Push or Syncing right? The developer still needs to write the apps and it host it on the Cloud. If so, then why not use a normal server setup?

Forgive me if i am talking total nonsense, but i am trying read beyond the marketing hypea dn try to understand the real limitations/benefits of using a Cloud and what business benefits it can bring.

A: 

You can actually gain the benefit of Cloud service while still deploying your own server configuration. This is called the Infrastructure as service unlike Application as service that Google AppEngine and Azure offered. One of the player in this area is Amazon.

jpartogi
A: 

I think the biggest advantage of server development is also the biggest roadblock for clouds: you own the servers. They're under YOUR control. You can walk over and see where your data is. You don't have to worry about it being in a data center somewhere else. You don't have to worry about a company going out of business or mishandling your information.

This is a real worry for conservative businesses. Data is the lifeblood of most organizations, so a decision to put it into someone else's hands isn't taken lightly.

The problem with server development is that greater control brings greater responsibility. You have to pay for all that hardware, software, electricity, data center real estate, and people to maintain it all. You assume that your security and data handling practices are as good as or better than the cloud firm you might be handing the data to. If this is bad assumption, cloud computing starts looking better.

I think it has little to do with development considerations and everything to do with business realities.

duffymo
A: 

The only real difference between a "clustered server" environment and a "cloud" is that you own and controll your cluster of servers whereas someone else owns and controlls the cloud servers.

This is either an advantage or disadvantage depending on what you are doing.

There are many apps can never be put on a cloud because of privicy, SOX and other regulations simply becuase you have no real control over what happens to the data once its out there.

James Anderson
+1  A: 

One big advantage of cloud services (and in particular here I am talking about Amazon's EC2, though others work the same way) is that you can easily scale your usage up or down (the E stands for 'elastic'). So if you have a low-traffic website that suddenly gets Slashdotted, you can spin up 10 more servers within a minute or so, pay for them only while you use them, and shut them down again once the traffic dies down. If you were maintaining your own servers, you might be stuck with higher costs for a longer period of time (if you were renting), or with a bunch of machines you didn't need (in the worst case).

Also, with things like machine images, EC2 makes setup really easy.

Sorry if this sounds like an advertisement. In the interest of full disclosure, I used to work on the EC2 team but have not in over a year. I don't care if you use them or something else, I just happen to know the most about it.

danben
A: 
It is important to distinguish between two kinds of Cloud 
Computing (as I see it).
Elastic - such as the one of Amazon EC2
Fabric- such as Google App Engine

The elastic kind (or model if you like) gives you the flexibility 
to manage multiple instances, yet all the scale-up coding is on your shoulders.
You are the one who responsible that your application will be scalable.
From that perspective, it is not much different than using typical server.

The Fabric cloud services (as I call it), has some limitations but it 
provides you an hassle free scale up environment.
You write your application and it is automatically scalable.
You don't have to manage a server, there are no physical disk, server services, 
admin users, etc.
You don't have to take care of filesystem backup, because from your 
point of view, there's no such thing as server.
With this benefit comes a price.
I/O access to the filesystem, threads, or lower network api are unexposed.
But considering you're building your app to scale, you will not use 
these services in the first place.

Fabric cloud service will provide you with easy alternatives, though.
In AppEngine for example, you can easily create background tasks, 
call remote web services (restless or soap), and you can easily 
deploy multiple versions of your app.

In conclusion, normal server deployment vs elastic cloud is just a 
matter of price and flexibility.
normal server deployment vs fabric cloud is a matter of paradigm.
For the latter, most of the time your app design is the same, but if you need
sophisticated server side programming, then it's no doable, on the 
other hand if you can't or don't want to administrate or secure your server, 
it's a perfect solution.



Sug