Making your architecture fault-tolerant
High availability means your application is available to the user but it can result in degraded performance. Suppose you need four servers to handle users’ traffic. For this, you put two servers in two different physically isolated data centers. If there is an outage in one data center, user traffic can be served from another. But now you have only two servers, which means only 50% of the original capacity is available, and users may experience performance issues. In this scenario, your application has 100% high availability but is only 50% fault tolerant.
As shown in Figure 2.6, to achieve 100% fault tolerance, you need full redundancy and have to maintain the double count of the servers so that the user doesn’t encounter any performance issues during the outage of one zone.
Figure 2.6: Fault tolerance architecture
Fault tolerance is handling workload capacity if an outage occurs without compromising system performance...