If I were to set up physical servers for running a business critical website, I would absolutely build redundancy into that environment. I would strive for no single point of failure and as a minimum run two servers of each role (two web servers, two database servers etc.). Even if I chose to add a virtualization layer to those servers, I would still strive for redundancy (and in this case also ensure that e.g. databases were distributed on different hosts).
However, I'm uncertain if this way of thinking applies to cloud server offerings based on e.g openstack. First, I could always run two web servers and two database servers but how do I know that my two database servers do not run on the same physical hosts? Second, I'm in the dark when it comes to how open stack operates virtual machines. Is a single VM even bound to a specific host, or is there a physical hardware pool which VMs are shuffled around in?
Should I think of open stack cloud servers as just another way VPS/VM flavour? Should I plan open stack cloud servers just as I plan with physical or plain old virtual servers