views:

124

answers:

5

I'm looking for a cloud computing service with the following requirements:

  • no need to manage servers
  • instant availability
  • automatic scaling
  • ability to run tasks for at least a couple of minutes

Google App Engine seems to meet all of these requirements with the exception that processes can only run for 30 seconds.

My application is a website that performs some heavy-duty calculations for the users when requested. I expect the load to be near zero for half the time, and at a maximum of hundreds of simultaneous tasks being run.

Does something like this exist?

Edit: These are the services I've already looked at, and why they won't work for me:

  • Amazon EC2 - requires server management, and I can't go from 0 to 1 servers in a matter of seconds
  • Amazon MapReduce - it takes a couple minutes to start up. If it was available in a matter of seconds, this would be what I'd use
  • Microsoft Azure - as Alan said, it still requires server management
  • Google App Engine - tasks can only last 30 seconds
+2  A: 

I believe Amazon's EC2 fits your requirements.

Amazon EC2

Alan
Just EC2 doesn't satisfy 'no need to manage servers' or 'automatic scaling'. But add in RightScale.com and you get a little closer.
dar
I believe they added in Automatic Scaling, recently, iirc.
Alan
Fizzle-sticks, it looks like they didn't. Stand corrected.
Alan
The worst kind of sticks.
Alan
A: 

You could use Microsoft Azure which is free while its in CTP, till the fall of this year.

Rik
I'm not sure why anyone would start building any serious apps on Azure until they publish detailed pricing. What if it ends up costing 50% more than EC2?
runako
Azure requires you to "manage" the number of servers. So if you're needs go from 0 to 10 servers, Azure won't currently grow for you. App Engine is the only offering that is detached from "servers" and just focuses on memory, processing, and so on.
jwmiller5
A: 

Windows Azure, once released, may be able to fill your needs. It's lower level than Google App Engine and but it should manage the scaling and availability for you. It has two kinds of processes - web and worker. The web process is for front-ends and the worker process is for background processing. Sounds like it's exactly what you are looking for.

With a little machine setup, you can also do the same thing with Amazon EC2 and an add-on service.

Steven Lyons
A: 

Amazon Elastic MapReduce will do this for you:

http://aws.amazon.com/elasticmapreduce/

You will have to set the number of servers and other high-level parameters, but for running big compute jobs is probably the best you're going to find.

runako
+1  A: 

Rackspace's Mosso would be another option for you aside from the aforementioned Amazon EC2 and Microsoft Azure platforms.

I've used EC2 and it's worked out well for me. It doesn't have any built-in tools for automatically launching new servers based on server load. For that, though, there are third party companies like RightScale and CloudKick to help you manage your cloud servers.

calvinf