Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When should one use the following: Amazon EC2, Google App Engine, Microsoft Azure and Salesforce.com?

I am asking this in very general sense. Both from cloud provider and cloud consumer's perspective. Also the question is not for any specific kind of application (in fact the intention is to know which type of applications/domains can fit into which of the cloud slab -SaaS PaaS IaaS).

My understanding so far is:

IaaS: Raw Hardware (Processors, Networks, Storage).

PaaS: OS, System Softwares, Development Framework, Virtual Machines.

SaaS: Software Applications.

It would be great if Stackoverflower's can share their understanding and experiences of cloud computing concept.

EDIT: Ok, I will put it in more specific way -

Amazon EC2: You don't have control over hardware layer. But you can take your choice of OS image, Dev Framework (.NET, J2EE, LAMP) and Application and put it on EC2 hardware. Can you deploy an applications built with Google App Engine or Azure on EC2?

Google App Engine: You don't have control over hardware and OS and you get a specific Dev Framework to build your application. Can you take any existing Java or Python application and port it to GAE? Or vice versa, can applications that were built on GAE be taken out of GAE and ported to any Application Server like Websphere or Weblogic?

Azure: You don't have control over hardware and OS and you get a specific Dev Framework to build your application. Can you take any existing .NET application and port it to Azure? Or vice versa, can applications that were built on Azure be taken out of Azure and ported to any Application Server like Biztalk?

like image 931
user32262 Avatar asked Oct 05 '09 07:10

user32262


People also ask

When should I use App Engine?

App Engine is a fully managed, serverless platform for developing and hosting web applications at scale. You can choose from several popular languages, libraries, and frameworks to develop your apps, and then let App Engine take care of provisioning servers and scaling your app instances based on demand.

What is the benefit of EC2 compared to Google App Engine?

"Quick and reliable cloud servers", "Scalability" and "Easy management" are the key factors why developers consider Amazon EC2; whereas "Easy to deploy", "Auto scaling" and "Good free plan" are the primary reasons why Google App Engine is favored.

What is AWS and Azure used for?

Both AWS and Azure provide long-running and reliable storage services. AWS has services like AWS S3, EBS, and Glacier whereas Azure Storage Services have Blob Storage, Disk Storage, and Standard Archive. AWS S3 ensures high availability and automatic replication across regions.

Which is best Google Cloud or AWS or Azure?

Google Cloud is quite popular among startups as it offers various discounts for cloud users. Google Cloud is better for you if pricing is a significant aspect. Azure offers immense flexibility, and AWS has the edge over the others with its massive global footprint.


2 Answers

Good question! As you point out, the different offerings fit into different categories:

EC2 is Infrastructure as a Service; you get VM instances, and do with them as you wish. Rackspace Cloud Servers are more or less the same.

Azure, App Engine, and Salesforce are all Platform as a Service; they offer different levels of integration, though: Azure pretty much lets you run arbitrary background services, while App Engine is oriented around short lived request handler tasks (though it also supports a task queue and scheduled tasks). I'm not terribly familiar with Salesforce's offering, but my understanding is that it's similar to App Engine in some respects, though more specialized for its particular niche.

Cloud offerings that fall under Software as a Service are everything from infrastructure pieces like Amazon's Simple Storage Service and SimpleDB through to complete applications like Fog Creek's hosted FogBugz and, of course, StackExchange.

A good general rule is that the higher level the offering, the less work you'll have to do, but the more specific it is. If you want a bug tracker, using FogBugz is obviously going to be the least work; building one on top of App Engine or Azure is more work, but provides for more versatility, while building one on top of raw VMs like EC2 is even more work (quite a lot more, in fact), but provides for even more versatility. My general advice is to pick the highest level platform that still meets your requirements, and build from there.

like image 186
Nick Johnson Avatar answered Sep 21 '22 05:09

Nick Johnson


This is an excellent question. Full disclosure as I am partial to Azure but have experience with the others.

Where I think Azure stands out from the others is the quick transition from on prem to the cloud. For example -

  • SQL Azure - change connection string, upload DB, go!
  • Queues work a lot like MSMQ.
  • Blobs are pretty much blobs any way you shake them but they scale like crazy.
  • The table storage component is good because it provides incredible scalability for name/value pairs - but takes some getting used to.
  • Service Bus is my favorite of the services because it allows for a variety of communications paradigms. Two SB endpoints first try to connect to each other, if they cannot, then they route through the cloud - makes for very secure and scalable processing when firewalls tend to get in the way.
  • Access control list - paired typically with the service bus to make sure the right people access the right things - think SAML in the cloud.

I hope that helps!

like image 35
Derek Avatar answered Sep 21 '22 05:09

Derek