I’m still working my way through the back catalogue of Software Engineering Radio. I recently listened to a particularly good episode, with Pat Helland. There were a few things specific to web scale, but generally it was good because he explained general concepts very well. I’ll mention two of his explanations here, but I recommend you listen to the whole thing.
The first is that you should view computers like a builder on a building site views a bag of nails. They’re there to do a job. You don’t get attached to an individual one; occasionally you get a duff one, in which case you give up on it and move on to the next. It might be cost-effective to try and fix it, maybe later when things are rushed. You don’t spend time or effort coming up with characterful names. (I still remember the various naming schemes for important computers at previous jobs – mountains (including the hard to spell Moruisg) and (at my request) stations on the shipping forecast. I think that these days are gone.)
I’d heard the cattle not pets analogy before, but I think that the bag of nails analogy is better. Nails are strictly there to do a job, and you don’t worry much about their welfare, plus they’re not created in order to be destroyed for our benefit, which is a bit icky about cattle.
The second is a thought experiment about CAP theorem. Imagine two people are getting married, but they are exchanging vows over the phone. Part-way through, between one “I do” and the other, the phone connection goes dead.
In computer science terms, this is a network of two nodes (the two people), with one link between them (the phone connection), and there is a partition in that network – the P of CAP theorem. (Strictly speaking, the P is for Partition Tolerance.)
This leads to some interesting questions (in real life it would be hugely stressful, but fortunately we’re in only thought-experiment-land, where we don’t have to care about the mental state of these poor people). However, we’ll ignore the philosophical / legal most important question – Are they married? – and move onto CAP theorem stuff.
Do the two people agree on whether they’re married or not? I.e. is there consistency of state between the two parts of this network? (The C of CAP theorem is Consistency)
Do they try to re-establish communication, so they can work out how things are? How do they do this? How hard do they work at it? While this is happening, they’re likely to not be able to do other things, like answer the door to a visitor. This means their availability for things other than agreeing between themselves drops. (The A of CAP theorem is Availability.)