Writings on various topics (mostly technical) from Oliver Hookins and Angela Collins. We have lived in Berlin since 2009, have two kids, and have far too little time to really justify having a blog.
I had a very brief moment of inspiration this weekend when a realisation occurred to me. It's nothing amazing, and it has probably already been mentioned many (dozens of, thousands of?) times before but I'll say it anyway. My fundamental approach to work has changed due to the "cloud", or rather, easily provisionable and destroyable virtual machines. This may be pretty obvious but it's worth stating anyway.
A bunch of years ago now I had to bring up some new systems for doing border routing at my previous employer. I had had no experience with Quagga at the time and I spent a decent week setting up a small test environment with something like five or six cheap (but physical) machines to represent our coming redundant border routers, a couple of direct upstreams and whatever remained as route injectors representing the Internet. Once it was running I was extremely careful not to pollute the environment so as to ensure that the deployment was correct. I'm not even sure I wiped everything and started from scratch so as to QA the configurations.
This week I've been working on some Puppet tuning work involving modmemcache in Apache. It has been all too easy to bring up a couple of reasonably representative CentOS 5.6 machines in either our own private cloud at work, or in one of a couple of public clouds I have access to. If things go pear-shaped I can just blow it away and start again, which is definitely not the kind of behaviour I have when making modifications on my home router/fileserver/webserver or even my US VPS system. One tends to be far more careful and perhaps even willingly create a lot more technical debt working with those machines.
In my current workflow, I'm all too happy to settle on a configuration that looks somewhat reasonable, record it in my configuration management system, reprovision everything again and test it. I actually discovered some fairly serious caveats in what I was working on and even now may have stumbled on an Apache bug (or undocumented feature) due to willingly blowing it all away and testing again. I could have done the same locally using Vagrant but I needed the performance of two larger instances in this case.
The behaviour is valuable. You know that what you are doing is of limited lifetime, so you work to make sure you can reliably arrive at the same configuration as many times as you want. This also has a side-effect of ensuring you only create a minimal configuration so as to save time and effort. The most powerful thing is that I have a level of confidence in the results that I can't say I've ever had in the past.