Sunday, April 7, 2013

MicroNodeAppliance - an ultra light Linux VM with NodeJS

Some time ago, I wanted to run a virtual web server on a machine with not enough storage to hold another complete OS.

I decided to aim at the smallest possible Linux distribution, and I found MicroCore, a ~8MB system at the base of TinyCore. Beautiful! I created a starting environment following this guide, and then installed NodeJS.

There are pros and cons in using this solution:

Pros:
  • ~29MB VM image size
  • Boots in a few of seconds
  • Can create many VMs in the same machine before running out of memory
  • It runs in memory, so if you break something just reboot to revert to the last state (see cons)
  • CLI only
Cons:
  • It runs in memory, so a script must be run to persist the changes to the storage (see pros, if you haven't already done it!)
  • Not recommended for beginners

I wonder how would it perform if mounted on the instances of a distributed system!
Here you can download the .ova file:


I'm not sure if stuff like this requires a license, in any case I wrote a bunch of files including a README and a cron file. In doubt, they are released under the WTFPL.

Hopefully it can be used for something good!