Yesterday, Rackspace DFW data center went down for a few hours and made me think on taking the delayed action of improving my server structure there. So far, I've been using a single CentOS instance handling a basic LAMP setup for my PHP+MySQL application. So yesterday my application was down for more than three hours in an row and that was awful.
I thought on:
- Having at least two instances handling the application split across at least two data centers (Rackspace or not).
- Having at least two MySQL master/slave configured instances to host the data, splitted across at least two data centers.
- Placing a load balancer in front of the application instances to avoid dealing with DNS propagation and being able to add or remove application instances painless at my will.
So my questions are:
- How does the above three measures sound? What else can be done?
- What's the best way of implementing them with no downtime?
- How to handle code deployments
- Any books/whitepapers/etc you can recommend to help me here?
- Bonus: How to do it? :P