Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Assume a website infrastructure is very complicated and is fully distributed (probably like most large web companies).

Am I right in thinking that although there are all these extra web servers to handle multiple client requests, there is still a single "machine" whereby users must enter? I am guessing this machine will be the one physically associated to the IP address?

I ask because I need to know whether, in places where distributed systems exist, there is still a single point of failure- usually the control node or, in this example, the machine connected to the public internet? Surely there cannot be two machines connected to the internet, as they would have to have different IP addresses?

This "machine" may not be a server per se, but maybe it is a piece of cisco equipment. I just need to know whether, in the real world, these distributed systems still have a particular section where they depend on the integrity of one electronic device?

share|improve this question

closed as off topic by Canadian Luke, Zoredache, slhck, soandos, Ƭᴇcʜιᴇ007 Jun 30 '12 at 0:19

Questions on Super User are expected to relate to computer software or computer hardware within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

    
It is certainly possible to build systems where there is no single point of failure. This is often expensive, and many of the techniques to accomplish this require some pretty complex configuration. –  Zoredache Jun 29 '12 at 19:40
    

4 Answers 4

There can be but does not need to be one machine all requests go through, often this machine is called the load balancer. However if each request a client makes is self contained, or if the distributed front end can talk to a distributed back end that is in sync, A client can talk to a different machine for every request it makes.

All that needs to happen is either the client gives the independent machine all the information it needs to complete the request in the request by itself, or the server makes a query to a back-end distributed database against a token (often a cookie for websites) and the server can pick up where the other machine left off.

share|improve this answer

To answer your question, No, you can build a website infrastructure with no single points of failure.

DNS round-robin allows for multiple IPs to be associated with a single domain name; each of these front-ends can in turn talk to clustered backend systems, whereby there are multiple independent copies of the databases, which are continuously synchronized.

Jeff Atwood actually blogged about Netflix's work in making their system impervious to single points of failure, including a daemon that randomly takes down services / instances that they use for testing.

share|improve this answer

Some examples:

Make a Website Highly Available with IP Failover, Heartbeat and Pacemaker on Ubuntu 9.10 (Karmic)

Microsoft Cluster Server (MSCS) provides the ability to define an IP address resource within a cluster, and for it to failover from one node to another.

The same principles can be applied to any front-end system, such as a load balancer whose job is to distribute incoming HTTP requests to web-server nodes in a server farm.

share|improve this answer

There can be (and often are) multiple different IP addresses associated with a single domain name. For example, google.com currently resolves (for me) to:

Name:   google.com
Address: 173.194.34.129
Name:   google.com
Address: 173.194.34.130
Name:   google.com
Address: 173.194.34.131
Name:   google.com
Address: 173.194.34.132
Name:   google.com
Address: 173.194.34.133
Name:   google.com
Address: 173.194.34.134
Name:   google.com
Address: 173.194.34.135
Name:   google.com
Address: 173.194.34.136
Name:   google.com
Address: 173.194.34.137
Name:   google.com
Address: 173.194.34.142
Name:   google.com
Address: 173.194.34.128

Web browser behaviour varies, but generally it will try one IP address at random, and move on to another one if it gets no reply from the first. So there is no single point of failure here.

share|improve this answer

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