top | item 7473266

(no title)

ycombasks | 12 years ago

What if you start out small with one server, but then need to expand to multiple droplets? You won't be able to without powering off and making an image.

discuss

order

mobiplayer|12 years ago

That's bad planning, but unfortunately also a very common situation. If you really can't afford a couple late hours downtime when you're small then this is what I think I'd do:

- Get a new pair of droplets in front of your current droplet to load balance the traffic (HAProxy, Nginx, you name it). Point the NS records to those :)

+ Why two? Well, you can't afford downtime so there we go.

- Get a new droplet and manually clone the initial one, i.e. copy over config and assets. Add this second droplet to the LB pool for your site/app.

+ Manual work? Well, again you can't afford downtime so you'll need to put some man-hours on this.

- Now you can shut down the initial droplet and image it while the second one gets the traffic coming from the LB.

Eventually you'd want to separate functionality on different servers, so try to also plan that in advance. Also bear in mind that each 512MB costs like $5/mo, that makes this solution work for $20/mo, how cool is that?

I agree there's room for improvement on DO's service, but there's nothing that a good architect can't work around.

ycombasks|12 years ago

You're absolutely right. How about your MySQL write server? You typically have one master that you update to and one or more slaves where you read from. If you get a sudden burst of traffic and your master can't handle all the writes, what do you do?