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; based on the first context, identifying a first of the plurality of clouds that satisfies the first functional requirement or non-functional requirement indicated by the first context and, via a processor, automatically allocating the first deployment unit to the first cloud; and based on the second context, identifying a second of the plurality of clouds that satisfies the first functional requirement or non-functional requirement indicated by the second context, wherein the first cloud does not satisfy the second functional requirement or non-functional requirement indicated by the second context, and automatically allocating the second deployment unit to the second cloud.