I’ve been at multiple companies where we’ve decided to build a set of modules that could be used somewhat universally for products, and then we’d basically say “hey if you don’t want to use this, either convince us that your needs are justified or do whatever you want and DevOps/SRE can’t support you.” Some of it we went as far as calling self-service.
If you have a menu of options than people can’t pick things that aren’t on the menu.
I also find that developers really just shouldn’t have almost any cloud infrastructure rights, with few exceptions.
You could also go the embedded SRE/DevOps route where the embedded infrastructure engineer on the product team can steer each separate product into following more standard approaches.
I’m also going to take a wild guess that your ops to developer ratio is too low.
“We only have 3 menu options of ways to do things” is great for creating hierarchies, and rarely works for actually creating any innovation.
We started out with just one terraform project per account. Now its a terraform project per project within an account, to keep terraform projects compact.
But it somehow keeps growing and growing and each team and each project, they handle it differently. the taste is differently, it seems. and not everyone puts a lot of thought into rhe structure. So on the one hand its wild and free, but on the other i palm my face, when i look into the future.