Насколько я понимаю, когда я открываю такой веб-сайт, как Google, ищется имя хоста, и мой браузер использует полученный IP-адрес для подключения к серверу и получения страницы.
Однако как веб-сайты высокой доступности гарантируют, что этот единственный IP-адрес всегда доступен? разве это не единственная точка отказа?
Существует два общих решения для обеспечения высокой доступности веб-сайтов: циклический перебор DNS и балансировка IP-нагрузки.
Циклический перебор DNS означает, что вы получаете разные IP-адреса каждый раз, когда запрашиваете DNS-сервер для имени сайта; это помогает распределять запросы между несколькими серверами, а также позволяет избежать указанной вами единой точки отказа. Это ответ DNS для www.google.com
(при запросе на один из авторитетных серверов имен для домена "google.com"):
> www.google.com
Server: ns1.google.com
Address: 216.239.32.10
www.google.com canonical name = www.l.google.com
www.l.google.com internet address = 74.125.77.99
www.l.google.com internet address = 74.125.77.104
www.l.google.com internet address = 74.125.77.147
Еще одно распространенное решение, которое могло также одновременно использоваться (и весьма вероятно, что в этом случае) - это балансировка IP-нагрузки; т.е. эти IP-адреса фактически не назначаются серверам, а вместо этого назначаются устройствам балансировки нагрузки (или обратным прокси-серверам, или любому другому аналогичному решению), которые затем перенаправляют запросы на один из нескольких внутренних серверов; если один из этих серверов выйдет из строя, будет использован другой.
Больше информации здесь:
http://en.wikipedia.org/wiki/Round_robin_DNS
http://en.wikipedia.org/wiki/Load_balancing_(computing)
IP-адрес не обязательно является SPOF, так как на него, безусловно, можно динамически повторно воздействовать (иначе говоря, переключение при отказе) на исправный сервер, если предыдущий, удерживающий его, выйдет из строя.
Google, скорее всего, использует ТРИ подхода одновременно:
Собственно все это красиво описано.
http://en.wikipedia.org/wiki/Google_platform
Обратите внимание, что мы говорим о СОТНИ ТЫСЯЧ СЕРВЕРОВ. МНОГИЕ дата-центры заполнены всякой всячиной.
Google особенный в том, что серверы в значительной степени доступны только для чтения. Они получают копию индекса и обслуживают ее до тех пор, пока не будут преобразованы в новую обновленную копию. Для отвечающего кластера никогда не производится никаких обновлений. Это необычно для приложения - но не потому, что Google умен или что-то в этом роде, а просто потому, что его требования необычны.
Сайты высокой доступности используют множество технологий, например корневые DNS-серверы, для доступа к ним в любое время.
Фактически, чтобы обезопасить себя от атак и сбоев, мы можем развернуть множество решений, например: