stephenorr
I'd already left by that point, after a heated conversation in which I was told "you're not half as good a software engineer as you think you are". Well, duh.
Amusingly, the PHP app is still running, still working.
It's just not really practical for actually building software.
Post-arrival, I was ordered to rewrite a working, stable PHP web app into Go ("Google doesn't use PHP, because it doesn't scale"). We weren't allowed to write RESTful APIs any more, everything had to use Protobuf.
And there was a physical fight in the office one day between two of the developers, that culminated in one of them storming out and never coming back.
The rule wasn't hard and fast, but you had to have a damn good reason why you wanted to add bigger commits. Protobuf definitions didn't count, so you could get away with doing longer commits for those.
Tests were discouraged anyway ("Google just tests in production", we were told), so there wasn't a lot of that sort of thing.
This led to a complete loss of all context; without that overview, you might very well be releasing code faster, but it could be the wrong solution to the original problem - and crucially, you won't know until it's out in the wild.
A preference for smaller, more focused PRs is fine - it certainly makes them easier to review independently - but I think putting any sort of limit on the size makes your team more likely to omit things like tests and also to not have sufficient context to understand the overall problem space.
I'm sure their official incident report will have more details, but right now it looks like this is nothing to do with Kubernetes directly, but the underlying OS.
DO have now disabled those automatic updates so that this stops happening; it's been stable since then.
If you're experiencing difficulties, the fix for us was to create a new node pool, then force kill the individual nodes in the previous pool. That forces k8s to move the workloads to the new pool.
You can't rely on the workloads moving themselves, because there's some weirdness around Cilium that's preventing them from being cleaned up properly. I'm not an expert on why, but the operator looks to be having trouble connecting to the Cilium daemon.
I've had to do this at least twice now, and DO Support don't seem to be any closer to a resolution. I've moved to a fixed-size node pool now to see if the cluster autoscaling is part of the problem.
Absolutely shocking to have an entire production-grade product broken for more than 4 hours with bugger all in the way of information about what's going on.
I have clients ready to move off Kubernetes entirely because I can't give them any idea when their sites will be back up and running.