torsdag 27. oktober 2011

Using your ReadyNAS for Continuous Integration

Some years ago, I bought the Infrant ReadyNAS NV+ for media streaming and general storage. The compact design, 4-disk capacity and file throughput was really compelling at the time. The possibility to easily install plugins through the built in administration web tool was very nice. You could also enable ssh access on the server and install software directly on the Linux running the ReadyNAS. The software performance was less than impressing though. It was easy to see that the hardware for designed for file and network traffic, not general purpose processing. I installed MySQL, PHP and MediaWiki with appalling results. I abandoned the dream of using the NV+ as a multi-purpose home server and used it strictly for file, print, DLNA and as a Squeezebox server.

The Ultra series come in multiple configurations,
both in terms of disk capacity and processing power.
About a year ago, I bought the new x86 incarnation of the NV+, the Netgear Ultra 4. By using an Atom based platform, the server really becomes much more interesting than it's predecessors. Netgear now offer many x86-based devices with capacity of two disks or more.
I wanted to see if the product is ready for more than performing the mundane tasks of serving my media players, printer queues and network storage. I really needed a to have some stable test and development environment for my most Java based projects. I'd like to keep the setup on my laptop as simple as possible.


In a series of posts, I will document how to install and configure a respectable development environment for the dedicated software professional, or even a team of developers, using a reasonably priced Netgear ReadyNAS device.
What really got me going was reading the excellent Growing Object Oriented Software, Guided by Tests. Nat Pryce and Steve Freeman stressed the importance of establishing an infrastructure from the beginning of a project.

I expect to post a series of blog posts covering these topics in the next few days:
  • SSH support, PHP, MySQL and MediaWiki
  • Java 6 and Maven 2
  • Subversion and administration tools
  • Jenkins - for continuous integration
  • Sonar - for code analysis
It took me a while to find a solution for all the software I needed, so I hope this will be useful for others as well.