Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why would I want to use unicorn or thin instead of WEBrick for development purposes?

I've recently found that some people prefer using unicorn_rails instead of the default WEBrick as a web server for developing Rails applications.

I understand that if I wanted to use unicorn in production, it could make kind of sense to try it out in development, but since the configuration is different in production, is it even relevant?

Is there any real, tangible advantage that I would get from using thin or unicorn instead of WEBrick for developing a Rails application, such as speed or some additional features? Or is this just a matter of personal preference?

like image 377
Jakub Arnold Avatar asked Mar 27 '12 13:03

Jakub Arnold


2 Answers

It is important to develop as closely as possible to the production environment. It helps ensure that an application will work as expected when deployed into production, instead of stumbling upon bugs at runtime.

This issue is alleviated with the use of Continuous Testing on a Build server that replicates the production environment. Even though you are not actively developing on an identical environment, the Continuous Testing gives you coverage that the application is functioning in the expected way.

As to speed, the performance hit running a Rails app in development mode will negate any benefit the various web servers brings.

like image 53
mguymon Avatar answered Nov 17 '22 15:11

mguymon


In addition to the other answers giving a pretty good overview already, there is also a technical reason you might want to consider using unicorn over WEBrick:

WEBrick does not support subdomains. Support for HTTPS is rather hacky to implement.

So if you have an SaaS application using subdomains, or if you simply want to have admin/api/... subdomain, then WEBrick is not an option. There is POW for Mac OS X, but this won't work for Linux developers.

like image 5
emrass Avatar answered Nov 17 '22 14:11

emrass