Ezra Zygmuntowicz, founder of EngineYard and Merb developer, presented his latest project—Vertebra—at RailsConf 2008. The presentation slides are available on Ezra's blog.
He describes Vertebra as
Vertebra is a fairly large scope project. It is best described as a next generation Cloud Computing Platform. Built with Erlang/Ruby and centered around Ejabberd and XMPP. Vertebra can be used for automating the cloud as well as for distributed real time application development. The whole idea of Vertebra is to democratize the cloud, abstracting the cloud interface API's and allowing folks to utilize multiple cloud providers based on a number of cost/benefit factors. It also has large potential for enterprise integration projects. If you have some old legacy service that needs to join a modern architecture, you can write a simple agent to get your legacy service on the Vertebra message bus where it can be addressed by anything else on the message bus in a standard way.I can't wait to see this in action and best of all it will be available under an open source GPL license.
Vertebra itself is the 'backbone' of a new platform. We are using it to automate many many servers, but it also has big implications for application developers working on the real time web. It is basically an integration system, any language with an XMPP library that implements our protocol can join the XMPP cloud and become part f a larger organism of machines and services.
So Vertebra will come with tools for automating deployment of applications and virtual servers in the cloud. But will also be useful as a backend messaging and distributed computing system that runs behind web apps, giving them powerful tools for running compute heavy jobs in parallel ala map/reduce. It will also allow for dispatching based on least loaded nodes. Say you get a request to your web app that includes some image processing and you have a farm of 20 backends that can process images. When you get the request to your web app, you make a call to vertebra asking for the least loaded node that can service this particular request, vertebra returns a list of least loaded nodes and allows you to dispatch based on this or many other factors.
You can get more details here: http://brainspl.at/articles/2008/06/02/introducing-vertebra