Please stop making your comparisons sound as if passenger-free was a fully functional application server such as unicorn or puma. It is not.
Passenger-free is a deliberately crippled demo-version. If someone wants to use passenger in production they will have to pay $50 USD per year, per server for it. And you know that very well.
The 'free' passenger drops requests and serves 502 errors to the users during every single deploy.
That's equivalent to popping up shareware nag-screens into my face at random intervals. Except phusion passenger doesn't nag me, it nags my customers.
You call the avoidance of these errors a 'feature' ('rolling restarts') that must be paid for.
For some reason your helpful comparisons never mention that both unicorn[1] and puma[2] ship with this basic functionality out of the box. One could almost think it is part of your sales strategy to have people notice this little 'limitation' only after they already deployed your product to production...
I've been using Passenger since it was called Apache mod_rails http://www.concept47.com/austin_web_developer_blog/ruby-on-r... you have to remember that before the Phusion guys showed up, there was no easy way to run a rails server without proxying requests to mongrel, thin or something like that. instances could bloat in memory or die and your app could, for whatever reason, go down and you wouldn't know it. Did I mention that rails apps were also pretty slow back then?
They made deploying and maintaining rails an order of magnitude easier with Passenger, first with the mindblowingly simple installation process and later by introducing ideas like killing and spinning up new app instances after xxx requests, or spinning instances up or down depending on activity. All this with simple configuration switches out the box. Even the advances in Passenger 4 are pretty amazing (threaded mode, and out-of-band garbage collection, come to mind)
What I'm saying is, they've done a lot for the Rails ecosystem and while I'm not a fan of their new pricing strategy with Passenger or their marketing tack with Puma posts on this thread, I think its worthwhile to be a bit more gentle in chiding them because of their peerless contributions in the past ... plus their link is actually a very well written comparison
Unicorn improved upon Mongrel in many ways, and it is interesting technology. We know, because we are Unicorn contributors ourselves (take a look at the AUTHORS file). However Phusion Passenger did not stay behind. Since the introduction of Unicorn, we introduced Phusion Passenger Standalone, which allows you to use Phusion Passenger in a Unicorn-like manner (e.g. you can attach it to an Nginx reverse proxy, and it uses a Unicorn-like architecture). Since then, we've even improved upon Unicorn. For example, the out-of-band garbage collection that Unicorn has? We've made it better with out-of-band work. Administration tools for querying the status of workers? passenger-status and passenger-memory-stats do it better than Unicorn. Python support? Not in Unicorn. And so on.
Phusion Passenger is used to full satisfaction by many large parties, such as Motorola, UPS, Hitachi, etc. So if you can point out technical reasons why you think our product is "mediocre", please feel free to tell us, and we'll fix them.
Most apps where you would be concerned with downtime have load balancers in front of them. This isn't burning fire you make out because you can pull one app server out of the pool, restart and then put it back in once it is restarted. We do this by using keepalived and renaming a chk.txt file in the root.
Moe, I don't understand where your hostility comes from. It is fine if you don't like Phusion Passenger, but please don't say things that are untrue.
The open source version of Phusion Passenger is not a crippled version. It is used in production by many large users, including New York Times, AirBnB, etc. Your statement that the open source version is "crippled" goes right against the fact that we've been actively developing the open source version ever since Enterprise came out. In fact, open source development has become more active after Enterprise than before, thanks to Enterprise funds. If you check our commits at Github you will see that the rate of development has accelerated. If you take a look at all the new features in the open source version of Phusion Passenger 4 you will see that it is improving at a tremendous rate.
It is not true that the open source Phusion Passenger drops requests and serves 502 errors to users on every single deploy. Upon touching restart.txt, the open source versions blocks requests and resumes them after having restarting 1 process. The blocking only happens for the first process, not for the ones after. At no point will requests be dropped or will errors be served. We even have integration tests in place to check for this. If you see request drops or errors in the open source version, please contact us and we'll have a better look at the problem. If it's a bug, we'll fix, it's that simple.
"popping up shareware nag-screens at random intervals" is completely false. There are absolutely no nag-screens in Phusion Passenger. The open source version of Phusion Passenger is open source, so if you don't believe me, then dig into the source code and tell me where exactly the nag screens are.
The lack of rolling restarts in the open source version is not a secret. Our documentation clearly mentions the differences between the open source and the Enterprise version. With a few clicks, you can find out what the open source version does and does not have.
And actually, the open source version does not "lack" rolling restarts, it just does not automate it for you. You can implement rolling restarts using Phusion Passenger Standalone (open source version!) in the same way you do with Thin and Mongrel, i.e. by swapping sockets. It works fine and some of our users do exactly this. It is just more work than the automated, polished, error-resistant version that Enterprise offers.
And finally, you Unicorn and Puma "fully-functional" while implying that Phusion Passenger is not. This is not true. There are features in the open source version of Phusion Passenger that Puma and Unicorn does not have. The reverse is also true. It is even true that Unicorn has some features that Puma has and vice versa.
I'm pretty sure you literally said "popping up shareware nag-screens at random intervals" instead of "that's equivalen to", but whatever, I'll take your word for it, in good faith, that you did not edit your post and that I read your post wrong.
Like I said before: errors during redeploy are not supposed to happen even in the open source version, and if they do happen then we are very interested in fixing them. Please tell us more. There is no need to spin this as being "dishonest". If you don't believe us, tell us about your problem, let us fix it, and verify for yourself that it is fixed. Only the facts matter.
So what does that mean? Experiences differ, for all sorts of reasons, some legit and some not (e.g. inefficient configuration). Neither kinds of posts automatically mean that Unicorn/Phusion Passenger is bad: there will always be people having problems with a particular technology. That's why we encourage people who have problems to contact our support forum.
I'm pretty sure you literally said "popping up shareware nag-screens at random intervals" instead of "that's equivalen to", but whatever, I'll take your word for it, in good faith, that you did not edit your post and that I read your post wrong.
Wait, what...
You edited this line into your reply hours after you initially posted it. Hoping I would miss it or something?
And in this very edit you have the nerve to suggest I edit my comment after the fact to spin shit around?
Look at the position of the 'popping up' phrase in my post. How would saying it in any way other than it's written make any sense, syntactically?
And why would I claim passenger pops up literal nag screens, when everyone knows that's complete nonsense?
I do appreciate you showing your true colors in this thread. I'll make sure to link to it every time I run into one of your 'PR excursions' in the future.
In other news: I've been asking other online communities as well in the hope of finding other users who have experienced the kind of problem you reported (http://www.reddit.com/r/ruby/comments/1lceav/ask_rreddit_doe...). Unfortunately I haven't received a single answer so far. Any feedback from you about the nature of the problem would be greatly appreciated.
Passenger-free is a deliberately crippled demo-version. If someone wants to use passenger in production they will have to pay $50 USD per year, per server for it. And you know that very well.
The 'free' passenger drops requests and serves 502 errors to the users during every single deploy.
That's equivalent to popping up shareware nag-screens into my face at random intervals. Except phusion passenger doesn't nag me, it nags my customers.
You call the avoidance of these errors a 'feature' ('rolling restarts') that must be paid for.
For some reason your helpful comparisons never mention that both unicorn[1] and puma[2] ship with this basic functionality out of the box. One could almost think it is part of your sales strategy to have people notice this little 'limitation' only after they already deployed your product to production...
[1] http://www.justinappears.com/blog/2-no-downtime-deploys-with...
[2] http://blog.nicolai86.eu/posts/2013-02-06/phased-restarts-us...