Redundancy: how to keep your service’s uptime as high as possible

3 minutes read
crafted by , on 20 February, 2015, in

When your business is online and your website is down, it’s just like your shop is suddenly closed midday.  And you don’t even know it!

Keeping a site up-and-running all the time is a bit harder than it sounds. You have two choices in achieving that.

1. Stand on the shoulders of giants

The first is to use an infrastructure that you KNOW it has little or no downtime. Such as Amazon’s AWS, Heroku, Google Cloud etc. That way, pretty much their availability will be the maximum availability you’ll have. And they usually have a really good uptime. But things can go wrong at your end much more often than theirs. Whether it’s human error or something else, your site can (and will) go down even on the greatest infrastructure on Earth.

2. High-availability systems

The second is to deploy your systems in such a way that when one part of the system goes down for whatever reason, the other parts take over and make sure the user doesn’t notice anything. This is called high-availability. And it’s not the “click here click there” kind of thing. You need serious configuration and knowhow to set this up. Basically all the parts of your systems including DNS, databases, backend, frontend and everything in between has to be duplicated somehow and kept in perfect sync, so that the transfer from one copy to the other is done automatically in case of a problem and that it is completely transparent to users or customers.

Ok, but I’m not there yet!

If high availability is not for you at this stage, here are some tips for a higher availability (and not necessarily “THE highest availability”):

  • Go for quality. That means quality hosting services, quality networking engineers, quality developers. You can’t get a cheap and choppy system to have a high uptime. Check out SLA’s and review for each service you are about to sign-up for.
  • Monitor your uptime! Sign up for an external uptime monitoring service, and don’t rely on your hosting provider’s monitoring: it’s not in their best interest to show you how often your host went down.
  • Use as few technologies as possible. Don’t use a rainbow of technologies, because each of them will get to a point where it will fail. Either because it gets old, unmaintained or you forget about it. Stick to one database server type. Don’t spread your system everywhere. A chain is as strong as the weakest link in the chain.
  • Keep your software up-to-date. Important updates are released constantly, including security updates and performance improvements. Check for updates and keep your systems updated with the latest stable software.
  • Know when you need to scale. As your user base grows, your systems will get crowded up to a point where it will all fall down. Be smart and scale before that happens.

It’s all about trust

Availability builds trust. Since most software moved to the cloud, people expect them to be available anytime. ALL the time! Not breaking this expectation builds trust and pays off in the long term.

This article is part of a larger series about Igniting Your Startup.

About Lucian Daniliuc

Lucian Daniliuc is a Zend Certified Engineer and Certified Scrum Master with 10+ years of experience in development of software for the web, team & project management, local Agile Meetup organizer and passionate photographer.