My system has a dependency on a third party system (i.e. payment system), which the third party system can only commit the system availability is 99.99%.
I can use two application server runing cluster and have a DB farm to ensure my module in the system 100% availability. But, my system may be affected by the third party system. How can I ensure my system availability is 100%?
100% uptime requires high availability, which in turn requires high level of redundancy.
To evaluate 100% uptime of a system, list down following things: 1. Number of single points of failures (SPOF) in the infrastructure. For example: Payment is a SPOF in your infrastructure. 2. Downtime required for performing nightly maintenance jobs, report scheduling or backup etc.
If you find anything that needs to be addressed from above two points, then it is difficult to ensure 100% uptime.
No matter how many app servers and how big of a cluster you have.
You can have multiple third party providers, if the first one fails you can go to the next one (like a Passive Replication system). It will be much more expensive (depending on the number of providers) but that can assure you a higher probability of availability. Availability is directly proportional to cost.