¿Cuáles serían las ventajas y desventajas de usar Heroku para una aplicación web Django en lugar de otra solución de alojamiento?

Heroku brilla en un par de áreas, a saber, la facilidad de implementación y la capacidad de escalar rápidamente. La desventaja obvia de esto es el costo; Heroku costará algo más que una solución comparable en Amazon Web Services o un servicio similar.

La facilidad de implementación (y mantenimiento) es un gran problema para un equipo pequeño. Con una solución más tradicional, tendrá que trabajar un poco como administrador de sistemas. Hay software para instalar, actualizaciones para probar e implementar, y alertas para monitorear si algo falla. Con Heroku, le estás pagando a alguien más para que se encargue de eso por ti. Eso es algo muy bueno si está tratando de desarrollar e implementar una pequeña aplicación web usted mismo.

Escalar es muy fácil en Heroku: solo mueve un control deslizante. ¡Incluso tienen una aplicación para iOS! Siempre he pensado en una aplicación que escribí que recibe una gran afluencia repentina de nuevos usuarios, de Slashdot o una fuente de noticias de tecnología similar. Si estuviera alojando esa aplicación a través de Amazon, todo lo que podría hacer es a través de un servidor más grande y esperar lo mejor (escala vertical). En algún momento, los servidores no se hacen más grandes.

Con Heroku, podría sacar mi teléfono inteligente o tableta y agregar instantáneamente tantos procesos adicionales como fuera necesario (escala horizontal).

Hablando en términos prácticos, si estuviera desarrollando una aplicación web, preferiría implementarla en Heroku para la fase de crecimiento. Una vez que mi empresa fue rentable, tuve administradores de sistemas en el personal y quise / necesitaba el control adicional que viene con la arquitectura de sistemas interna, entonces buscaría pasar a una solución de alojamiento más tradicional como AWS o Rackspace.

Nosotros en http://www.guitarparty.com solíamos tener un puñado de servidores de espacio en bastidor con ubuntu, y el mantenimiento y la implementación del servidor fueron un gran dolor. Cuando tiene tiempo de ingeniería limitado en un inicio pequeño, cualquier tiempo adicional dedicado a administrar servidores es increíblemente costoso. Esto significa que tiene menos tiempo para desarrollar su aplicación.

Recientemente portamos nuestra base de código para que se ejecute en heroku y realmente nos gusta. Es cierto que es más costoso en comparación con nuestra configuración anterior, pero consideramos que el cambio es obvio ya que podemos concentrar el 100% de nuestro esfuerzo de ingeniería para desarrollar nuestra aplicación.