Day 2. Don’t configure your servers.
Yesterday was the day of nothing new. Today we didn’t configure our servers.
The traditional cycle for ‘provisioning’ a server, as it’s called, is to plug it in, install the operating system and then spend a decent amount of time configuring it. Apply the best config, tweak it here, tweak it there.
Then you load test it and do the same thing again.
Today we learnt that a server must not be configured. At least not by humans. You must fire up a virtual server, send it your best config and run with it. If your config doesn’t work first time then the config is to blame.
The way we’re planning to manage this is to have a git project that we deploy into a debian package. We’ll run a very simple script after boot-up that adds our repository, pulls down the package and runs a series of scripts, which variously install basic software (apache, blar blar) and configure them using the best configuration we know.
But – we will never re-configure servers. We’ll turn them off.
Traditionally, you’d tweak the server’s settings, restart it and see how things go. But this makes no sense with cloud servers because they are disposable so even if it takes a few minutes to reconfigure an existing instance surely it’s easier to throw that one away and start a new one with my brand new configuration?
I don’t know yet, but that’s the plan. Let’s see how it goes.