1. A method for pattern design for heterogeneous target environments, the method comprising: defining a pattern, the pattern being a model of a topology and application environment; receiving a list of target devices for use as a potential deployment target for a set of components of the pattern; identifying a type of hypervisor and/or hardware that is available on each of the list of target devices; and generating a list of recommended target environments to accommodate a deployment of the pattern or a deployment of a portion of the pattern based, at least in part, on the pattern and the type of hypervisor and/or hardware.