Firstly, I don't think your 'Over Thinking This', the fact that you are trying to organize these relationships in a meaningful way is a great thing.
In my companies we have described these as 'Stacks' we had 'Web Stacks' , 'Desktop Stacks', 'Mobile Stacks'
Stacks are made up of layers, for example a 'Web Stack' may have a stack structure of:
- Server Configuration:
- RAID 10
- Centos 6.1
- Proxmox Barebones 'Cluster Cloud Config'
- Data-pooling Session Manager
- 120GB RAM
- Xenon 4 Processors (4 core) X 8 - Server Entities
- Apache 2.x Server
- MySQL 5.x Database
- Quantum LDAP - Web
- PHP 5.3.1
- APC cache
- ... More Web Specifics - CODE
- Top (landing pages)
- Classes ROOT -> lib
- ... - Scripts ROOT -> scripts
The above is a very rough idea of what we would do.
Whether you use Stacks or Containers, I don't think it matters. This documentations needs to be clear for new hires, contractors and new team members. The less you have to describe your conventions and the more natural understanding of this structured data will help with better up-take.
I don't know if this helps, but hope it does?