nodejs - ¿Qué es exactamente un solo Dyno Web de Heroku?
procfile heroku node js (1)
Cuando implementas una aplicación Heroku, creas una imagen de máquina virtual llamada slug
usando uno o más buildpacks
. Cuando se lanza una instancia de máquina virtual desde este slug
, se llama un dyno
.
Cada dyno
ejecuta un solo proceso dentro de la máquina virtual de su aplicación. Heroku no describe oficialmente cómo se aprovisionan los dynos, pero el análisis anecdótico muestra que muchos dynos se ejecutan en una sola instancia de Amazon XL
EC2, compartiendo disco, CPU y memoria en todos los dynos. Definitivamente hay "vecinos ruidosos" cuando comparten recursos, pero no se proporcionan datos directos o estadísticas. Solo puedo compartir mi experiencia anecdótica de que esto sí ocurre.
Cada dino está aislado dentro de la máquina de alojamiento EC2, pero comparte los recursos subyacentes. Esto es similar a cómo funcionan la docker
y otros contenedores de aplicaciones.
Los dispositivos Dynos están registrados con Heroku Routing Mesh, un equilibrador de carga inteligente que asigna el tráfico web entrante al dino de la aplicación. Cada dinamómetro tiene un puerto TCP asignado que está registrado con la malla de enrutamiento.
Heroku es un servicio de nivel superior sobre Amazon EC2. Implementan la implementación, el aprovisionamiento, el monitoreo, la disponibilidad y el escalamiento automático a un costo superior para el alojamiento de EC2 sin procesar. Puede ejecutar sus propias instancias de EC2, pero necesita implementar esos servicios usted mismo.
Descargo de responsabilidad: no soy un empleado de Heroku y no tengo un conocimiento especial de Heroku que no sea un usuario de una aplicación de Rails grande y de alto tráfico.
ACTUALIZACIÓN: Heroku lanzó los diodos de tamaño PX
esta mañana, que están alojados en una instancia de EC2 c1.xlarge
dedicada, que resuelve todos los problemas de vecinos ruidosos y la contención de recursos a los que aludí anteriormente. En una etiqueta de precio de alto. Los detalles aquí: https://blog.heroku.com/archives/2014/2/3/heroku-xl
Según ¿Por qué la gente usa Heroku cuando AWS está presente? ¿Qué distingue a Heroku de AWS? Parece que varios Heroku Web Dynos se ejecutan en una sola CPU de Amazon EC2.
¿Cuántos Dynos se ejecutan en una CPU? ¿Cuáles son las especificaciones?
¿Una gran cantidad de Dynos que se ejecutan en una CPU afectan al otro Dynos?