Я являюсь владельцем и управляю visualwebsiteoptimizer.com /. Приложение предоставляет фрагмент кода, который мои клиенты вставляют на свои веб-сайты для отслеживания определенных показателей. Поскольку фрагмент кода является внешним JavaScript (в верхней части кода сайта), перед отображением веб-сайта клиента браузер посетителя связывается с нашим сервером приложений. В случае отказа нашего сервера приложений браузер будет пытаться установить соединение до истечения времени ожидания (обычно 60 секунд). Как вы можете себе представить, мы не можем позволить себе отключить наш сервер приложений ни при каких обстоятельствах, потому что это негативно скажется на опыте не только посетителей нашего сайта, но и посетителей наших клиентов!
В настоящее время мы используем механизм аварийного переключения DNS с одним сервером резервного копирования, расположенным в другом центре обработки данных (фактически на другом континенте). Таким образом, мы контролируем наш сервер приложений из 3-х разных мест и, как только он обнаруживается, что он не работает, мы меняем запись A, чтобы указать IP резервного сервера. Это прекрасно работает для большинства браузеров (так как наш TTL составляет 2 минуты), но IE кэширует DNS в течение 30 минут, что может быть убийством сделки. Смотрите этот недавний пост нашего visualwebsiteoptimizer.com/split-testing-blog/maximum-theoretical-downtime-for-a-website-30-minutes/
Итак, какую настройку мы можем использовать для обеспечения практически мгновенного переключения при сбое в случае серьезного сбоя в работе центра обработки данных? Я прочитал здесь www.tenereillo.com/GSLBPageOfShame.htm, что наличие нескольких записей A является решением, но мы не можем позволить себе синхронизацию сеансов (пока). Еще одна стратегия, которую мы исследуем, - это две записи A, одна из которых указывает на сервер приложений, а вторая - на обратный прокси-сервер (расположенный в другом центре обработки данных), который разрешает доступ к основному серверу приложений, если он включен, и к серверу резервного копирования, если он работает. Считаете ли вы эту стратегию разумной?
Просто чтобы быть уверенным в наших приоритетах, мы можем позволить себе отключить собственный веб-сайт или приложение, но мы не можем позволить замедлить работу веб-сайта клиентов из-за нашего простоя. Поэтому, если наши серверы приложений не работают, мы не собираемся отвечать ответом приложения по умолчанию. Даже пустого ответа будет достаточно, нам просто нужно, чтобы браузер завершил это соединение HTTP (и ничего больше).
Ссылка: я прочитал эту ветку, которая была полезна serverfault.com/questions/69870/multiple-data-centers-and-http-traffic-dns-round-robin-is-the-only-way-to-assure
источник
Хорошо, это было задано некоторое время назад, но я впервые вижу это сейчас.
Вам следует:
Делать что-либо еще на самом деле безответственно. Я полагаю, у вас уже есть это на месте.
Вы не должны основывать свой сервис на уловках маршрутизации BGP, если у вас нет или не получено ноу-хау для этого. Сложные сценарии маршрутизации BGP решительно нетривиальны для реализации; не делайте этого сами, если у вас нет знаний о предметной области.
Ваш вопрос немного запутан. Анализ того, как создать высокодоступный сервис, начинается с данных приложения , потому что это ваше «состояние». Части без состояния легко сделать высокодоступными, а детали с полным состоянием - нет. Поэтому вместо того, чтобы сосредоточиться на своих серверах и DNS, посмотрите, где ваше приложение поддерживает состояние . Начните с оптимизации и, возможно, попросите совета по алгоритму переполнения стека. Не могли бы вы реализовать понятие транзакций и повторных попыток умного сервера в вашем файле Javascript fx?
источник
На самом деле, то, что вы хотите, может быть улучшено, чтобы облегчить вашу работу по разделенному тестированию, если вы объедините переходы geodns и dns.
Отправка группы A на ip 1 и группы B на ip 2, даже если они находятся на одном сервере, позволит вам разделить группы тестирования. Группа A и Группа B из разных географических регионов. Чтобы быть справедливым, на следующий день / неделю / месяц вы переворачиваете группы, чтобы убедиться, что вы учитываете географические различия. Просто чтобы быть строгим в вашей методологии.
Служба geodns / failover dns на http://edgedirector.com может сделать это
раскрытие: я связан с вышеупомянутой ссылкой, наткнулся здесь, исследуя статью о применении глупых трюков днс для сплит-тестирования.
источник