views:

852

answers:

7

How and when do you decide which cloud service is best? EC2 offers Virtual Servers, but can be a pain in some cases, and overkill as well. Azure is great for web apps written in ASP.NET, while GAE is good for Python users, but neither offers the low level of EC2.

So, how do you decide where you go?

A: 

I think the main deciding factors will be technology, maturity and adoption. In my case, I have to go with what my management decides to do.

Chris S
+8  A: 

EC2 - By far the most flexible and mature of the bunch. EC2 supports Linux, and Windows along with any of the software for those systems. It also has a vast and flexible set of solutions for storage, backups, and file distribution. It can also be fairly expensive, depending upon your needs (the nickels and dimes for each service can add up quickly). EC2 is "low-level" in that it is essentially a management tool for virtual OSes in a data center. For that reason, while it is easy to migrate to and from (you just boot the OS and start running your software), it requires more work or resources to scale with your workload.

Azure - From what I've seen (very little) its still fairly immature. AFAIK, pricing has not yet been announced.

GAE - Supports most of Python and a limited amount of Java. If your needs fit into its strict limitations, it can be useful. However, it does have limits that prevent many off-the-shelf applications from working. Also, storage options for large files are very limited. OTOH, it is fairly cheap, with a free starter edition that is suitable for starting up projects. In addition to technical limitations, Google has not shown the level of transparency and commitment to App Engine as Amazon has to EC2, for example. Specifically, note the number of issues that go months without even acknowledgement (much less official response) in the App Engine the issue tracker.

In the end, which one is best for you (if any) is very dependent upon your application and what you are trying to accomplish.

jsight
+1  A: 

There's the new Mosso which is run by Rackspace. The problem with EC2 is that the bare minimum you have to pay to keep a server up 30 days a month is about $70. Mosso has options as low as $10.95 a month. Obviously, they're less powerful, but it's good for development and such.

One thing that I question about these guys though is their computing power. They say they evenly divide up an 4 core processor based on what type of server you buy. If we assume they give you an 4 core to yourself when you get their most expensive server (which might not even be true; they don't get specific), $700.80 a month, that's crazy talk. You could go get a dedicated server at WiredTree (or any other good host) with the DOUBLE the cores and the same amount of ram for half the price.

Another downside is they do not yet appear to have an API. However, have stated they are currently working on it.

ryeguy
+8  A: 

It'll be challenging, in 2009, for most of us to decide which platform to build upon - ie to "pick a winner".

The winning platforms may not even exist yet but perhaps by picking a player today with a large installed base one can hope for migration tools to the winners when required.

Amazon and Google are two such large players and have taken very different routes to cloud services (because their own systems are built on different approaches) and both look like being among the first wave of winners.

  1. For new builds I would consider GAE. Its programming model disconnects data & code from hardware detail enabling GAE to handle application scaling without requiring developers to modify their data or code. GAE is the brave new world and as such favours the new.

The system isn't mature so you'll need to gamble that your development requirements curve isn't too far ahead of the GAE development curve - now that's a tough call to make!

  1. Have an existing system? Amazon's EC2/S3 offers the most mature solution. Renting virtual machines is cheaper than renting physical machines. Amazon have tools/services to help you manage scalability but manage it you will still have to do. If you need specific implementations such as MS Windows, Linux, SQL, C libraries, Fortran, C#, Ruby, Postgresql then Amazon offers a path for such 'legacy' systems.

Digession: can one expect Amazon to offer a cloud service more akin to GAE? It would be a logical step.

Carl
+1  A: 
  • Amazon EC2 is good candidate to deploy your application on because Amazon compatible services can be easily provided by other companies as well. Even if you will want to host your application on your own servers at some point, it won't be a big problem. Amazon EC2 is practically zero lock-in.

  • Google App Engine is just bad candidate because there is not going to be compatible product from other company for very long time if ever. It's just too proprietary and Google doesn't plan to release their technology. To me it's 100% lock-in and if you decide to move somewhere else, it will be impossible without massive rewrite. I would be very surprised if any ambitious and big project would bet on GAE.

  • Windows Azure is not looking as bad as Google App Engine. Although it's still going to be hosted exclusively by Microsoft, it might be possible for other companies to come up with (almost) compatible cloud service. After all, core pieces of Windows Azure are based on well known SQL Server, IIS and .NET framework stack.

lubos hasko
Ja len ze podla mena som tipoval slovaka a veru. Tak pozdravujem z Brightonu :)
Peter Perháč
The App Engine SDK is entirely open source, and there's absolutely no barrier to building your own alternative. In fact, there's already efforts in progress - AppScale, for example.
Nick Johnson
App Engine SDK is not the real thing. The real Google App Engine is not open-sourced at all. Also last time I checked, guys from AppScale claimed that their project is not meant as alternative to GAE.
lubos hasko
+2  A: 

If you are interessted in EC2 you may also want to check out Eucalyptus which allows you to run a private cloud inside your firewall with Amazon compatible APIs:

"Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems - is an open-source software infrastructure for implementing "cloud computing" on clusters. The current interface to Eucalyptus is compatible with Amazon's EC2, S3, and EBS interfaces, but the infrastructure is designed to support multiple client-side interfaces. Eucalyptus is implemented using commonly available Linux tools and basic Web-service technologies making it easy to install and maintain."

Eucalyptus is featured as a technology preview in the latest Ubuntu 9.04 server release. See the UEC page for more information.

knweiss
A: 

Which cloud computing API should we learn to get a good job?

Shekhar