How would you design a highly available, fault-tolerant architecture for a multi-tier web application on the cloud for an AllCloud client?