I am building a web application where uptime is key. I understand that 100% uptime is not realistic but I would like to achieve five nines. I'm unsure as to the most prudent way to accomplish this.
My preliminary plan was to have the web app running in two geographically separate data centres. The "main" data centre would contain master server and this would replicate to the unused "slave" server elsewhere. If downtime occurred at the main data centre, DNS failover would move traffic to the "slave" server. There are challenges with this technique, including some users being unable to access the site for a while due to odd DNS record caching, etc.
However, I have read a lot of opinion stating that DNS failover is not a great solution and that you should keep everything in a single data centre and focus on redundancy there. The issue I see with that is that even the good data centres seem to have the odd network issue that can cause enough downtime to blow apart the expectation of five nines.
Should I go with the DNS failover option? Are there better options?