Il s'agit d'un fil de discussion assez ancien, avec des réponses plutôt anciennes. J'ai donc pensé qu'une réponse plus actuelle pourrait aider certaines personnes.
J'ai une assez bonne expérience de l'utilisation de Heroku et d'Engine Yard pour des services web assez importants et complexes. Mon entreprise utilise Engine Yard pour exécuter Andromo App Maker pour Android et nous utilisons Heroku pour exécuter AirBop Push Messaging Service pour Android. Chaque plateforme possède des capacités qui lui sont propres.
Il est un peu difficile de répondre à votre question, tout simplement parce que la plupart des critères qui vous intéressent ne sont pas les caractéristiques distinctives de chaque plateforme. Je répondrai quand même à ces points, mais j'aborderai aussi la philosophie générale de chaque plateforme et les différences de support technique qui me semblent plus utiles pour votre décision.
La sécurité, la stabilité et l'évolutivité ne sont pas prises en compte. Les deux services sont aussi sûrs et stables que n'importe quelle instance Amazon EC2. L'évolutivité est également identique, de manière réaliste. Alors que Heroku vous limite à quelques centaines de petites (512k) instances (ou maintenant "double" petites), Engine Yard vous permet d'utiliser Extra Large avec des tonnes de CPU et de mémoire, mais dans le monde réel, c'est à peu près la même chose au final. Avec Heroku, vous pourriez avoir besoin de créer un essaim de petits serveurs bon marché pour gérer votre charge, ou avec Engine Yard vous utiliseriez une poignée de plus gros serveurs plus chers. Pour les requêtes web, cela n'a probablement pas beaucoup d'importance.
Le prix est un facteur que je peux aborder un peu mieux. Tout d'abord, si vous ne faites que bricoler, Heroku est gratuit. Mais ne confondez pas cela avec le fait que vous pourriez vraiment faire fonctionner un vrai site Web avec leur niveau gratuit. Ce n'est pas le cas. Engine Yard vous offre également un grand nombre d'heures gratuites pour vous amuser, mais parlons des applications réelles. Heroku aplanit le problème de la tarification, en vous facturant des " dynos " (ces petits serveurs Web dont j'ai parlé) et un plan de base de données PostgreSQL. Leurs prix incluent le stockage, la sauvegarde, la bande passante, etc., il est donc assez facile de faire un calcul mental de ce que coûtent les choses. Engine Yard décompose les choses et vous devrez utiliser leur calculateur pour savoir ce que cela va coûter - mais tout est présenté pour vous avant que vous ne décidiez de lancer une nouvelle "instance".
Je trouve que les plans de base de données de Heroku sont très chers (par rapport à ce que coûte l'instance EC2 qu'ils utilisent). Ils font définitivement leur profit ici. Ce qui semblait bon marché pour les dynos a maintenant besoin d'une base de données de 200 à 400 dollars par mois (pour commencer à atteindre un niveau de performance raisonnable, il faut compter plus de 800 dollars). Je déteste également la façon dont ils cachent les spécifications de la base de données - vous devrez déduire les capacités en allant sur les données de taille d'instance d'Amazon et en regardant la "mémoire" que Heroku utilise pour le "cache".
La base de données d'Engine Yard est simplement l'instance de serveur que vous souhaitez. Ils ajoutent la même majoration EC2 que pour les instances web. Pas d'arnaque ici. C'est plus transparent.
L'un est-il moins cher que l'autre ? Peut-être, mais je ne laisserais pas quelques dollars brouiller votre décision.
En fin de compte, j'aime Engine Yard pour son contrôle "bare metal". Nous en avons besoin pour Andromo, car nous générons et compilons des applications Android à la volée et avons des exigences très spécifiques. Engine Yard nous donne un contrôle total sur chaque serveur, les paquets Unix, SSH, etc. D'autre part, Herkou fonctionne très bien dans les situations où vous pouvez abstraire votre application du matériel et vous lancer dans la réflexion sur l'essaim de dynos. Il est très rapide et facile de lancer des dizaines de dynos en quelques minutes. Comme je l'ai mentionné, nous exécutons AirBop sur la plateforme Heroku et avons automatisé la création/destruction de nos instances avec HireFire - ce qui fonctionne très bien pour nous car notre charge varie considérablement et de manière inattendue.
Un autre élément à prendre en compte est le support technique. D'après mon expérience, le support gratuit/inclus de Heroku est pratiquement inutile, alors que Engine Yard est très bon. EY avait l'habitude de faire payer le support de base mais a commencé à l'inclure dans tous ses plans (en plus, ils ont une option prioritaire disponible 24/7). J'ai constaté qu'ils savent vraiment de quoi ils parlent.
J'espère que cela vous aidera !