Tuesday, June 2, 2015

Introducing yet another Continuous Automation Design

At work, they have server blades, terabytes of disks, multiple backups and failure plans, big architectures with continuous integration servers.

At home, I have a small ARM server (a Cubieboard II) running 24/7; and a family PC that usually runs only during the day.

Despite of the smallness of my home computing resources, I would like to work on my personal projects with a proper continuous automation system.

I have the following requirements:
  1. I want the system running at home, no SaaSS. Exit Travis and co.
  2. The system must be hosted on the server (ARM), and use as little resources as possible. Exit Jenkins, Teamcity, and others.
  3. I also want something a bit more sophisticated than a bunch of shell scripts glued together with a cron table.
  4. I want something distributed to make use of all my machines
  5. I want to code!

My solution: yaCAD.
  • Written in C, object-ish. Using 0mq, sqlite, JSON.
  • The server ("core") is as small as possible: scheduling and task distribution.
  • The slaves ("runners") will perform the actual task.
  • I also want a GUI (CGI?) for administration.

Only the "core" server is already coded. I still have to hack the "runner" slaves, and the GUI.

That's my pet project of the moment. Written in GPLv3, I'd be glad to accept any form of contribution.