It is not easy to summarize best practices without any knowledge about your scenario, general tips modeling the UCD in my point of view are:
- Reuse
- Define a small amount of deployment process and made them parameterized so you can reuse over components with the same stacks.
- Well designed apps
- With well designed apps, with clear components and dependencies, will be easiest to define applications, components and their deployment process.
- Maybe at this level, some refactoring will be more effective than force some hard structure on the UCD.
- Plugins
- You have many ready to play plugins, so use them. Do not spend time creating your own custom plugin, someone probably have solved your problem already.
If you share more details about your scenario, maybe I can give you more specific tips and tricks =)