Clarity can override other concerns, increases security (KISS).
Complexity vs benefits received.
Less is more, especially regarding code maintenance cost.
Risk = Impact * probability.
Considerations designing a devops toolchain
Example:
Ansible
Debian
Kubernetes
KVM
Human
User interface clear, simple (including role creation, access).
Humans make mistakes, as many automatic checks as practical, no error / message spam!
While designing: generalize, modularize, template, override defaults on deeper levels.
Small, clear changes.
Responsibility, acknowledgement for human checks in processes.
Technical
Degree of flexibility required. 1 or more different virtual machine (VM) technologies to create templates and base clones for further modification by Ansible etc. If more than 1 tool for VM templates is needed, how to sync changes?
Network and access (SSH for Ansible), flexibility (hosting providers, future migration).