1. A computer-implemented method for selecting a host from a plurality of hosts for an application pattern component using a service level agreement requirement, the method comprising: receiving an application pattern, wherein the application pattern includes multiple middleware software elements compiled into a single deployable unit; determining one or more application pattern components from the application pattern, the one or more application pattern components including a first application pattern component, the first application pattern component being a database component; identifying one or more service level agreement requirements for the first application pattern component, wherein the one or more service level agreement requirements of the first application pattern component include an uptime requirement; receiving a first set of capability metrics of a first host of the plurality of hosts; determining whether the first set of capability metrics of the first host from the plurality of hosts satisfies the one or more service level agreement requirements of the first application pattern component; determining that the first host does not meet the uptime requirement of the first application pattern component; determining that a second host of the plurality of hosts does not meet the uptime requirement of the first application pattern component; determining that a second set of capability metrics of a combination of the first and second hosts meets the uptime requirement of the first application pattern component in response to determining that the first set of capability metrics of the first host does not satisfy the one or more service level agreement requirements of the first application pattern component; selecting the combination of the first and second hosts in response to the second set of capability metrics of the combination of the first and second hosts satisfying the uptime requirement of the first application pattern component, wherein selecting the combination of hosts includes recommending the user host the first application pattern component on both the first and second hosts; and hosting the first application pattern component on each of the first and second hosts.