I'm looking for a tool that helps managing dependencies between various systems. By systems I mean hardware (hosts) as well as software systems, e.g. service A on host X depends on service B on host Y to function. The goal is to be able to tell what stops working when I pull a plug. I'm mostly interested in managing service dependencies, but networking should be included in a simplified manner.
I think of a rule system like the following (with lots of predefined rules for standard services etc.):
- service A on host X needs to access service B on host Y
- service B on host Y is a standard service (SMTP)
- service SMTP listens on TCP port 25
Ideally, I could "virtually" pull the plug of the mail server and the dependency management system would tell me what is going to be affected by that.
Note that I'm looking for a more or less simplistic approach that is still manageable. I don't want to write my own simulation software and I don't want this system to manage low-level dependencies (e.g. software module/library dependencies).
Do such systems exist? If yes: what are these systems called and what implementations do you know?
EDIT: Please also point out solutions that solve a bigger problem but offer something similar as part of it. Maybe I'm just constrained in my thinking here, you can help me to think outside the box.