Hello,

We are the SlapOS team, from Nexedi (editor of ERP5, a Zope-based ERP/CRM), and we feel that it is time for us to show you what we have built with Buildout so far.

We've been working for more than a year with Buildout to create a Distributed Cloud Computing OS.
But before that, I would like to thank you for making Buildout, which has really helped us a lot. We are very happy users of buildout and we try to promote it outside Nexedi.

Let me quickly explain you the project. 

One of the idea behind SlapOS came from the fact that we had to deploy ERP5 on environments we did not control. We started to use buildout heavily to provide a complete ERP5 stack from the ground up, only relying on the glibc to have stable instances and compiling every dependency to handle differences between distributions. We thought we could generalize the idea to a point we can deploy any kind of software, on any UNIX OS.

One other idea behind SlapOS is that we think that classical, centralized cloud is not resilient enough to provide the kind of high availability which most cloud vendors promise but do not achieve in reality. We have two solutions for this problem : putting all intelligence to end point and letting the (buildout) recipe choose for re-instantiation in another datacenter/computer if current service is too bad, or is dead, and putting most of the servers out of the datacenter : at home, in offices, and everywhere you can put them in. Thus creating a *really* distributed cloud computing system.

Of course, everything we did is Free Software.

We made Buildout the central part of SlapOS, using it to deploy software and instances. Let me explain.
First, we install a software on a computer using Buildout profile like this one : 
http://gitorious.org/slapos/slapos/blobs/master/software/mysql-5.1/software.cfg
Here, the whole software and all its dependencies get installed. At this point, software is not usable, because there is no configuration file, i.e MySQL and dependencies is installed but no database, configuration, user or anything exist.

Then, we can request deployment of many instances of this installed software using this kind of Buildout profile :
http://gitorious.org/slapos/slapos/blobs/master/software/mysql-5.1/instance.cfg
And this kind of recipe : 
http://gitorious.org/slapos/slapos/blobs/master/slapos/recipe/mysql/__init__.py

It will reuse installed software by creating wrappers, configuration files and anything specific to an instance. In the case of MySQL, it will create a database with possibly data in it, user, and configuration file. You can then deploy several independent instances based on the same software.


We made a couple of improvements in Buildout, at least for us. We will write soon in other topics in this mailing list to see if it can be integrated in Buildout repository. If you think we can help in a better way or contribute to buildout in a better way, please let us know. We will be happy to help.

We also wrote a page to explain our views on buildout for SlapOS : http://www.slapos.org/wiki/slapos.Why.Buildout. Here we explain in detail why we choose Buildout in the first place, and we try to show that some critics of buildout are not well formed.

If you are interested in the internals of the project, we can provide you more SlapOS materials. We are in the phase where a lot of documentation is getting written, and SlapOS is becoming usable in production sites.

Best regards,
The SlapOS Team

-----------------
Cédric de Saint Martin,
SlapOS Community Manager @ Nexedi