Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I work maintaining a SaaS software we have developed in-house, and it really can't be offline. Being offline will upset most of our clients and most probably will result in some contracts being lost.

We are hosting with a good hosting company - Media Temple, but recently we've had some down time due to their DNS server being down, and we really can't take this risk. I understand that hosting companies can't guarantee 100% uptime, so I was thinking if there is any fail-safe system for web hosting. I tried figuring it out, but it seems we always have a single point of failure. What is the safest way to host a site?

share|improve this question
3  
Even Amazon, Facebook, and Google have technical issues occasionally. 100% uptime is unachievable, and each 9 is much more expensive than the last. What's your budget? –  ceejayoz Jun 5 '11 at 16:24
    
What ceejayoz said... I would go with Amazon cloud –  David Mire Jun 5 '11 at 17:45
    
How about adding dns servers that are placed on other networks? –  Jonas Jun 5 '11 at 17:50
    
@ceejayoz well, my budget really isn't very large, and I understand that 100% uptime is unachievable, but if there is any way to at least have a backup server and being able to switch it, might be enough. But the problem seems to be that with web hosting you always have a single point of failure, so I wonder how this could be solved –  Waneck Jun 5 '11 at 18:37
    
@Jonas does that pay off? Are there any good dns services around? I doubt that MT would get back to have DNS problems, but it might be best to have them as an option. Can I setup those dns services as backup servers only? –  Waneck Jun 5 '11 at 18:41
show 1 more comment

4 Answers

up vote 1 down vote accepted

I was thinking about that, but after the latest technical issues they've had made me reconsider that. If there were a way just to make one server be the backup of another, I'd happily adopt e.g. Amazon and MT.

Yes, this is quite common. There's still always single points of failure, but you can make those points of failure ones less likely to fail.

If you were to use Amazon's web services, you'd set up two identical EC2 instances. You'd have the databases connected via master-master replication, so each server has the same data, and you'd ensure that the same code is on both.

In front of those two servers, you'd have an Amazon ELB (Elastic Load Balancer). ELBs can detect if a server goes offline and take it out of rotation, and Amazon's scripts monitor your ELB and replace it if it starts going wonky.

Again, though, nothing is 100%. AWS had its own significant outage recently. It'll help, certainly, probably giving you another nine or two of reliability, but as I said in my comment, even parts of Facebook, Google, and Amazon go down at times.

share|improve this answer
    
Thanks for the answer ! Yeah, depending too much on Amazon might be a mistake, but I guess there isn't really a much safer solution. It seems that the way DNS is structured really makes it impossible to achieve a better solution. Thanks for the tip on ELB, I think we'll go for that! –  Waneck Jun 7 '11 at 4:24
    
You say that depending on Amazon too much might be a mistake, & you're right if your application absolutely must never be offline & you want a distributed solution. But if you just want to find a reliable provider ask: Are they more or less likely that Amazon (& other big providers) to suffer outages? Given the amount of money, thought & effort that these big players have put into their systems, the fact that they still have outages should tell you something about what's realistic in levels of availability, and how easy it is for stuff to happen no matter how good your supplier is. –  RobM Sep 30 '11 at 10:10
add comment

While there is no way to ensure 100% uptime, you might want to look into some king of load balancing solution such as keepalive. Load balancing will allow you to have multiple web servers for redundancy in case one of the servers goes down. Your current host should already offer some kind of load balancing setup.

share|improve this answer
add comment

You can improve availability of your DNS by using your own DNS servers hosted in multiple hosting companies (at least 2 different). Addresses of these name servers would be published in NS records on TLD nameservers which we can deem always available (this is true for at least huge TLDs like com.). If one of your nameservers fail, DNS resolvers will use another one automatically.

Take care to choose good hosting companies geographically distant one from another and using diferrent ISPs (they should have links from more ISPs though).

share|improve this answer
add comment

If this service is really, really important to your company then there is no choice but to bring it in house.

If you do that then you should have it hosted on at least two servers, on separate sites, each of which should have links to two ISPs, along with power feeds preferably from different suppliers. External links (power & data) need to enter the buildings via separate routes.

As far as if possible the servers should be put together (as is common these days anyway) so that the least reliable components (the power supply & hard disks) are doubled up. Obviously the network needs to be built so there is no single point of failure within the LAN.

Of course if the service is not really important then leave it with a third party that you will never be able to control and who will always have a good excuse that you can pass on to your customers (who will not understand why you are using a server that you have never seen).

share|improve this answer
    
Well, I think you're right. But we really don't have this kind of infrastructure by now, and we have tried bringing a server in house and it's just too expensive and too error-prone (we'd have to grow our infrastructure much more, and where we're based - Brazil - it's too expensive to guarantee a big uptime). So even if it's - I think - really the only way to solve this issue, by now I'm looking mostly for external solutions. –  Waneck Jun 7 '11 at 4:22
    
This is a poor answer. Many large companies are using cloud hosting. Netflix's business is built around EC2, for example, and I imagine that service is pretty critical to their bottom line. –  ceejayoz Jun 7 '11 at 14:13
    
@ceejayoz, you are, of course, entitled to your opinion, but my experience has been that when there has been a service failure customers want to know why it occurred and what has been done to prevent it happening again.Do netflix offer an SLA? Who are these other large companies that use another company's cloud to provide their mission critical service? –  blankabout Jun 7 '11 at 17:32
    
AWS offers an SLA, just like any datacenter/ISP/etc. you'll partner with. Unless you own your own datacenter, you have pretty much the same ability to fix/prevent/explain on EC2 as you would with colocation. –  ceejayoz Jun 7 '11 at 17:36
    
My point was that if you truly want to offer optimimum service then you have to control your own service on your own servers. The OP has said that is not possible at his location and I appreciate that is the case for many other organisations but ultimately that is the only possible way it is possible to ensure you are offering the best possible service. I'll ask my questions again: Do netflix (not Amazon) offer an SLA? Who are these large companies that use another company's cloud to provide their mission critical service? –  blankabout Jun 7 '11 at 18:15
show 1 more comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.