Quand devrait-on utiliser les services suivants : Amazon EC2, Google App Engine, Microsoft Azure et Salesforce.com ?
Bonne question ! Comme vous le soulignez, les différentes offres s’inscrivent dans différentes catégories :
EC2 est de l’Infrastructure en tant que Service ; vous obtenez des instances de VM et en faites ce que vous voulez. Les Rackspace Cloud Servers sont plus ou moins la même chose.
Azure, App Engine et Salesforce sont tous de la Plateforme en tant que Service ; ils offrent cependant différents niveaux d’intégration : Azure vous permet pratiquement d’exécuter des services en arrière-plan arbitraires, tandis qu’App Engine est orienté vers des tâches de gestion de requêtes de courte durée (bien qu’il prenne également en charge une file d’attente de tâches et des tâches planifiées). Je ne connais pas très bien l’offre de Salesforce, mais d’après ce que j’en comprends, elle est similaire à App Engine à certains égards, bien que plus spécialisée pour sa niche particulière.
Les offres cloud qui relèvent du Logiciel en tant que Service vont des éléments d’infrastructure comme Amazon Simple Storage Service et SimpleDB jusqu’aux applications complètes comme le FogBugz hébergé de Fog Creek et, bien sûr, StackExchange.
Une bonne règle générale est que plus l’offre est de haut niveau, moins vous aurez de travail à faire, mais plus elle sera spécifique. Si vous voulez un suivi de bugs, utiliser FogBugz sera évidemment le moins de travail ; en construire un sur App Engine ou Azure demande plus de travail, mais offre plus de polyvalence, tandis qu’en construire un sur des VM brutes comme EC2 demande encore plus de travail (considérablement plus, en fait), mais offre encore plus de polyvalence. Mon conseil général est de choisir la plateforme de plus haut niveau qui répond encore à vos exigences, et de construire à partir de là.