If you were tasked with designing a high-availability system, what key factors would you consider?

Situational