www servidor que plans ruby-on-rails heroku web-hosting cloud-hosting engineyard

ruby on rails - servidor - Heroku vs EngineYard: ¿cuál vale más el dinero?



vps heroku (6)

Busqué esto en Google, pero quería más opiniones antes de comprometerme con cualquiera de los servicios. ¿Alguien ha tenido experiencia con alguno de los servicios (o tal vez ambos)? ¿Hay ventajas o desventajas que se destacaron en cualquiera de los dos? Las áreas de interés particulares son:

  1. Seguridad
  2. Estabilidad
  3. Escalabilidad
  4. Precio

Ejecuto Rails y aplicaciones de Sinatra de misión crítica en aplicaciones de Heroku y Engine Yard y PHP en Engine Yard Cloud, y mi comentario es sobre # 2, la estabilidad. Engine Yard gana, con la mano hacia abajo. La razón es el personal de apoyo. Si su aplicación debe funcionar de manera absoluta y necesita ayuda para hacerlo funcionar, entonces Engine Yard está ahí para ayudarlo, especialmente si invierte en soporte premium. Ellos son absolutamente fantásticos. Heroku está limpio cuando funciona, pero cuando no funciona, su personal de apoyo no es tan útil.

Aquí hay un ejemplo de hace un par de meses cuando necesitaba implementar una aplicación interna de misión crítica dentro de un par de días de recibir la solicitud de la aplicación por parte de mi personal:

Tiempos de espera intermitentes de una aplicación que nunca debe expirar (NO un error de "Tiempo de espera de solicitud R12")

Tengo muchas aplicaciones ejecutándose en Heroku, y ninguna de ellas ha tenido el misterioso problema de operaciones web que tuve con esa aplicación. Solo para asegurarle que sé lo que estoy haciendo y que no fue un error del desarrollador. Otra confirmación de eso es que el mismo código ha estado funcionando perfectamente desde que lo moví a Engine Yard cuando no pude obtener ayuda de Heroku. Finalmente respondieron días después de que necesité la aplicación lanzada, diciéndome que podía solucionar problemas de rendimiento en mi aplicación con NewRelic. Muchas gracias.

La forma en que lo veo, pagar por el soporte premium de Engine Yard cuesta mucho menos que contratar personal de operaciones web. Y recibo un apoyo extremadamente competente, de una red de personas que siempre tienen expertos para consultar cuando no saben. Permítanme repetir: el personal de soporte de Engine Yard es increíblemente fantástico.

Supongo que puedo comentar un poco sobre la seguridad, ya que en un momento nuestra aplicación SaaS fue atacada con un ataque DDoS. Tal vez de eso no se trataba en realidad la pregunta, pero la uso como excusa para hablar nuevamente sobre el personal de apoyo. Nunca me habían golpeado con un ataque DDoS, y ni siquiera sabía por qué mis servidores no funcionaban correctamente. Lo diagnosticaron y me ayudaron a comenzar con la mitigación. Me ayudaron a configurar algunos filtros ad-hoc en HAProxy y nginx para bloquear el ataque por un tiempo, y eso me dio tiempo suficiente para configurar la mitigación DDoS.

... luego llegó el momento en que todo el centro de datos de Amazon EE. UU.-Este implosionó y algunos sitios se desconectaron durante días . Engine Yard en ese momento solo ofrecía alojamiento en ese centro de datos. En cuestión de minutos, habían habilitado la opción para implementarse en US-West-1, y estaban ayudando a todos sus clientes afectados a mudarse. Sin su ayuda, no habríamos corrido a tiempo para nuestro mejor momento esa noche (somos un SaaS para clubes nocturnos) y probablemente hubiésemos perdido muchos clientes porque era jueves por la noche. Gran noche para nosotros Mucha gente que estaba ejecutando aplicaciones en Heroku ese día era solo SOL, pero estábamos en pleno funcionamiento en California gracias a la ayuda de Engine Yard.

Ha habido otros momentos en que han salvado a nuestra compañía de una condena segura. No es broma. Podría seguir contando historias. Pero se entiende la idea. El personal de soporte de Engine Yard es la razón por la que implemento todas las nuevas aplicaciones de misión crítica para Engine Yard Cloud.


Este es un hilo bastante antiguo, con respuestas bastante antiguas, por lo que pensé que una respuesta más actualizada podría ayudar a algunas personas.

Tengo bastante experiencia en utilizar tanto Heroku como Engine Yard para algunos servicios web bastante grandes y complejos. Mi empresa utiliza Engine Yard para ejecutar Andromo App Maker para Android y utilizamos Heroku para ejecutar AirBop Push Messaging Service para Android. Cada plataforma tiene sus propias capacidades únicas.

Su pregunta es un poco difícil de contestar simplemente porque la mayoría de los criterios que le interesan no son las características diferenciadoras de cada plataforma. Responderé a esos puntos de todos modos, pero también abordaré la filosofía general de cada plataforma y las diferencias de soporte técnico que creo que son más útiles en su decisión.

La seguridad, la estabilidad y la escalabilidad son un lavado. Ambos servicios son tan seguros y estables como cualquier instancia de Amazon EC2. La escalabilidad también es realista de la misma manera. Mientras que Heroku te limita a un par de cientos de instancias pequeñas (512k) (o ahora pequeñas ''dobles''), Engine Yard te permitirá usar Extra Large con toneladas de CPU y memoria, pero en el mundo real, todo se trata de lo mismo en el fin. Con Heroku es posible que necesites engendrar un enjambre de pequeños servidores baratos para manejar tu carga, o con Engine Yard usarías un puñado de servidores más caros y más grandes. Para las solicitudes web, es probable que no importe tanto.

El precio es un factor que puedo abordar un poco mejor. En primer lugar, si solo estás jugando, Heroku es gratis. Simplemente no confundas eso con el significado de que realmente podrías ejecutar un sitio web real en su nivel gratuito. No puedes. Engine Yard te ofrece un montón de horas gratis para jugar, pero hablemos de las aplicaciones del mundo real. Heroku suaviza el precio, cobrándote por ''dynos'' (esos pequeños servidores web que mencioné) y un plan de base de datos PostgreSQL. Sus precios incluyen almacenamiento, copia de seguridad, ancho de banda, etc., por lo que es bastante fácil hacer un cálculo mental de lo que cuestan las cosas. Engine Yard divide las cosas y tendrás que usar su calculadora para calcular cuánto costará, pero todo se te presenta antes de que decidas lanzar una nueva ''instancia''.

Encuentro que los planes de la base de datos de Heroku son muy caros (en comparación con la instancia de EC2 que están usando los costos). Definitivamente hacen su ganancia aquí. Lo que parecía barato para dynos ahora necesita una base de datos de $ 200 a $ 400 por mes (para comenzar a llegar al nivel de rendimiento razonable que podría estar buscando más como $ 800 +). También odio la forma en que ocultan / ocultan las especificaciones de la base de datos: necesitarás inferir las capacidades yendo a los datos de tamaño de instancia de Amazon y mirando la "memoria" que Heroku está usando para "caché".

La base de datos de Engine Yard es simplemente la instancia de servidor que desee que sea. Vuelcan el mismo marcado EC2 que lo hacen para las instancias web. Sin especulaciones aquí. Es más transparente.

¿Es uno más barato que el otro? Tal vez, pero no dejaría que unos pocos dólares enturbiaran tu decisión.

Al final, me gusta Engine Yard por su control ''bare metal''. Lo necesitamos para Andromo, ya que estamos generando y compilando aplicaciones de Android sobre la marcha y tenemos algunos requisitos muy específicos. Engine Yard nos da un control total sobre cada servidor, paquetes Unix, SSH, etc. Por otro lado, Herkou funciona muy bien en situaciones donde puede abstraer su aplicación del hardware y entrar en ese enjambre de pensamientos dynos. Hacen que sea muy rápido y fácil lanzar docenas en un par de minutos. Como mencioné, ejecutamos AirBop en la plataforma de Heroku y hemos automatizado la creación / destrucción de nuestra instancia con HireFire, lo cual nos funciona muy bien ya que nuestra carga varía considerablemente e inesperadamente.

Otra cosa a considerar es el soporte técnico. En mi experiencia, el soporte gratuito / incluido de Heroku es inútil, mientras que Engine Yard es muy bueno. EY solía cobrar por el soporte básico, pero comenzó a incluirlo con todos sus planes (además, tienen una opción de prioridad 24/7 disponible). Descubrí que ellos también saben de lo que están hablando.

¡Espero que eso ayude!


Miedoso,

Solía ​​trabajar para Engine Yard, así que déjame darte la información sobre nuestro servicio Engine Yard Cloud (ejecutándose en AWS). Lo dejaré para que haga su propia investigación sobre sus otras opciones.

  1. Seguridad Cada cuenta de Engine Yard Cloud es su propia cuenta completa de Amazon detrás de escena, lo que significa que usted obtiene máquinas virtuales de hardware completo dedicadas a usted para ejecutar su aplicación. Por lo tanto, los atacantes que explotan un desbordamiento de búfer de día cero, etc., en las gemas C, Ruby, pasajeros, linux, etc. de las personas solo obtienen acceso a una sola cuenta. No hay infraestructura compartida en la ruta de datos. Observamos informes de vulnerabilidad de seguridad para todos los elementos de nuestra pila y obtiene nuevos parches automáticamente cuando vuelve a implementarlos. Usted obtiene acceso SSH completo a sus instancias y obtiene un entorno de servidor normal para cuando necesita instalar paquetes como Solr o Sphinx o manipulación de imágenes, etc.

En mi opinión, las máquinas virtuales a nivel de hardware es uno de los fundamentos del éxito de Amazon y por qué nada como esto surgió antes de que las máquinas virtuales maduraran (pero soy parcial porque solía ser un tipo de VMware, y vi que esto sucedía en tiempo real )

  1. Estabilidad Tenemos mucha experiencia con lo que se puede confiar y lo que no se puede en los componentes de Ruby / Rails. Actualmente, en nuestra lista "no desplegar" se encuentran hurones, monstruos y awstats. De lo contrario, heredaremos el tiempo de actividad de AWS porque no tenemos infraestructura compartida en la ruta de datos. El tiempo de actividad de AWS ha sido bastante bueno, pero no trataría de ejecutar una planta de energía nuclear con él por el momento. La fiabilidad de implementación se ha mezclado recientemente: Amazon parece estar un poco más cerca del viento en la utilización de la capacidad, por lo que en algunas ocasiones una solicitud de adición de capacidad fallará y tendrá que volver a emitirse.

  2. Escalabilidad Tenemos algunas aplicaciones grandes que se ejecutan en la nube de Engine Yard. Playmesh tuvo la aplicación número 1 para iPhone en noviembre pasado y aumentó su capacidad para manejarla bien. Hemos comparado incluso una pequeña instancia (4 mongrels) capaz de manejar 85M / Req por mes a carga constante (aplicación muy simple). Recomendamos que las personas se ejecuten en instancias más grandes si desean una gran cantidad de E / S en disco, Amazon proporciona un mejor rendimiento de E / S para tamaños de instancia más grandes. En cualquier caso, agregar o eliminar capacidad es, literalmente, un clic de un botón.

  3. Precio Ejecutar una pequeña instancia (4 mongrels) a tiempo completo por un mes le costará $ 79 en EY Cloud o 0.11 por hora (frente a 8.5 centavos en Amazon desnudo). Esto incluye la gestión de la base de datos, pero pagará una pequeña cantidad por el almacenamiento y el ancho de banda, que Engine Yard Cloud transfiere a costo de AWS. Estamos bastante seguros de que una vez que alcances una cantidad de tráfico razonable, somos un trato excelente.

Permítanme agregar algunos otros criterios que tal vez quiera considerar ...

  1. Soporte -> obtienes soporte de comunidad / foro de forma gratuita, pero también tenemos una opción de soporte con boleto, la opción de soporte premium hace que tu aplicación se vea las 24 horas del día, los 7 días de la semana y te avisaremos cuando la aplicación se cancele. apilar eso es un problema.

  2. Comunidad -> Algunas personas se preocupan por esto, algunas personas no, pero Engine Yard patrocina 2 contribuidores de Rails de tiempo completo, un equipo JRuby de tres personas y el siguiente gen Ruby VM, Rubinius. Estamos comprometidos a ayudar a que Rails y Ruby sean la mejor plataforma para desarrollar aplicaciones web.

  3. Automatización -> solo tienes que mirar la demostración para verla en acción, pero es ordenada. También estamos en versión beta con implementaciones de git de línea de comando, revisa la base de conocimiento para verlo en acción.


Revisé Bitnami, Heroku y Engine Yard y realicé algunas pruebas serias contra heroku y Engine Yard y Engine Yard fue, con mucho, el ganador. Heroku hace algunas cosas realmente raras como limitar los procesos a 250 MB y su respuesta es que tienes que administrar tu propia memoria. Estaba viendo picos serios en el rendimiento en heroku y parece que a veces los procesos simplemente se cuelgan y no se reinician durante un minuto con múltiples dynos en ejecución (eso no se supone que suceda). Además, heroku pone los procesos a dormir si no se están ejecutando. utilizado y hay un problema de inicio extraño incluso con múltiples dynos. Además de la inconveniencia adicional que no pude obtener en los archivos de registro en heroku y averiguar qué está pasando. Después de haber desplegado el mismo código exacto en Engine Yard y verlo gritar sin picos funky en el rendimiento, tengo que decir que Engine Yard es por mucho el ganador y el más fácil de implementar una vez que obtenga la configuración de su sistema. El costo es realmente más económico en Engine Yard que en heroku una vez que comienzas a agregar dynos web y el rendimiento es mucho mejor que si cambias a la pila JRuby. Intenté configurar algo en Bitnami pero, por lo que recuerdo, fue un poco difícil trabajar con él. Creo que heroku es una buena solución si no está preocupado por el rendimiento o la escalabilidad y solo desea implementar una simple aplicación web, probablemente sea más fácil de usar que Engine Yard para ese tipo de cosas.


Son enfoques completamente diferentes.

Heroku es una solución de PaaS de ruby, similar al motor de la aplicación de Google. Le permite escalar una aplicación sin habilidades de administración del sistema, siempre y cuando su aplicación se adapte al ecosistema que proporcionan.

Engine Yard es un servicio más tradicional, que le da acceso a cajas y le proporciona herramientas para hacer su vida más fácil. Como es menos una abstracción, le ofrece más flexibilidad, pero también requiere mayores habilidades de administración de sistemas de su parte.


Supongo que está hablando del alojamiento EC2 de Engine Yard, en lugar de su pila de servicio completo.

Estoy trabajando con Heroku, y me encanta. En cuanto al precio, Heroku es el claro ganador para mí. Los costos del ancho de banda son resumidos por Heroku, que es una gran ganancia.

En los frentes de seguridad, es un poco difícil de decir, que es una de las críticas más comunes de la nube. No tiene mucha información sobre la pila que se ejecuta en ninguno de los servicios.

Heroku ha invertido una gran cantidad en tecnología para monitorear y administrar instancias de aplicaciones sin inconvenientes. Algo sale mal y la instancia se descarta y se inicia una nueva. Cosas maravillosas

En cuanto a la escalabilidad, ambos están respaldados en Amazon y aprovechan EC2 y EBS, por lo que probablemente sea más o menos lo mismo en términos de capacidad bruta.