3 ms·
I'm surprised there's so much resistance to this concept on HN. I'm completely unrelated to anybody remotely related to Coherence AFAIK and I've been of this sa
by andrewstuart2 4y ago
I'm surprised there's so much resistance to this concept on HN. I'm completely unrelated to anybody remotely related to Coherence AFAIK and I've been of this same opinion ever since I got the first taste of cloud, and definitely after k8s made some of this more standardized and portable.
The points of traditional dev and qa environments are to lower the risk of unproven code, but the shared nature often causes more problems than it solves. Ad-hoc environments provides the opportunities to better utilize infrastructure, better test changes in isolation, and have one granular purpose per environment.
Another point is that this doesn't mean shared-nothing. You don't have to stand up expensive infrastructure every time if that infrastructure should be indistinguishable between environments. You can build smarts into how it's done such that multiple databases go onto the same DB server, or you reuse instances until something meaningfully changes in an isolated env you need (e.g. by looking for migration version differences). All of this is much more tenable now that infrastructure is so much more easily programmable and declarative.
And all of this works at multiple scales. Large horizontally-scalable databases don't have to be deployed at production scale on your machine. Do that in a load test env that is a last stop before prod, if you need to (e.g. if you don't trust how well you scale with # shards). Add in options from tools/concepts like teleport, and you can potentially extend this sharing to local dev environments for when things no longer fit on a dev laptop.
My experience despite having 7ish years with k8s is that people on k8s still have their dev, qa, prod clusters and dogmatically stick with that despite the fact that there are definitely better (and now simple) ways, and you really get better economics if you can binpack in the same set of machines and prioritize work appropriate to its classification.