1. A method for building a deployment pattern for a subdomain, the method comprising: receiving components of an abstraction layer to be implemented in a first deployment pattern; receiving a set of desired capabilities of the first deployment pattern corresponding to the received components; receiving an indication to deploy the first deployment pattern in a subdomain, the subdomain including a plurality of systems; responsive to the indication to deploy the first deployment pattern, analyzing characteristics specific to each system of the plurality of systems, the characteristics including one or more of the following: capability, location, and capacity; generating a set of proposed deployment patterns that meet the set of desired capabilities of the first deployment pattern, the set of proposed deployment patterns being based on the analysis of characteristics of the plurality of systems; and deploying a proposed deployment pattern of the set of proposed deployment patterns across the plurality of systems in the subdomain responsive to user-selection of the proposed deployment pattern; wherein: the first deployment pattern is a model of a topology and a corresponding application environment; and the set of desired capabilities of the first deployment pattern include one or more of the following: high availability, continuous availability, disaster recovery, scaling, colocation policies per component, and anti-colocation policies per component.