3 ms·
In my experience as a DevOps/SRE, I feel like every time someone tries to have a system to manage dependencies etc, its goes one of two ways (I'll use Python as
by alexpotato 1y ago
In my experience as a DevOps/SRE, I feel like every time someone tries to have a system to manage dependencies etc, its goes one of two ways (I'll use Python as an example):
OPTION 1
"We'll have one big shared mono repo"
Pros:
- it's all in one place
- it's "batteries included"
- everyone uses the same one (so things like vulnerability issues are easy to fix)
Cons:
- someone always wants a special version
- hard to do tiered rollouts so changes tend to be big bang
- "But what about if we want to build a small docker version?"
OPTION 2
"Everyone gets their own conda/venv!"
Pros:
- Everyone gets exactly what they want
- Don't use packages they don't need
- Easy to upgrade in phases/tiers etc
Cons:
- "Wait, we have HOW MANY different conda environments??"
- Libraries from different groups may not be tested with the same Python libraries
- Vulnerability management is a nightmare b/c you don't even know were all of the different conda envs are.
The above is why I'm always skeptical of "This new way will fix it all!".
In short, "there are no solutions, only tradeoffs" gets more and more true the later I go in my career.