Jan 21 2009

Easy does it…

I am working on a project that requires some dynamic scaling.  The goal was to have Rails farm out complex processes to Amazon EC2 shards via backgroundrb, and have PoolParty! manage the dynamic scaling.   All good, and what-not, but how was I going to get the new EC2 shards, dynamically loaded by PoolParty!, to get recognized by my web-server?  My first thought was Rinda — specifically, RingyDingy (saving me time on managing connections), but I couldn’t think of a good way of getting the EC2 clients to find the Ring server on my webserver.  Furthermore, how would Rails talk with the Ring server?  Even if I switched out RingyDingy and used Rinda::RingFinger to specify my webserver for the EC2 clients, how would Rails connect?  My first thought was to create a third server that was a backgroundrb server / ring server, and allow Rails to request clients from it.

Then someone on #ruby-lang said I should just have the EC2 clients register and de-register themselves via HTTP GET, and just manage them via a table in my database.

As always, K.I.S.S.

  • Share/Bookmark