3 ms·
YAML is okay for representing a simple declarative configuration. It starts to break down when you try to encode too much operational logic into it. If we step
by runlevel1 7y ago
YAML is okay for representing a simple declarative configuration. It starts to break down when you try to encode too much operational logic into it.
If we step back, there are a few different strategies for dealing with operational logic. From least scalable to most (roughly):
1. Human processes (ex: checklist)
2. In the config itself (ex: Kubernetes' YAML)
3. A config generator (ex: Helm, Kustomize)
4. Software (ex: Kubernetes Operator)
I see a lot of people get stuck doing one for too long.
When doing one becomes unwieldy, it's time to consider the next. That or find a way to reduce the need for all that operational logic.
- marcosdumay 7y ago> simple declarative configuration The point of all this is that software configuration is never a simple declaration. It is always a mess of behaviors and derived values. I am not sure I totally agree, but it at least correct enough to always break something. And adding abstraction layers just because you choose to use an underpowered notation at the bottom isn't a good practice.