Monday, 1st August 2016

I seem to be falling out of the habits of doing the things that make me feel OK, and help me to cope with life. One of which is getting around to writing my morning pages first thing in the morning. Well, today’s a new week, and a new month, so let’s see if I can start by getting back into a few habits.

I’ve decided that I need to start focusing on doing some client work for the rest of this year. I’ve pretty much been bumbling on doing my own thing all year, not actually earning any cash, and living off excess income from last year. But that’s kinda come to the point where I can’t get away with it any longer, so I’m going to have to find something constructive, and billable, to do. I’ve got four different prospects lined up in my ‘sales pipeline’ and one of them is ready to get started, so I’m going to start digging into it today which should be fun. It’s a Ruby on Rails project, so it should be a nice, easy way to ease myself back into development habits. :)

I have retroactively persuaded myself that the past couple of weeks of messing around with home networking is useful stuff for A Sneak Peek at the Internet. I’ve been learning all about virtualised networking gear, through Open vSwitch. It turns out that one can pretty much model entire data centres — with servers, routers, switches, and other networking gear — using virtualised components, which means that one can model the entire thing from the comfort of one’s own laptop. Using Linux as a host, I can build up network infrastructure using Open vSwitch to model the layer two components, and using Linux containers (Docker et al) to model the layer 3+ bits. This means that I can turn the ideas I’ve got for A Sneak Peek… into a worked example that anyone with access to a Linux VM can follow along with. Gone are the days of having to buy expensive bits of hardware just to learn how networking works! And gone are the days of tracing through a rat’s nest of cabling to figure out which switch connects where!

Of course, there’s a flip side to that: it’s that much harder to visualise what a layer 2 network looks like when you can’t see the boxes and cables with your own eyes. I spent hours trying to diagnose a problem where a virtual cable between two switches wasn’t working. It turns out I’d gotten the name of the port it connected to on the other end wrong (pro tip: compose your port names programmatically!). If I’d been able to see the physical components, I’d have seen the cable hanging out (or plugged into the wrong port) in a second.

So at some point, I want to investigate some tools that will take a wired up network model and turn it into a pretty picture. I’m sure I saw mention of something as I was trawling through forum posts, but I didn’t get around to noting it down. Oh, and the other thing to figure out is how to see the current link state of Open vSwitch ports, assuming that’s correctly maintained for patch ports, because then I’d have been able to see there was no link on that particular patch.

Anyway, it’s all useful stuff, I think. And I’ve now got a home network that’s composed of lots of little Linux containers, all doing one job, connecting between my computers and the Internet. I’ve even got ElasticSearch ingesting logs, and pulling metrics, so I can get some idea of the health of the system. At some point I want to start generating metrics on network flows — to be able to see which use cases around the house are consuming all the network bandwidth, mostly — but that’s a separate project for a spare weekend sometime.

Of course, all this effort will only turn into something useful if I start writing it all up, and turning it into book content, and generating some blog posts from it. I’ve got 5,000-odd works in stream of consciousness form from a day I spent mucking around with networking, so hopefully there should be enough content to steal from that and redraft into something useful.

But meanwhile, I’ve got a couple of emails to write to potential clients, one tricky conversation to have today, and a new project to get stuck into, so I should really get on with the day!