One of the first few questions an architect would pose when designing an application would be: what are the availability needs of the system? The answer would not only influence the overall architecture but would trickle all the way down to application design, choice of technologies and of course the physical deployment. Sharing infrastructure between applications helps to reduce the Total Cost of Ownership(TCO) of the individual applications. More on recommendations, challenges and pitfalls at: