1. A method of selectively allocating a plurality of deployment units among a plurality of clouds, the method comprising: identifying a first context indicating at least a first functional requirement or non-functional requirement of a first deployment unit within a workload, wherein the first deployment unit is a first asset of the workload selected from a group consisting of a first execution deployment unit, a first installation deployment unit and a first data deployment unit, and identifying a second context indicating at least a second functional requirement or non-functional requirement of a second deployment unit within the workload, wherein the second deployment unit is a second asset of the workload selected from a group consisting of a second execution deployment unit, a second installation deployment unit and a second data deployment unit; performing a first audit of a first of the plurality of clouds to determine whether the first cloud satisfies the first functional requirement or non-functional requirement indicated by the first context and whether the first cloud satisfies the second functional requirement or non-functional requirement indicated by the second context, wherein performing the first audit comprises processing a first location model associated with the first cloud; and performing a second audit of a second of the plurality of clouds to determine whether the second cloud satisfies the first functional requirement or non-functional requirement indicated by the first context and whether the second cloud satisfies the second functional requirement or non-functional requirement indicated by the second context, wherein performing the second audit comprises processing a second location model associated with the second cloud; based at least in part on the first context, the second context and the results of the first and second audits, automatically creating a deployment plan that identifies to which of at least the first and second clouds the first deployment unit is to be allocated and to which of at least the first and second clouds the second deployment unit is to be allocated; based on the deployment plan, automatically allocating, using a processor, the first deployment unit to the first cloud and automatically allocating the second deployment unit to the second cloud, wherein the first cloud does not satisfy the second functional requirement or non-functional requirement indicated by the second context.