1. A system for selecting a preferred design architecture for a multi-tiered architecture based on a service specification, an infrastructure specification, and service requirements comprising: a design generator receiving the service specification and the infrastructure specification and establishing a candidate design based thereon; and an availability evaluation engine configured to receive the candidate design and provide an availability estimate for the received design to the design generator; wherein the design generator iteratively evaluates designs in combination with the ability evaluation engine to establish the preferred design.