4 ms·
Introducing Phusion Passenger 5 beta 1, codename “Raptor”
- philnash 12y agoI'm a little disappointed. Not that it was a marketing stunt, that was clear from the outset, and it worked well. I'm disappointed they're dropping the Raptor name, it just sounds so much better than "Phusion Passenger".
- natejenkins 12y agoDoes Passenger 5 support hot reloading? This was the reason I switched to Unicorn a few years ago.
- FooBarWidget 12y agoYes, in the paid version, and it does so better than Unicorn (less memory usage, more efficient, more robust, better error reporting). See https://www.phusionpassenger.com https://www.phusionpassenger.com for details.
- pselbert 12y agoThey support phased restart, more in line with how puma does a full reload. This is more useful IMO, provided you have multi threading enabled. With pure process concurrency you have a higher memory overhead though, as the master doesn't preload the app before forking, preventing copy on write savings.
- jsnk 12y agoI am glad this wasn't just a vapourware. Given that it's an improved Passenger, I can believe all the hype. [edit] Actually trying it out on my dev machine right now. I am getting a random error that I normally don't get with thin server. Doesn't play well with pry either right now. I'll wait a bit until it goes out of beta.
- FooBarWidget 12y agoPlease report any problems to the Phusion Passenger discussion forum: http://groups.google.com/group/phusion-passenger http://groups.google.com/group/phusion-passenger
- cookrn 12y agoPassenger does not "play well" with vanilla Pry at all. This is simply the result of the way that it works. I would recommend using pry-remote [0] if your app is running inside of Passenger. [0] http://rubygems.org/gems/pry-remote http://rubygems.org/gems/pry-remote
- jhonovich 12y agoHow much of an improvement is Passenger 5 over Version 4?
- FooBarWidget 12y agoA lot. It's much faster. Learn more at http://www.rubyraptor.org/ http://www.rubyraptor.org/ and http://www.rubyraptor.org/how-we-made-raptor-up-to-4x-faster-than-unicorn-and-up-to-2x-faster-than-puma-torquebox/ http://www.rubyraptor.org/how-we-made-raptor-up-to-4x-faster... It has better tooling for helping you to identify and solve problems.
- NatW 12y agoThey've blogged about their enhancements here: http://www.rubyraptor.org/how-we-made-raptor-up-to-4x-faster-than-unicorn-and-up-to-2x-faster-than-puma-torquebox/ http://www.rubyraptor.org/how-we-made-raptor-up-to-4x-faster... and Part II: http://www.rubyraptor.org/pointer-tagging-linked-string-hash-tables-turbocaching-and-other-raptor-optimizations/ http://www.rubyraptor.org/pointer-tagging-linked-string-hash...
- whizzkid 12y agoI just installed this to our test server and impressed by results actually We had 100 req/sec on our 2gb test server. We got 170 req/sec without any tuning by using the same config Im sure i can tune it little more to get it to 200 req/sec, which is a lot improvement to previous version. Well done guys!
- xinuc 12y agoAs a happy and satisfied Passenger Enterprise user, I'd say that Passenger does deserve a better attention from ruby community. Just because it's (too) easy to use, doesn't mean it can't perform well. We still use version 4 and benchmark it with unicorn and the likes, and we found no noticeable different on performance, except the fact that it's easier to configure and manage.
- shawabawa3 12y agoI'm really disappointed zero downtime restarts are still an enterprise only feature. I absolutely cannot justify spending $30/server month on passenger - that's more than the boxes I'm running it on cost - and zero downtime restarts are a must-have for me.
- FooBarWidget 12y agoIf you are on a tight budget then maybe you are eligible for the startup discount. Phusion offers this discount as a genuine effort to help cash-strapped startups and students. The Phusion Passenger website has more info.
- tbarbugli 12y agoyou can setup 2 procs behind a reverse proxy and restart one proc at the time
- sandstrom 12y agoIf behind a load balancer you can handle this at the instance level, i.e. rotate out, restart, put back in. Depends though, sometimes this is a nifty alternative, in other cases it may not be a substitute at all.
- vidarh 12y agoSo put it behind haproxy, or any number of other reverse proxies. There are many ways of doing it, depending on how "fancy" you want to be, but haproxy's stats socket gives you plenty of options for how aggressively to shunt traffic away from a backend. You can then restart your backend however you want.
- grandalf 12y agoI thought the marketing campaign was clever. Trying to give it a try and can't seem to find the gem name and example Procfile configuration.
- FooBarWidget 12y agoGem name is 'passenger'. See the documentation for installation instructions. Example Procfile configuration: https://github.com/phusion/passenger-ruby-heroku-demo https://github.com/phusion/passenger-ruby-heroku-demo. Note that the demo locks down to Phusion Passenger 4 by default. If you want to try 5, don't forget to bump the version number in the Gemfile.
- MattRogish 12y agoWe've been using Passenger at RailsMachine.com since they released it, and have always been impressed with the team and the performance of the product (across hundreds of customer applications on thousands of app servers) over the years. I had been following Raptor and actually had no idea it was by the Phusion folks. Guess I didn't pay close enough attention! Very excited to test the betas and see how it performs across our network. In benchmarks with customer's systems against Passenger4, Puma, and Unicorn, we have not seen anything that would suggest a general-case migration to any of those would be advisable for apps without a specific workload reason. We have a number of folks on the Enterprise product, primarily for zero downtime restarts. I think "Immutable Infrastructure" plus load balancer support would negate the need for this, if you've got the orchestration in place. I'm curious how Phusion responds to that becoming more and more popular/prevalent.
- meesterdude 12y agoah-ha! it was Phusion all along. very clever marketing efforts. I wish they could have traded on just the facts, but it's clear they got more buzz taking this path. Kudos to them!
- rubiquity 12y agoI'm always disappointed when an open source-ish tool has to market itself. Unicorn didn't market itself. Its users marketed Unicorn because it worked/works so well. I also don't think the comparisons Raptor is doing are fair. You're comparing an application server with a cache against just application servers. Also, I would expect Raptor's memory usage to be higher once that cache starts to fill up, or maybe you've created a super small cache just for "Hello World" apps. People aren't avoiding Passenger because "it's too easy to use", a lot of people avoid Passenger because you're a weird company. Application servers are very important, perhaps too important to be tied to a commercial entity. I applaud you on the work (code-wise) you've put into this and I hope the entire Ruby community as a whole benefits from it, like you claim we have with older versions of Passenger (which kinda seems like revisionist history to me, but oh well).
- steveklabnik 12y ago> Unicorn didn't market itself. You don't remember "I love Unicorn because it's UNIX?" http://tomayko.com/writings/unicorn-is-unix http://tomayko.com/writings/unicorn-is-unix as well as GitHub's postings about using Unicorn? I admit this particular campaign makes me a bit... unhappy. But every open source project does marketing, explicit or implicit.
- rubiquity 12y agoWas Ryan Tomayko involved in Unicorn? My point was that it would be different if Eric Wong wrote a post like that. Ryan Tomayko taking the time to write that post is exactly my point: good tools spread by having users that love them.
- whistlerbrk 12y agoI think that's why he mentioned "implicit" marketing. In this day we're often fond of saying "the best products market themselves" but that usually means through evangelism via it's users.
- xinuc 12y ago
- davidw 12y agoWhat I liked about Passenger from the get-go is that it figures out how many instances to keep active, given some initial parameters and how much traffic you're getting. That is so much more right than what others were doing back then, which was just starting N instances and hoping N was a good number.