Getting In Each Others’ Way
Initially, we tried to have everyone share 2 development clusters, but found that the developers were overwriting each others’ work. We actually had a shared calendar and required developers to reserve time on the cluster to debug and test.
We thought about giving each developer their own cluster and a copy of our entire stack, but we determined it would be way too costly and also difficult for each developer to keep their cluster and stack up-to-date.
In another attempt, we also tried running the tests using our CI pipelines inside separate Kubernetes namespaces, but some parts of our application had the namespace hardcoded which made sharing a cluster for CI impossible.
Drawbacks
- Needed to go through a PR and approval just to get an environment for testing or demos
- Have to run the entire heavyweight stack locally during development, including large datastores
- Developers had to wait for an open slot on the calendar to test their code against the rest of the stack