2

After the 16 hours downtime of Heroku and AWS we're thinking of how to make our website stay up even when heroku or AWS are down.

Is there something better than just backup the app every 5 minutes, hold a dedicated server on the same state than heroku and in case of downtime edit our DNS Settings?

Bart De Vos
  • 17,761
  • 6
  • 62
  • 81
Max
  • 465
  • 2
  • 6
  • 11
  • 2
    The term you're looking for is High Availability. There's many ways this can be accomplished, but if you describe your Website's architecture in a bit more detail, we can provide you with some specifics. – gravyface May 20 '11 at 12:52
  • ok, thanks. It's a standard rails3 webiste running on heroku. Nothing special. I would love to have a dedicated server running in a datacenter somewhere. Is that possible somehow? – Max May 21 '11 at 14:28

2 Answers2

1

When it comes to HA and Rails, your data layer is going to be the sticky point. Obviously, your code can pull from the Heroku repo periodically, so you know that you'll be in sync that way. So how can we get the db offsite...

If the uptime is really worth it to you, it may be worthwhile to investigate a service like xeround, which can handle your db HA requirements for you.

Or, consider running your own Postgres / MySQL in AWS, and have a replicated slave on the Rackspace cloud or something like that in case AWS goes down completely.

I hope this helps.

Michael Gorsuch
  • 2,358
  • 1
  • 21
  • 24
1

To be honest, the only real way is to spread your bets. By having everything on Heroku, your prone to Heroku and EC2 outages (Heroku being built purely on EC2). Only by moving some services elsewhere for redundancy will you be able to reduce your exposure to a service going down.

For simplicities sake keeping redundant systems idle is a great way of ensuring that you can quickly flip from one to another without having to incur the costs of running two systems at once, however, you need to consider things such as spin up time, and keeping your data up to date.

Neil Middleton
  • 412
  • 1
  • 4
  • 11