To do this, you need to consider both hardware and software.
As far as hardware is concerned, it is best to choose a hosting provider with the necessary experience, for example, Rackspace (I have good personal experience with them, but there are many others). It will not be cheap. You will need completely redundant equipment in order to survive in the event of failure of any one component - several servers (at least two), each with several disks, network cards, fans, power supplies - you get an image.
For software, make sure you build it with scalability in mind. If this is your web application that uses the MVC paradigm and ensures clean separation, it will be of great importance so that you can scale your application on several servers that you need to run.
The hardest part is usually the database, because you cannot just run two. Therefore, take a look at the master-slave setup with automatic failover or even with a cluster.
Several books are available for this topic, here is only one of them . Good luck
Thilo source share