I currently work at a smallish scale-up. The company has ~100 ppl and the tech side of the company is ~40. There are 4 main teams within engineering with different responsibilities e.g. modelling, platforms, infrastructure etc
I'm frustrated that our shared infrastructure is a bit of a wild west. Things like S3 buckets, DB tables, ES indices, Kafka topics often have nonsense names that mean nothing to anyone other than the couple of engineers familiar with them.
This makes it really difficult to
- clean up deprecated resources
- quickly identify what processes are being used by which services
- identify who owns the resources
I'm trying to implement a shared methodology across all four teams to make this a bit better, but need advice.
My aim is to come up with a structure for resources that solves some of the above issues. My current thinking is to implement a naming template like:
<team_name>_<repository>_<branch_name>_<unique_identifier>
One of my concerns is that things like <team_name> can be transient, although it's unlikely they will change in my org for at least a year.
I also want to ensure this methodology isn't just a verbal agreement across engineers, and is instead automated as much as possible - e.g. everything other than the `unique_identifier` is created automatically. Should there be a centralised service that processes make requests to to create/delete resources? Should this be config driven and handled in `initContainers` in K8 deployments?
I've never worked in a bigger engineering department than this so I don't know how this problem has been solved elsewhere.
Would appreciate some feedback - perhaps my logic is fundamentally flawed.
Thanks