Your sever is a snowflake and you should set fire to it regularly. Or at least, melt it down in favour of a new one. That’s the advice doled out by software consultants at Thoughtworks last night, at a presentation of its Technology Radar research in Johannesburg.
The suggestion isn’t, of course, to be taken too literally. Rather, Johannesburg-based Thoughtworkers Rouan Wilsenach and Rachel Laycock were presenting an idea described as ‘infrastructure as code’, in which they advised companies to regularly reset servers using a pristine configuration rather than try to keep them running for years using incremental updates. The problem, explained Laycock, is ‘configuration drift’.
“Servers change all the time,” Laycock says, “And that’s a good thing. They get upgrades and incremental patches. The problem is that if you make those changes ad hoc then you lose track of what’s changed. After a while, you end up with a server that’s working perfectly, but you don’t know why.”
This phenomenon, says Wilsenach, is called the ‘snowflake server’, in which every machine is unique and therefore difficult to maintain.
“Uniqueness is great if you’re a snowflake-ologist,” he says, “But not if you’re a software developer.”
It’s better, says Thoughtworks, for businesses to maintain an up-to-date server configuration offline and regularly redeploy the entire image – the equivalent of reinstalling Windows every couple of months to maintain PC performance. It might be overkill for your gaming PC, but for a mission critical server it makes a lot of sense, especially if you’re working in a fully virtualised environment where starting up a new server has no extra hardware cost.
Citing her own experience, Laycock says that system administrators also get too emotionally attached to their hardware, and giving servers names is a really bad idea. One company she worked for, she says, named all of its servers after characters from Mario games – and no-one wants to delete a server called Luigi from existence.
“Treat servers like cattle, not pets,” she says.
The discussion was prompted by the latest edition of Thoughtworks’ Technology Radar, a planning tool which the company has released as an open source application which can help businesses and developers identify new trends. It works in a similar manner to Gartner’s Magic Quadrant analysis, with the important distinction of being free.
The Radar is divided into four quarters, covering Techniques, Platforms, Tools and Languages & Platforms into which every current and future technology is divided. These sections are then subdivided into rings, by which each entry is classified as Adopt, Trial, Assess and Hold. The closer a technology is to the centre of the visualisation, the more important it is to learn how to use it and consider it for projects.
Laycock says that it’s become a vital tool for an organisation as large as Thoughtworks to stay up to date and share information about what’s coming up internally. In this round, Windows Automation Scala and Gradle are highlighted as techniques to adopt, while ‘handwritten CSS’, Browser-based testing and ‘Big-enterprise solutions’ are marked to be dropped.
Clients of Thoughtworks are apparently using the Radar tool to share information about their companies internally, breaking it down into single segments where it’s used on a smaller scale.