Hello Launchpad hackers! For a long time I've dreamed of a development environment that could easily spin up and down multiple lightweight containers wrapped around different service components. One way of doing this is with a tool called Vagrant [1], which will let me specify a base VM image for Virtualbox and then run chef or puppet recipes to configure the VM to match my webapp requirements and then automatically mounts my project source directly to be accessible inside the VM, does port mapping, and other magic. It's amazing, a little too heavyweight, doesn't scale to multiple containers to match production. You can see a toy project I did using Vagrant [3], it's pretty neat to see the whole environment build up from nothing.
In the last release of OpenStack which is included in Ubuntu 11.04, it supports a very lightweight and fast container/virtualization technology called LXC [2]. If you are familiar with FreeBSD jails or Solaris containers they have many similarities. This means that it is practical to run a dozen or more OpenStack VMs backed by LXC on a typical laptop. Another cool feature is that you can run LXC containers inside EC2 machines - in fact this is how cucumber-chef does acceptance testing of server configuration recipes [3]. My challenge to you, dear hackers, is can the default Launchpad developer setup be changed to run in LXC managed by OpenStack? I imagine there would be many steps along the way, and perhaps the first one would be to use a single container, perhaps splitting out more containers as the services rearchitecture moves along. We'd also need a HOWTO for installing OpenStack on Ubuntu 11.04 and grabbing a suitable Ubuntu 10.04.2 base image (to best match production). I am anxious for the day when I could decide to work on a Launchpad feature without needing to trash my local SSH, Apache, and Postgres configs - my involvement in projects is so infrequent and wide-ranging that I can't really afford to have a dedicated Launchpad dev machine. Basically I want to have the default Launchpad dev setup be something that lets me run a script on a brand new Ubuntu laptop or a fresh EC2 instance and after a few minutes get the entire environment configured running with containers, and then also lets me do things like swap out service implementations by changing container configuration. OpenStack is making heavy use of Launchpad, is a rising star in data centers around the world and is under active development, so it seems the ideal time to start making use of it ourselves. What do you think? [1] http://vagrantup.com/ [2] http://www.openstack.org/blog/2011/04/openstack-announces-cactus-release/ [3] https://code.launchpad.net/~statik/+junk/gpg-val [4] https://github.com/Atalanta/cucumber-chef -- Elliot Murphy | https://launchpad.net/~statik/ _______________________________________________ Mailing list: https://launchpad.net/~launchpad-dev Post to : launchpad-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-dev More help : https://help.launchpad.net/ListHelp