Today’s outage for several Google services
googleblog.blogspot.com
googleblog.blogspot.com
if state=="x": break_google else: fix_google
Then either the software loading the configuration detects the problem or the monitoring system detects something's not right, and automatically the last working configuration is applied and the non working one is discarded.
By the looks of it I would say their monitoring detected the problem but the reliability team needed some minutes to realise it was a configuration problem. A classic problem is a network appliance that is misbehaving (eg. firewall, switch, etc), but nobody knows it is because of the configuration and it is replaced by a fallback appliance that... oh, has the same problem (configuration).
All together 25 minutes seems a lot, but when you're troubleshooting and you know an important part of your infrastructure is down, time fly!
In that instance the rule was written by a human, but deployed automatically to their entire infrastructure before they could notice the problem it caused.
(what could possibly go wrong?)
> Systems generating config files and then pushing them out to services within the infrastructure without proper checking and linting.
It's not really that easy, as "proper checking and linting" might as well be phrased as "sufficiently smart checking and linting". You can have amazing checking and linting and still let a bug pass through.
The checks need to be quite sophisticated. We patched the generator, but never got to implement a test deploy mechanism to ensure the config made sense before deployment to a real production environment.
I suppose this is a hard problem to solve on a configuration change level though. Imagine the configuration change that triggered the bug was something like "hey load balancers, stop sending traffic to the cluster with that new version of service X which seems to cause elevated error rates." You don't really want that kind of change to take too long to propagate.
pycon blog is also on blogspot. http://pycon.blogspot.com/