Phusion Passenger 4.0 and Phusion Passenger Enterprise
blog.phusion.nl
blog.phusion.nl
These guys deserve to make a good living from this product as its made a profound difference to the Ruby community which i think sometimes gets taken for granted.
It is true that Phusion Passenger Enterprise addresses rolling restart, but its Unicorn counterpart is not preload_app. Phusion Passenger's "smart spawning" works by first loading the app into a master process, then forking off multiple worker processes from that. Sounds familiar? That's because it's exactly the same as Unicorn's "preload_app true". Our implementation predates Unicorn.
Preloading/smart spawning in itself does not prevent app deployments from blocking clients. Rolling restarts do.
We also do rolling restarts in a different way than Unicorn does it: Unicorn works by starting a set of workers in the background, then replacing the existing ones. This means that during a rolling restart, Unicorn may require twice the memory usage. Phusion Passenger Enterprise will restart processes one-by-one and will impact memory less.
There are no _technical_ security differences between nginx+unicorn and Phusion Passenger. Both of them rely on a frontend web server to shield them from slow clients and maliciously formed requests, and neither of them run application processes as root. There are no known exploits in either tools. However Phusion Passenger makes it easy to run different apps as different users through the builtin "user switching" security feature. With Unicorn you have to do this manually by running the processes as the right user.
But when it comes to reliability, we will be announcing a feature called "deployment error resistance" in the next Roadmap Preview.
Please sign up to the Roadmap Preview mailing list, and we'll keep you up to date with the latest release progress: http://eepurl.com/nXXrL
When I see "traditional" I start wondering if it means fcgi or Mongrel.
There have been quite a few traditions.
The same goes with user switching, you can just use Ruby to do it (example at the bottom of https://gist.github.com/206253).
Unicorn also already has "error resistance" in that it won't switch to a master/workers that aren't booting properly during a restart.
In the above scenario there are just way too many parts.
Having Passenger being an all-in-one solution is pretty great.
I think most people with most apps can be very happy with Passenger.
I have been very pleased with Phusion Passenger and eagerly look forward to 4.0 and the pricing for Enterprise.
can you give us the info about the pricing scheme? how much the passenger enterprise will cost?
We'd also love to know what other features you want to see in Passenger :)