During the course of working, I often find myself looking for a software tool to perform a specific task. Sometimes there’s one that fits the bill, other times, there is room for improvement. Lately, two areas have presented an opportunity for a new tool to be created.

HTTP Load Generation

Lately I’ve been working with DPDK at work for a project. Along the way, there’s been a need for some HTTP traffic generation to test out what I’m working on. The landscape of HTTP load generation tools doesn’t quite fit my needs. Virtually all of the open-source tools are saddled with using the Linux TCP stack, which limits the number of source IP’s you can use. Over on the commercial side, you’ve got tools like Ixia which, to be frank, are massively expensive and seem to suffer from  a Swiss Army knife syndrome. Locust almost fits the bill but I found it to be too limiting for scale out and the source IP address issue was a non-starter.

What’s Needed

A lightweight TCP stack, which allows for generation of source IP address/port tuples, combined with the ability to scale out across multiple nodes. Completely driven by scripting via Python. Target connections/second and knobs for TCP and HTTP options are a must.
Development effort: heavy 

Python-based Incremental Backup Script

As Zimventures starts to take on more clients and serve more sites, backup is critical. Again, the landscape is pretty vast but I’m looking for a simple, and more importantly, elegant solution. The choices available right now, Bacula, Amanda, backup-manager, and others, just don’t fit right for what I’m looking for.

What’s Needed

A Python script/utility which can be driven via cron or simply called from the CLI (for testing). The script will use rsync and offer incremental backups to specific directories and also MySQL backups (via mysql_dump). Local and/or remote backup targets will be supported
Development effort: light