Русский
Русский
English
Статистика
Реклама

Балансировщик

Соедините. С успехом

24.06.2020 14:16:49 | Автор: admin
Традиционные каналы передачи данных еще много лет будут исправно выполнять свою функцию, однако приемлемыми по цене они становятся только в густонаселенной застройке. В других условиях нужны другие решения, которые смогут дать надежную скоростную связь за разумные деньги.

image

Есть несколько классов технологий, претендующих на решение проблем связи там, где традиционные каналы связи отсутствуют или экономически нецелесообразны. Балансировщики, агрегаторы и сумматоры с виду делают одно и то же, однако принципиально различаются по качеству решения задач. Давайте разбираться.


Балансировщики


В один момент времени работает любой один канал. Это решает вопрос надежности за счет резервирования, но не дает прироста скорости. При этом подавляющее большинство балансировщиков не проверяют какой канал быстрее и переключаются просто на тот который работает. 80% решений на рынке которые используются несколько SIM-карт именно такие Балансировщики при пропадании связи через один канал автоматически переключает связь на другой.

image

Есть отдельный переходный класс между балансировщиком и агрегатором. Скорость в несколько потоков, например от нескольких пользователей одновременно, будет выше, чем на любом одном. Такой подход при правильной реализации даже не требует инфраструктуры терминирования трафика и широко используется в классе недорогих роутеров. Решение способно дать совокупно высокую скорость, но каждый отдельный пользователь будет получать скорость доступную только по одному каналу. Качать торренты на таком устройстве можно очень комфортно.

Решаемая задача
Повышение надежности. Резервирование каналов передачи данных.

Ключевая характеристика
1. Скорость переключения с нерабочего канала на рабочий. Чем быстрее устройство понимает что один канал нерабочий и нужно переключится на другой тем лучше
2. Приоритетная работа по самому скоростному каналу

Плюсы
1. Цена устройства. Самое дешевое решение на рынке
2. Не требует промежуточной инфраструктуры терминирования трафика
3. Не требуют квалифицированного персонала для пользования и обслуживания

Минусы
1. Нет проверки качества канала. Устройство может переключится на канал с посредственной связью, в то время как соседний канал гораздо быстрее.

Целевое применение
Сервисы, не требующие высокой скорости передачи данных и готовые к непродолжительному простою

Агрегаторы


Этот термин пришел из английского aggregate. В контексте систем передачи данных он используется очень давно и применяется в решениях для объединения физических проводных и оптических каналов передачи данных.
Это более продвинуты системы по сравнению с балансировщиками они используют одновременно несколько каналов передачи данных. Через каждый канал, создается соединение с промежуточным сервером, на котором трафик объединяется и передается далее целевому сервису. Поэтому, если пропадают даже несколько каналов, передача данных не обрывается. Т.е тут нет понятия переключения с одного канала на другой. Также нужно отметить, что на беспроводных каналах передачи данных, вопреки устоявшемуся мнению, большинство таких решений не увеличивает скорость передачи данных или увеличивают ее незначительно. Например 4 канала по 10 Мбит/с в сумме должны дать 40 Мбит, однако агрегаторы дадут около 12-18. Это предельные показатели увеличения скорости в идеальных условиях, которые зависят от утилизации агрегируемых каналов. Так происходит из-за большой неравномерной энтропии в каналах. Нетривиальная задача объединить каналы с разной пропускной способностью, а главное разными задержками.
Это безусловно лучше, чем десять, но сильно меньше ожидаемых сорока. Недобросовестные производители пытаются скрыть этот недостаток используя связку прокси-сервер + замена адреса источника. В этом случае скорость поднимается в разы, однако работает это только в тех случаях, когда соединение инициировано со стороны устройства. Если инициировать соединение с внешнего мира, то этот прием уже не сработает. Если вы захотите объединить две сети, например точку продаж с головным офисом или поезд с центральной сетью агрегатор не справится с задачей, потому что скорость на устройство будет в 10 раз меньше, чем от устройства. Кроме того, в случае применения в сетях оператора связи, такие манипуляции гарантированно создают вопросы со стороны регулирующих органов в части системы оперативно-розыскных мероприятий (СОРМ).

Решения для агрегации беспроводных каналов передачи данных относительно простые, не требуют вложений в наукоемкие исследования. Почти все они содержат в своей основе только готовые широко описанные Open Source решения. Производители предпочитают сделать несложный WEB-интерфейс и выдавать это за инновационную разработку. Такой подход очень распространен в России.

image

Решаемая задача
Прекрасное резервирование каналов передачи данных. Незначительное увеличение скорости.

Ключевая характеристика
Утилизация агрегируемых каналов. При использовании прокси-сервера утилизация достигает 90%. В L3 туннеле, предельные значения для решений агрегации беспроводных каналов падает до 60%. Это значит, что из 10 Мбит/с каждого канала будет использоваться в пределе шесть, а общая скорость от четырех каналов составит 18 Мбит/с и это в идеальных условиях.

Минусы
1. Цена устройства. Кратно дороже обычных балансировщиков
2. Наличие ежемесячных платежей, поскольку требует промежуточной инфраструктуры терминирования трафика
3. Для обслуживания нужен специально обученный технический персонал
4. Низкая утилизация каналов передачи данных в L3 туннеле
5. Применение прокси-серверов дает несимметричную сеть и адресацию

Плюсы
1. Очень хорошо решает задачу резервирования каналов передачи данных
2. При использовании прокси-сервера дает высокую скорость передачи данных если соединение инициировано со стороны устройства

Целевое применение
Сервисы, нуждающиеся в стабильной связи, не требующие наличия L3 туннеля. Частные домохозяйства, простые топологии, не требующие симметричной сети. Не применим для промышленных объектов и сетей оператора связи.

Сумматоры


В контексте каналов передачи данных этот термин появился в России всего несколько лет назад. Эти решения очень похожи на агрегаторы, но радикально отличаются тем, что, сохраняя все их плюсы, дают кратный прирост скорости в настоящем L3 (а у некоторых даже L2) туннеле. Утилизация каналов передачи данных у сумматоров около 90%. Например, там, где агрегатор даст 40 Мбит/с, сумматор уверенно даст 70. Поэтому его и называют сумматором. Это очень сложная задача и она требует серьезных наукоемких исследований.
Если кратко, то сумматоры решили проблемы агрегатора, поэтому обеспечивают высокую скорость, ровную топологию сети без особенностей и поэтому простое, понятное любому инженеру управление сетью.

image

Более подробная схема и принцип работы

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

Решаемая задача
Впечатляющая надежность. Кратное увеличение скорости.

Ключевая характеристика
Утилизация агрегируемых каналов в L3. Средняя утилизация на уровне 90%.

Минусы
1. Наличие ежемесячных платежей, поскольку требует промежуточной инфраструктуры терминирования трафика.
2. Цена сопоставимая с агрегатором

Плюсы
1. Высокоэффективное решение задачи резервирования каналов передачи данных.
2. Большое увеличение скорости и пропускной способности каналов в L3 туннеле.

Целевое применение
Коммерческие, промышленные и государственные сервисы, требующие высокой скорости и надежности передачи данных. Ограничений на применение нет.

Комплексное решение


Технологии увеличения надежности и пропускной способности, кроме своей основной функции должны быть легко управляемым и масштабируемым, быть комплексными решениями проблем конечного пользователя и не решать задачу фрагментарно перекладывая большую часть инфраструктурных и эксплуатационных задач на компетенции заказчика.

Что еще необходимо, чтобы решение было комплексным?

1. Единая система управления сетью
Она дает возможность управлять всеми устройствами сети централизовано обновлять прошивку и конфигурацию, выводить предупреждения и аварии, балансировать нагрузку на сеть. Прозрачно управлять всеми функциями каждого устройства в отдельности и, в отдельных случаях, видеть локацию устройства и его ключевые характеристики на интерактивной карте.
Качественная система управления сетью экономит на инженерном персонале, уменьшает время решения проблем и делает все то, что обычно делает мозг.

2. Надежность
Технология подразумевает использование сервера терминирования трафика, который всегда стоит между устройством и целевым сервисом. Он может стать единой точкой отказа. Если решение автоматически не умеет перераспределять трафик от устройств до серверов терминирования, обеспечивать автоматический failover, его не рекомендуется использовать для коммерческого применения.
Это очень важно. Без автоматической системы резервирования, самая скоростная сеть рано или поздно превратиться в сеть из кирпичей.

3. Качественный мониторинг
Подавляющее большинство решений не может регистрировать ключевые метрики работы устройств, когда те не были в сети. Т.е если есть проблема с сетью, оператор системы не сможет провести ретроспективный анализ устройства и понять что именно было проблемой.
В критической инфраструктуре, устройства должны регистрировать максимальное количество метрик по каналам связи на случай разбора полетов, уметь это хранить и передавать в центральную систему не нагружая каналы. Ни одна open source система мониторинга одновременно не может экономить трафик и доставлять ретроспективные метрики.

4. Защищенность
Сеть должна быть максимально защищена от злонамеренного воздействия с одной стороны и быть полностью контролируемы заказчиком с другой.

5. Поддержка производителя в режиме 24/7
Очень сложно вести коммуникацию с производителем, если он находится в другом часовом поясе и говорит на другом языке или просто считает себя королем. Очень важно, чтобы реакция производителя на проблему клиента была минимальной, а решение действительно решало проблему
Подробнее..

Зачем нужен обратный прокси сервер в 5 актах

24.01.2021 18:21:50 | Автор: admin

На текущий момент есть большое разнообразие обратных прокси серверов. Я перечислю только парочку из них.

  • Nginx

  • Envoy

  • HAProxy

  • Traefik

Также у каждого уважающего себя клауд провайдера есть свой прокси сервер.

  • AWS Elastic LoadBalancer

  • Google Cloud Load Balancer

  • DigitalOcean Load Balancer

  • Azure load balancer

Дадим определение слову обратный прокси-сервер.

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

И картинку прилепим для наглядности.

Какую проблему решают прокси сервера?

Акт первый

У нас есть веб-сайт, который не поддерживает HTTPS(т.к. общение по TLS/SSL не программировали). Сказать девелоперам запилить это - легко, а вот самим девелоперам может быть напряжно с реализацией. Если у нас приложение монолит - нам нужно внести изменения в этот, чаще всего не поворотливый агрегат, и доставить это на продакшн, если у нас легкие микросервисы, каждый надо посетить, в каждый надо внести небольшие правки + опять таки всё это доставить.

Как решаем проблему? Берем ничем не занятого SysOps/DevOps, говорим, что нам нужен https. Какой-тоOps ставит нам прокси сервер настраивает его на приём HTTPS трафика + SSL termination. Задача решена, цена решения: 1 Какой-тоOps.

Акт второй

Да осталось у нас то самое приложение, да сделали инженеры его чтобы оно могло масштабироваться горизонтально, да подняли аж две копии приложения. Супер! Как настроить так, чтобы трафик равномерно на оба поступал?

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

В итоге: двух зайцев, так сказать.

Акт третий

Взломали нас "хакеры", беда. Дать такому повториться - ну никак нельзя.

Что нам для этого нужно? Перспективная китайская разработка - файрвол, чтоб и трафик от нежелательных пользователей фильтровать и от DDoS-атак оборонятся.

Чтож, и это проблему поможет нам прокси сервер решить, на него "вещаем" все эти настройки и никакие "хакеры" нашу мега-сесурити не обойдут. Главное настроить правильно, чтобы CEO при демках за хакера не посчитало.

Акт четвертый

Так-так, HTTPS - есть, балансировщик - есть, защита от хакеров - есть, казалось бы, сиди и чиль себе перед телеком, но снова что-то не так. Запросы по сети гуляют долго, пару десятков вообще не вернулись, клиенты в панике.

Анализируем проблему, ага, к гадалке - у нас огромный "пэйлоад в запросах" и парочка "популярных" конечных точек (пользователи любят часть сервиса и активно ей пользуются).

Чтож, лепим на уровне нашего прокси сервер сжатие запроса и кэшируем на нём ответы серверов приложения. Это что получается? Опять двух зайцев? Так точно!

Теперь запросы на холодную возвращаются быстрее некуда, а с кэшом, так и подавно.

Акт пятый

Простой мы уже сделали для клиентов нашего приложения жизнь, подумать о себе пора.

Новых функций в продакшн страдает доставка что если?

A/B тестирование можно настроить с прокси сервера помощью, что лучше может быть, чем отказ системы полный при багах в новом релизе? Правильно, у части пользователей только отказ.

После внедрения этой фичи, репутация вашего приложения не будет страдать так сильно, как страдала до внедрения A/B тестирования, т.к. негативные комментарии будут писаться только узким кругом "счастливчиков".

Суммируем выше сказанное

Функции которые предоставляют прокси-сервера:

  • Поддержка SSL/TLS трафика

  • SSL/TLS termination

  • Балансировка нагрузки

  • Проверка жизнеспособности целевых серверов

  • Сжатие содержимого

  • Кэширование запросов

  • Файрвол/DDoS-защита

  • A/B тестирование

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

Подробнее..

Антистресс для твоего сервера. Тестируем балансировщик нагрузки от Timeweb

07.06.2021 16:20:09 | Автор: admin

Привет, Хабр!


Сегодня мы расскажем сообществу о запуске нашего нового сервиса балансировщик нагрузки.

Сейчас услуга доступна для всех желающих в режиме открытого бета-тестирования в личном кабинете VDS. Это, конечно, бесплатно, а мы будем благодарны вам за комментарии и замечания.

Ребята, почему только сейчас?


Можете вполне резонно спросить вы. Мы, как и все, привыкаем к новой, постпандемийной (или еще нет?), реальности и отвечаем запросам наших клиентов.

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

Особенно актуальна услуга будет, когда одна VDS уже не справляется с нагрузкой или вы просто хотите повысить отказоустойчивость приложения.

Как это работает?


Балансировщик переправляет клиентские запросы на доступные рабочие серверы из группы. Регулярно опрашивая состояние серверов, балансировщик понимает, какие серверы активны и доступны для обработки клиентских запросов.

Если один или несколько серверов из группы перестают отвечать, они исключаются из балансировки, и клиенты не попадают на нерабочий сервер. Как только такие серверы восстанавливаются трафик на них автоматически возвращается, этим и занимается балансировщик, избавляя нас от необходимости самостоятельно следить за доступностью каждого сервера из группы.

Кроме того, благодаря возможности без труда добавлять новые серверы в группу, балансировщик обеспечивает горизонтальное масштабирование. Например, с ростом трафика или количества запросов вы можете добавлять новые серверы с вашим приложением в балансировку, и трафик начнет равномерно распределяться на всю группу, что позволит обрабатывать суммарно большее количество клиентских запросов.

Окей, это всё понятно, а как попробовать?


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

В правилах переадресации задаем параметры проброса трафика, указываем входящий и исходящий порт, а также протокол трафика из доступных: tcp, https, http, http2.



Далее вы можете выбрать один из двух доступных алгоритмов балансировки: Round Robin или Least Connections.

Какой алгоритм выбрать?


Round Robin алгоритм, при котором серверы перебираются по кругу: первый запрос передается на первый сервер, следующий на второй сервер, и так далее до последнего сервера, после чего цикл начинается заново.

Least Connections алгоритм, при котором каждый новый запрос передается на сервер с меньшим количеством активных подключений.

Для автоматического контроля доступности ваших серверов можно указать параметры в разделе Проверка доступности: просто задайте порт и протокол, а также интервалы для фонового мониторинга доступности серверов.

Теперь остается только выбрать ваши VDS или указать IP-адреса серверов. Кстати, вы можете использовать балансировщик не только с нашими VDS. Мы будем только за!

Для каждого балансировщика мы выделяем 2 машины с haproxy, которые занимаются балансировкой трафика, вторая машина в этой схеме является резервной и позволяет исключить проблемы с доступностью самого балансировщика, чтобы он не становился единой точкой отказа для всей системы.

Всю работу по мониторингу и обеспечению доступности серверов, на которых находится балансировщик, мы берем на себя.

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

Да начнется беспощадный бета-тест!



Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru