Phusion Passenger is an Apache and Nginx module for deploying Ruby and Python web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since mid-2012, it aims to be the ultimate polyglot application server.

Many of you have been waiting for this moment. For some time now we’ve not only been talking about Phusion Passenger 3.2, but also about Phusion Passenger Enterprise. In this Roadmap Preview we’ll cover some features in Phusion Passenger Enterprise, what Phusion Passenger Enterprise exactly is, as well as something about Phusion Passenger 4.0 (previously 3.2). We will reveal more and more Enterprise features in the coming few days in preparation for its final launch, so stay tuned.

Features

Rolling restarts

Don’t temporarily freeze your website when restarting or deploying a new release. In the open source version of Phusion Passenger restarting an application involves shutting down all application processes and spawning new ones. Because starting a new process can take a long time (depending on the application), visitors may experience slow responses while the restart is in progress. With rolling restarts, Phusion Passenger Enterprise restarts your application processes in the background. Phusion Passenger replaces each existing application process one-by-one, without causing any slow responses for visitors.

Some other application servers also provide rolling restarts, but they often still require some manual process management. The rolling restart functionality of Phusion Passenger Enterprise is completely automatic and does not require any administrator setup or intervention. Other application servers may also use up to twice as much memory while restarting, because they first start multiple new application processes before shutting down the old ones. In contrast, Phusion Passenger Enterprise avoids double memory usage by restarting processes one-by-one.

Mass deployment

If you host a lot of different web applicatons on a single server, this feature will be useful to you. Point Phusion Passenger Enterprise to a directory, and it will automatically deploy all web applications in that directory. Each web application will be assigned it’s own virtual host, where the host name is the same as the web application directory name. If you add or remove a web application, Phusion Passenger will automatically pick that up too.

What is Phusion Passenger Enterprise?

Phusion Passenger Enterprise is a commercial, paid variant of Phusion Passenger and it contains a wide array of extra features that many production websites will find useful. Features not found in the open source version. In the coming few days we will announce more and more Enterprise features in preparation for the final launch.

We will charge for Phusion Passenger Enterprise on a yearly basis. Pricing and purchasing options will follow soon, and we can already tell you that there will be discount for startups as well as an early bird discount making it very affordable indeed. The open source version of Phusion Passenger will continue to be developed and maintained. Phusion Passenger Enterprise is based on the open source version and comes with more features. All bug fixes and features that go into the open source version will end up in the Enterprise version.

We intend on making a living out of this. By buying Phusion Passenger Enterprise, you will directly support Phusion Passenger’s continued development by allowing us to allocate more developer resources into this. This in turn allows us to iterate faster on features and bug fixes.

Phusion Passenger 4.0

Phusion Passenger 3.2 was previously the next version of Phusion Passenger with many internal improvements. It has switched to evented I/O core; the ApplicationPool and process spawning subsystems have been rewritten and much improved; and it has gained all kinds of stability features. Because of the many improvements, we deem it appropriate to bump the version number to 4.0. You can read more about what you can expect in Phusion Passenger 4.0 in the following past blog posts:

In the past few weeks, we’ve achieved major stability improvements in the 4.0 branch. We are now running it in production (we eat our own dogfood) and we will release an official beta soon.

Phusion Passenger Enterprise is developed and released in parallel to Phusion Passenger 4.0.

Roadmap

The roadmap is as follows. We will soon release Phusion Passenger Enterprise, of which the first release is based on Phusion Passenger 3.0.14. Shortly thereafter we will release the first beta of Phusion Passenger 4.0, and simultaneously the first beta of Phusion Passenger Enterprise 4.0.

Stay tuned!

Roadmap Preview 2 will follow soon. I know many of you are anxious about the release, but we are just putting the finishing touches on everything to make sure that the launch go well. In the next Preview, due in a few days, we shall reveal more features as well as parts of the new Phusion Passenger website.

You can easily stay up to date with our release progress! Just fill in your email address below and we’ll notify you.

@Kieran: We’re not going to yank current features that are already in 3.0 and force payment.
@jrochkind: We will consider it.

Fooby

I’m curious on how database migrations are handled when using rolling restarts.
Doesn’t this lead to a scenario where the old instances might crash due to schema changes made by migrations, or on the other hand new instances might crash if migrations were not run yet?

Yes it does. We can’t do anything about that. When using rolling restarts make sure that your new schema is backwards compatible.

Eugene K

IMHO, this is great news for the Rails community. I think this will significantly help the growth and adaptation rate, especially among “big enterprise” companies and push it closer to Java and .net for “mission critical” applications. Adding commercial model means that Phusion has grown up and has serious intention and vested monetary interest to stay around. This is what “big enterprises” are looking for. I would encourage adding sales staff (even part time will do) who can answer questions, work with accounting, handle purchase orders (PLEASE do not limit yourself accepting to credit cards only); as well as clear and public terms of use, contracts, and pricing for the server and the premium support.

We hear you loud and clear 😉 In addition to credit card payments, we will also accept other payment methods e.g. wire transfer. Having enjoyed a background in open source, we also intend on being as transparent as possible when it comes to the issues you’re addressing with regards to terms and pricing. Thank you for sharing your thoughts and please feel encouraged to contact us should you have any concerns, we’d be more than happy to see if we can address them.

This is very cool, and we use Passenger for deployments for clients on multiple occasions — this will just make it better.

However, there is a feature I am missing most of the time, esp. for our staging/testing servers: multiple Ruby versions support. I know, I know, I can do it with Passenger Standalone or Unicorn or Thin or whatever, but it’s nowhere as great as Passenger integrated with Apache/Nginx.

@Hubert: That is already available in Phusion Passenger 4.0 pre-beta, as available on Github. It will be available in Phusion Passenger Enterprise 4.0 beta. See the blog posts on Phusion Passenger 3.2 (now called 4.0).

“Phusion” and “Phusion Passenger” are registered trademarks of Phusion. “Rails”, “Ruby on Rails” and the Rails logo are registered trademarks of David Heinemeier Hansson. All other trademarks are property of their respective owners.