Гарантированная внешняя служба HTTP-переадресации (надежный балансировщик нагрузки в облаке) [закрыто]

Моя ситуация довольно проста и, я думаю, она встречается довольно часто. У меня есть несколько проектов, которые выглядят почти одинаково - один проект состоит из:

  1. Серверов статического контента - есть несколько достойных решений CDN, которые решают эту проблему;
  2. Серверы HTTP Frontend - которые должны получать входящие запросы, распределять их по внутренним серверам, получать ответы и отправлять их пользователям
  3. Внутренние HTTP-серверы - масштабируемые, правильно распределенные по всему миру
  4. Серверы баз данных / серверы NoSQL / все, что хранит данные

Проблема здесь ( 2) - фронтенд-серверы. Мы используем несколько технологий для обеспечения отказоустойчивости и балансировки нагрузки с помощью внешних интерфейсов, а именно:

  • циклический перебор DNS и переключение зон DNS - не совсем , что хорошо справляется с балансировкой нагрузки, очень медленно восстанавливается после сбоя (т.е. переключение зон DNS занимает не менее 15-20 минут на практике даже с 1-минутным TTL).
  • Переключение BGP - довольно дорого, требует больших организационных усилий (т. Е.получение как минимум / 23 блока IP-адреса), не очень практично переключаться между более чем двумя путями
  • Anycast BGP - в основном, также довольно дорого и сложно
  • Переключение между серверами в одном центре обработки данных с использованием VRRP / CARP в маршрутизатор - наиболее жизнеспособная альтернатива, но не совсем отказоустойчивая из-за того, что единственный центр обработки данных является SPoF

Если подумать, я подумал, что должно быть готовым SaaS-решением для этой проблемы. В нашем следующем проекте я мечтаю сделать его таким образом:

  1. Создать бэкенды, развернуть их по всему миру, подготовить их IP-адреса
  2. Купить доменное имя
  3. Подпишитесь на внешнюю службу, которая:
    • Предоставьте мне IP-адреса, на которые я буду указывать в моем доменном имени.
    • Иметь гарантированно, что веб-серверы будут постоянно прослушивать эти IP-адреса
    • Мониторинг мои бэкэнды
    • Перенаправлять запросы, которые он получает, к наименее загруженному рабочему бэкэнду (в идеале, корректировка политики балансировки нагрузки с использованием некоторых принципов географической / сетевой задержки)
    • Получение ответа от бэкэнда и отправка его обратно пользователю

I сделал домашнее задание и обнаружил, что существует несколько доступных SaaS-решений для балансировки нагрузки:

  • Amazon CloudFront - но на самом деле это не сервер пересылки внешнего интерфейса , а интерфейс, обслуживающий контент (т. е.в основном CDN как услуга)
  • Amazon Elastic Load Balancing - похоже, это то, что я искал, но он не работает с серверными модулями, не размещенными на EC2
  • Azure , похоже, включает некоторые своего рода «балансировщик нагрузки», но он также работает только с серверами, размещенными в Azure
  • Облачные балансировщики нагрузки RackSpace , похоже, также работают только с серверными модулями, размещенными на RackSpace
  • , Storm Cloud Load Balancer , опять же, похоже, работает только с серверами, размещенными на Storm

. Интересно, существует ли что-нибудь еще, что могло бы сделать развертывание моей мечты реальностью? Может я ошибаюсь и такого не существует? Или я просто ищу неправильный термин, а для такой службы уже есть другой общепринятый термин?

0
задан 30 November 2012 в 03:00
1 ответ

Я бы погуглил "глобальная балансировка нагрузки" или «глобальное управление трафиком».

Есть несколько продуктов от обычных плееров ...

Akamai http://www.akamai.com/html/solutions/gtm.html

F5 http://www.f5.com/it-management/solutions/global-load-balancing/overview/

1
ответ дан 4 December 2019 в 21:33

Теги

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