Designing Distributed Enterprise Cloud Infrastructures