Я знаю, как масштабировать свое программное обеспечение, но как предотвратить простои из-за сбоев в сети? [дубликат]

На этот вопрос уже есть ответ здесь:

У нас есть довольно большие сайты LAMP, которые хорошо масштабируются с точки зрения программного обеспечения. Мы используем избыточные балансировщики нагрузки перед кучей веб-серверов, использующих MySQL через прокси-сервер в режиме master-slave-slave-slave.

Мы пользуемся услугами очень крупного американского провайдера. Они не очень дешевые, но и не самые дорогие.

На прошлой неделе в их сети произошла очень большая DDOS-атака, и это затронуло наш кластер; мы ненадолго потеряли сеть, что привело к простою.

Какова стандартная процедура использования двух провайдеров (например, одного в ЕС и одного в США)? Я знаю, как делать репликацию программного обеспечения и т. Д.

Мне интересно, как данные отправляются в сеть ЕС, когда сеть США не работает; DNS - единственный выбор для этого? И если да, то как это настроить? Потому что переключение DNS, когда сервер не работает, кажется слишком медленным, за исключением случаев, когда TTL = 0, что означает, что мы будем использовать DNS в качестве системы аварийного переключения. Я понимаю (например, из Serverfault), что это не лучший метод работы.

Каков предпочтительный метод решения этой проблемы с почти 100% -ным временем безотказной работы (в нашем кластере он уже есть, а в сети нет). Отбросить около 1000 запросов было бы хорошо, но больше - плохо и никогда не должно происходить.

4
задан 16 February 2015 в 03:36
3 ответа

Принятие меня понимает Ваш вопрос правильно, Вы хотите сделать, чтобы Ваш клиент заменил к вторичному дата-центру, если основное устройство снижается по любой причине. Одним продуктом, который может обработать это, является менеджер по Суммарному трафику большого IP из f5 Сетей. По существу это собирается сразу обновить Ваш DNS, когда отключение электричества обнаруживается, чтобы начать перенаправлять клиенты к вторичной сети.

Другая опция может состоять в том, чтобы использовать, чему-то нравится, когда Передача любому из узлов широковещательно передает маршруты к Вашим дата-центрам.

Для прибавления к этому вопросу мы действительно действуем в нескольких дата-центрах и в конце, решил, что оптимальный маршрут был, чтобы инженер вручную переместил указатели DNS на альтернативное словосочетание в зависимости от причины отключения электричества. Худший вариант развития событий - то, что мы можем снизиться на 1 час, если один дата-центр абсолютно в режиме офлайн. Однако это взвешено против влияния клиента, когда мы действительно должны будем переключить дата-центры (недавнее действие не будет доступно в альтернативном месте).

Одна заключительная опция не состоит в том, чтобы полагаться на Ваш дата-центр, обеспечивают, чтобы дать Вам возможность соединения IP и пропускную способность. Вместо этого говорите с глобальным поставщиком IP как Глобальное Пересечение или Уровень 3 и позвольте им обработать маршрутизацию Вашего входящего трафика к любому дата-центру. Риск состоит в том, что Вы работаете с единственным поставщиком, но преимущество - то, что они могут быть намного более гибкими в своих параметрах маршрутизации (можно использовать MPLS в их сети для репликации бэкенда и также использовать то же соединение для Public IM Connectivity).

2
ответ дан 3 December 2019 в 03:37
  • 1
    Вы поняли правильно. У Вас есть какая-либо идея, как тот менеджер по Трафику работает технически? Поскольку это кажется хорошим, но that' s коммерческая цель. Как это работало бы технически? –  CharlesS 11 September 2009 в 21:29
  • 2
    Можно по существу посмотреть на GTM как на интеллектуальный сервер DNS. Вы устанавливаете правила об устройстве, чтобы определить, когда и как переключить DNS заканчивается между местоположениями (или географически загрузить баланс между местоположениями). Помеха здесь использует низкий TTL на DNS. –  Doug Luxem 12 September 2009 в 00:10
  • 3
    Добавленный некоторая дополнительная информация выше. –  Doug Luxem 12 September 2009 в 00:16
  • 4
    Akamai также имеют основанный на DNS продукт выравнивания нагрузки смутно под названием GTM. Это работает, но я haven' t попробовал его в гневе (т.е. между двумя или больше центрами обработки данных). Хорошей вещью с этим продуктом является вся Ваша логика выравнивания нагрузки, произошел на Akamai' s " cloud" таким образом, Вы don' t должны раскошелиться на 4 поля F5. Конечно, you' ll должны поместить, что-то в этом может обработать Вашу загрузку, хотя, таким образом, Вы могли бы закончить тем, что тратили большой блок так или иначе! –  Cawflands 5 February 2010 в 16:47

По существу существует 2 технологических варианта, доступные для этого (что я знаю):

  • Как OP, на который указывают, замените к другому DC путем обновления DNS так, чтобы записи указали на адреса в операционном центре обработки данных.
  • Передача любому из узлов IP, т.е. DNS публикует IP-адрес, и этот IP-адрес передается одному из узлов и используется в обоих центрах обработки данных, маршрутизаторы ведущего клиента для выбора ближайшего центра обработки данных. Обратите внимание, что, если центр обработки данных перестанет работать, то у клиента, 'ближайшего' этот DC, все еще будет короткое отключение электричества, пока маршруты BGP не приспособились.

Поскольку переключение DNS, когда сервер снижается, кажется слишком медленным кроме тех случаев, когда TTL = 0

Вы можете обнулить TTL, но не ожидаете, что все сети повинуются Вашей установке. На практике, приблизительно 10 минут самое низкое значение для TTL. И конечно это подразумевает, что основанная на DNS обработка отказа возьмет между 0 и 10 минутами для каждого клиента, в зависимости от Вашего TTL в их кэше.

Отбрасывание как 1 000 запросов было бы прекрасно, но больше плохо и никогда не должно происходить.

К самому лучшему из моего знания, которое является просто за пределами того, что технически возможно сегодня. Даже очень самые большие сайты используют DNS или основанную на передаче любому из узлов технологию, и очень стараются сохранить свои центры обработки данных около 100%-го времени работы, потому что нет никакого способа получить мгновенную обработку отказа на глобальном интернет-уровне.

В LAN можно использовать что-то как VMware VMotion для переключений действительно быстро, но это самостоятельно, от начала до конца управлял LAN.

Мое взятие - то, что глобальное выравнивание нагрузки непрактично за исключением очень самых больших сайтов с большой технической экспертизой:

  • Много устройств выравнивания нагрузки имеют геораспределение как функцию bulletpoint, но если весь DC снижается, так Ваша подсистема балансировки нагрузки? (Редактирование: Я просто перечитал ответ DLUX, и я думаю, что понимаю это теперь... Вы получаете две подсистемы балансировки нагрузки, помещаете один в каждый DC. Они настраивают heartbeat между ними. Когда LB в живом DC замечает, что его коллега в мертвом DC упал с сети, затем живой LB обновляет DNS для упрощения обработки отказа.)
  • Используя Передачу любому из узлов, которая что-то, я лично не попытался бы - технология существует и является операционной, но что, если существует странная, редкая проблема маршрутизации? Поиск и устранение неисправностей сетевых проблем достаточно труден, как это, ""оптимизирование"" на BGP нужно оставить истинным экспертам.
  • Таким образом, то, что оставляют, является основанной на DNS обработкой отказа, предпочтительно с помощью глобально дублируемого поставщика DNS, который предоставляет в виде сервиса расщепленный горизонт DNS. Это будет работать, и развертывание довольно просто. Это однако не удовлетворяет цели операции в секунду почти мгновенной обработки отказа.

Правовая оговорка, я хотел бы вход / исправления от истинного эксперта, который выставлял глобально избыточные системы много раз прежде... :-)

2
ответ дан 3 December 2019 в 03:37
  • 1
    Спасибо за этот большой ответ. Я надеялся, что будет некоторая проверенная на практике технология для этого доступного. I' m надеющийся на ' истинный эксперт с большим количеством experience' ответ здесь некоторое время больше. –  CharlesS 11 September 2009 в 23:26

Вы могли бы также изучить сеть распределения контента (например, Akamai). Разгрузка статического содержания и кэширование динамического контента к CDN могут значительно уменьшить нагрузку на Ваш кластер.

Akamai в особенности является действительно дорогим, но существуют другие, более дешевые альтернативы.

0
ответ дан 3 December 2019 в 03:37

Теги

Похожие вопросы