

Phusion Passenger 4.0 Release Candidate 4 – Phusion Corporate Blog - Ruphin
http://blog.phusion.nl/2013/03/05/phusion-passenger-4-0-release-candidate-4/#.UTX0dkXh9so.hackernews

======
neya
Can someone please explain what are the benefits of using Phusion passenger
over Unicorn? Just (genuinely) curious..

~~~
FooBarWidget
Here's a short list of things Phusion Passenger 4 supports that are not found
in Unicorn or implemented better than in Unicorn:

\- Support for multiple Ruby interpreters inside the same instance. But to be
fair Unicorn is designed to be run in a different way so this may or may not
be an advantage for you.

\- JRuby support.

\- Python support, and in the future more languages.

\- Dynamically adjust the number of processes based on traffic.

\- Real-time disk-backed response buffering, first introduced in 4.0 beta 1.
Unicorn relies on web server buffering which tends to buffer the entire
response before sending it to the client. Phusion Passenger 4 allows you to
use Rails 4 streaming with ease, without blocking the server on slow clients,
with good performance and without configuration.

\- Phusion Passenger Enterprise supports multithreading, allowing you to use
it for I/O-bound, long-running requests. Unicorn is strictly single-threaded
multi-processing only and can only be used for short-running fast requests, by
design.

\- Rolling restarts (as implemented in Enterprise) are more automated and
efficient than in Unicorn. Phusion Passenger Enterprise restarts processes
one-by-one and only requires 1 config line. Unicorn's rolling restarts
temporarily requires double memory. You can make it restart one-by-one but it
requires manual scripting work involving signals.

\- Out-of-Band Work. This is like Unicorn's Out-of-Band GC, but is more
flexible: you can perform any arbitrary work (not just GC), and it also works
with multithreaded programs. Phusion Passenger also spawns a new process
before performing Out-of-Band Work so that your visitors never have to wait.
\- Deployment error resistance (Enterprise feature). \- Live IRB console
(Enterprise feature). \- Commercial support with guaranteed response times.

I wrote this response quickly so I may have missed some things. If anybody
spots any inaccuracies, please let me know.

~~~
cmer
I think you're actually missing the main reason why people use Passenger: ease
of deployment.

Not having to manage Unicorn forks, processes, sending USR2 signals etc is the
reason why I use Passenger. I personally couldn't care less about the fancy
features.

~~~
purephase
While I can concede the initial setup, once you've got it all scripted, it's
not that bad. Either mina or capistrano make managing unicorn fairly painless.

As to the Phusion release, congrats. While I use unicorn, I always welcome
alternatives. It means the ecosystem is healthy.

