web-dev-qa-db-fra.com

Qu'est-ce qu'un seul Heroku Web Dyno?

Selon Pourquoi les gens utilisent-ils Heroku lorsque AWS est présent? Qu'est-ce qui distingue Heroku d'AWS? , il semble que plusieurs Heroku Web Dynos fonctionnent sur un seul processeur Amazon EC2.

Combien de Dynos fonctionnent sur un processeur? Quelles sont les spécifications?

Un grand nombre de Dynos exécutés sur un processeur affecte-t-il les autres Dynos?

33
B Seven

Lorsque vous déployez une application Heroku, vous créez une image de machine virtuelle appelée slug en utilisant une ou plusieurs buildpacks. Lorsqu'une instance de machine virtuelle est lancée à partir de ce slug, elle est appelée dyno.

Chaque dyno exécute un seul processus à l'intérieur de votre machine virtuelle d'application. Heroku ne décrit pas officiellement comment les dynos sont provisionnés, mais une analyse anecdotique montre que de nombreux dynos sont exécutés sur une seule instance Amazon XL EC2, partageant le disque, le CPU et la mémoire entre tous les dynos. Il y a certainement des "voisins bruyants" lors du partage des ressources, mais les données directes ou les statistiques ne sont pas fournies. Je ne peux que partager mon expérience anecdotique que cela se produit effectivement.

Chaque dynamo est isolé au sein de la machine d'hébergement EC2, mais partage les ressources sous-jacentes. Ceci est similaire au fonctionnement de docker et d'autres conteneurs d'application.

Les dynos sont enregistrés auprès de Heroku Routing Mesh, un équilibreur de charge intelligent qui mappe le trafic Web entrant vers le dyno de l'application. Chaque dyno a un port TCP assigné qui est enregistré avec le maillage de routage.

Heroku est un service de niveau supérieur au-dessus d'Amazon EC2. Ils implémentent le déploiement, l'approvisionnement, la surveillance, la disponibilité et la mise à l'échelle automatique à un coût supérieur à l'hébergement EC2 brut. Vous pouvez exécuter vos propres instances EC2, mais vous devez implémenter ces services vous-même.

Avis de non-responsabilité: Je ne suis pas un employé Heroku et je n'ai aucune connaissance particulière d'Heroku autrement qu'en tant qu'utilisateur d'un grand trafic important Rails app.

MISE À JOUR: Heroku a lancé PX des dynos de taille ce matin, qui sont hébergés sur un EC2 dédié c1.xlarge instance, qui résout tous les problèmes de voisins bruyants et de conflits de ressources auxquels j'ai fait allusion ci-dessus. À un prix élevé. Détails ici: https://blog.heroku.com/archives/2014/2/3/heroku-xl

54
Winfield

Il vaut la peine de dire que le maillage de routage Heroku n'est pas si intelligent qu'il distribue les demandes de manière ALÉATOIRE à travers vos dynos. Dans les cas où il y a un grand nombre de dynos, l'algorithme PEUT éventuellement biaiser sa sélection vers des dynos résidant dans la même zone de disponibilité AWS que le routeur effectuant la sélection.

0