rails ocean digitalocean deploy app ruby-on-rails heroku capistrano

ruby-on-rails - ocean - ruby on rails nginx



Despliegue en Heroku con Capistrano? (1)

Todavía me estoy acostumbrando al ecosistema de desarrollo de Rails. Recientemente aprendí a usar capistrano para implementar en mis servidores usando Apache y el pasajero, y me encanta cómo puedo poner un conjunto bastante complejo de instrucciones de implementación en mi deploy.rb para que se ejecuten con una sola llamada "cap deploy", con una reversión automática si algo sale mal.

Ahora estoy buscando implementar mi proyecto en Heroku, y esperaba poder usar capistrano para mis implementaciones allí. Pero no he podido encontrar ninguna documentación sobre cómo hacer esto. ¿Es posible? ¿Hay tareas capistrano que me permitan automatizar implementaciones en Heroku?

¿Esto tiene sentido? Después de todo capistrano funciona de una manera específica (ssh en el servidor) y asume una estructura de directorio específica (public / releases / shared etc). Ambas cosas no son posibles con Heroku hasta donde yo sé. Pero aún me gustaría tener la conveniencia de capistrano. Sé que puedo poner los pasos necesarios para mi implementación (git push / migrate / restart resque workers ...) en una sola tarea de rake, y tendría la comodidad de implementar con una llamada a un solo comando; pero no tendría el beneficio de las transacciones y retrocesos de capistrano, que son muy importantes en mi mente.

Probablemente me esté perdiendo algo muy básico sobre cómo encajan estas tecnologías. Me sorprende un poco no he podido encontrar ninguna discusión sobre este tema en cualquier lugar. ¿Alguien puede compartir sus experiencias?


Heroku usa Git para el despliegue, y no es amigable. De hecho, la filosofía en sí misma es diferente: Heroku no tiene "servidores" donde pueda hacer SSH o personalizar el servidor según sus necesidades.

Heroku usa Dynos, que son instancias predefinidas, con una arquitectura de implementación específica que cubre la mayoría de las necesidades de implementación de Rails. Puede hacer acciones como Rollbacks, copias de seguridad, migraciones, etc. con Heroku, en algunos casos, scripts de Capistrano más sofisticados que los normales.

A menos que su configuración sea bastante diferente, puede usar Heroku for Rails de manera segura (con solo Git, por supuesto). Si no, AWS es mejor apuesta.