RubyWorks 0.0.1 - early preview alpha "who knows, it may actually work" release of Rails production stack for RedHat and CentOS Linux

Dear world at large,

In the spirit of "release early, release often", with special emphasis
on "early", we are making available to you RubyWorks 0.0.1.

RubyWorks is a yum repository (collection of binary RPM packages) that
provides all software components needed to host a Rails application on
a RedHat Enterprise Linux 4 or CentOS 4, pre-configured and ready to
go.

Usage scenario for this product is as follows:

1. Point your package manager (up2date or yum) to
http://rubyworks.rubyforge.org/RPMS/i386

2. Type "up2date rubyworks" ("yum install rubyworks" on CentOS)

3. Sit back and relax. Two minutes later you can browse to
http://localhost:3001 and see a Welcome To Rails page, served by a
cluster of four Mongrels, running in production mode, proxied behind
HAProxy and monitored by monit.

4. Automatically get upgrades, bug fixes and security patches, tested
for backward-compatibility with a specific minor version of Rails (1.2
at present).

5. Live happily ever after...

As the version number (and, indeed, the title of this message)
suggests, this is an early release. Our primary intention is that
people who have a need for something like this have something to look
at and tell us about anything wrong or missing.

On the other hand, it works as advertised on developers' computers, so
if you need to deploy Rails on CentOS or RHEL today, you now have a
choice of spending half a day to set everything up manually, or half
an hour to install RubyWorks.

Further details are at http://rubyworks.rubyforge.org

If you are attending RailsConf this weekend, and want to talk about
this project, feel free to seek me out in corridors, or leave me a
note at ThoughtWorks booth. Especially if you think that RubyWork
sucks - I will be delighted to hear about it. Honestly, that's what
versions 0.0.1 are for.

I'm also doing a talk on Saturday in Products & Services track, which
will cover hows, whys and the bright future of RubyWorks (hint: it's
not just a bunch of RPMs and a phone number, nor a rerun of J2EE in
Ruby).

With crossed fingers,
Alexey Verkhovsky
RubyWorks team
ThoughtWorks

Dear world at large,

In the spirit of "release early, release often", with special emphasis
on "early", we are making available to you RubyWorks 0.0.1.

RubyWorks is a yum repository (collection of binary RPM packages) that
provides all software components needed to host a Rails application on
a RedHat Enterprise Linux 4 or CentOS 4, pre-configured and ready to
go.

Usage scenario for this product is as follows:

1. Point your package manager (up2date or yum) to
http://rubyworks.rubyforge.org/RPMS/i386

2. Type "up2date rubyworks" ("yum install rubyworks" on CentOS)

3. Sit back and relax. Two minutes later you can browse to
http://localhost:3001 and see a Welcome To Rails page, served by a
cluster of four Mongrels, running in production mode, proxied behind
HAProxy and monitored by monit.

4. Automatically get upgrades, bug fixes and security patches, tested
for backward-compatibility with a specific minor version of Rails (1.2
at present).

5. Live happily ever after...

As the version number (and, indeed, the title of this message)
suggests, this is an early release. Our primary intention is that
people who have a need for something like this have something to look
at and tell us about anything wrong or missing.

On the other hand, it works as advertised on developers' computers, so
if you need to deploy Rails on CentOS or RHEL today, you now have a
choice of spending half a day to set everything up manually, or half
an hour to install RubyWorks.

Further details are at http://rubyworks.rubyforge.org

If you are attending RailsConf this weekend, and want to talk about
this project, feel free to seek me out in corridors, or leave me a
note at ThoughtWorks booth. Especially if you think that RubyWork
sucks - I will be delighted to hear about it. Honestly, that's what
versions 0.0.1 are for.

I'm also doing a talk on Saturday in Products & Services track, which
will cover hows, whys and the bright future of RubyWorks (hint: it's
not just a bunch of RPMs and a phone number, nor a rerun of J2EE in
Ruby).

Being unavailable on RHEL 4 is not the only problem with
mod_proxy_balancer (although the most obvious one).

Another problem is that it has no idea that downstream server
(Mongrel) is essentially single-threaded, when it's running Rails. So,
when one of your (say) four Mongrels is stuck on a deadlock or an
endless loop, you are losing every 4th request, i.e. all of your users
experience downtime. Even if it's just a long-running request, it
makes other requests long-running.

RubyWorks setup doesn't have that problem, because HAProxy is
configured to send one request at a time to any given Mongrel. When
one node in the cluster gets stuck, all subsequent requests are
routed to other nodes.

HAProxy is also somewhat better than mod_proxy_balancer at dealing
with cluster nodes going up and down while under heavy load.

To be fair, the downside of HAProxy is that it's yet another process
to manage, and yet another socket. I personally think, the trade-off
is still worth it.