ruby on rails - run - ¿Por qué querría usar unicorn o thin en lugar de WEBrick para propósitos de desarrollo?
ruby on rails puma server (4)
Además de las otras respuestas que ya brindan una visión general bastante buena, también hay una razón técnica por la que podría considerar el uso del unicornio sobre WEBrick:
WEBrick no soporta subdominios. El soporte para HTTPS es bastante difícil de implementar .
Entonces, si tiene una aplicación SaaS que usa subdominios, o si simplemente desea tener el subdominio admin / api / ..., WEBrick no es una opción. Hay POW para Mac OS X, pero esto no funcionará para los desarrolladores de Linux.
Recientemente descubrí que algunas personas prefieren usar unicorn_rails
lugar del WEBrick predeterminado como servidor web para desarrollar aplicaciones de Rails.
Entiendo que si quisiera usar unicornio en la producción, tendría sentido probar el desarrollo, pero como la configuración es diferente en la producción, ¿es incluso relevante?
¿Hay alguna ventaja real y tangible que obtendría al usar thin
o unicorn
lugar de WEBrick para desarrollar una aplicación Rails, como la velocidad o algunas funciones adicionales? ¿O es solo una cuestión de preferencia personal?
Es importante desarrollar lo más cerca posible del entorno de producción. Ayuda a garantizar que una aplicación funcione como se espera cuando se implementa en producción, en lugar de tropezar con errores en el tiempo de ejecución.
Este problema se alivia con el uso de pruebas continuas en un servidor de compilación que replica el entorno de producción. A pesar de que no está desarrollando activamente en un entorno idéntico, las Pruebas Continuas le brindan la cobertura de que la aplicación está funcionando de la manera esperada.
En cuanto a la velocidad, el impacto en el rendimiento de la ejecución de una aplicación Rails en modo de desarrollo anulará cualquier beneficio que traigan los distintos servidores web.
Mi experiencia personal es que Unicorn es mucho más rápido que WEBrick cuando usa una máquina remota (ubuntu, 4 cores, 8G mem, se conecta a través de VPN -> ssh) como su entorno de desarrollo (como lo hago yo) - veo sub-1 segundo los tiempos de carga de la página con Unicorn, mientras que WEBrick toma de 3 a 5 segundos o más. No estoy seguro de por qué, puede que tenga más que ver con mi red que con cualquier otra cosa, pero eso es lo que veo personalmente.
No he usado Thin para el desarrollo, ya que he leído que requiere una gema adicional para permitir la recarga de la clase en modo de desarrollo (no puedo validar personalmente la precisión de eso). Además, estoy más familiarizado con Unicorn y lo uso en producción.
Mi experiencia personal es que WEBrick es más rápido en mi entorno de desarrollo que Unicorn y Thin (OS X) en una aplicación bastante grande de Rails (muchas gemas, rutas, etc.). Pero debe medirlo usted mismo, con su aplicación en su máquina para ver (probé utilizando ab y utilizando las herramientas de desarrollo de Chrome).
Sin embargo, usar el mismo servidor en producción y desarrollo es una muy buena idea.