Как стать автором
Обновить

CISCO ACE. Часть 2: балансировка удаленных серверов и приложений

Время на прочтение5 мин
Количество просмотров12K


В первой части CISCO ACE — балансировка приложений мы немного окунулись в мир балансировки приложений и сетевых ресурсов. Познакомились с характеристиками, предназначением и возможностями семейства таких устройств. Рассмотрели основные сценарии внедрения и преимущества, которые нам приносит использование балансировщиков.

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

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии6

Распределение нагрузки на PPTP/L2TP серверы MPD5

Время на прочтение4 мин
Количество просмотров8.3K
image

Многие провайдеры на постсоветском пространстве самых разных масштабов предоставляют услуги Интернет по VPN туннелю, будь то PPPoE или PPTP/L2TP. О плюсах и минусах такого доступа я не буду рассказывать, т. к. данная тема смело поместиться в отдельную статью. Как правило для такого туннелирования используются либо серьезные железки (Cisco, Juniper, etc), либо софт-роутеры на базе FreeBSD и MPD5. Так вот, в этой статье пойдет речь о балансировке нагрузки на MPD5 серверы. На хабре уже был подобный топик, но там рассматривалось PPPoE, сегодня же разберем ситуацию с PPTP/L2TP.
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии31

Комбинированная балансировка нагрузки интернет-каналов

Время на прочтение3 мин
Количество просмотров42K

Предистория



Рано или поздно системный администратор сталкивается с необходимостью распределить трафик по нескольким каналам, при этом естественно желание чтобы каждый канал использовался по максимуму. Столкнувшись с подобной необходимостью, и решив не изобретать велосипед, обратился к помощи поисковиков. Так как сервер у меня на Ubuntu, то обратил свое внимание на статью http://help.ubuntu.ru/wiki/ip_balancing. Реализовал «Способ 1», но при тесте были замечены следующие критичные проблемы: при использовании ссылок на некоторых сайтах они не открывались (например при попытке включить музыку на ресурсе «ВКонтакте»). Причина очевидна — запрос шел через другой канал. Обдумав ситуацию, решил скомбинировать подход к балансировке. Логика проста — больше всего съедает трафика торренты и им подобные программы, поэтому разделяем трафик. В итоге трафик с портами до 11000 распределяем приблизительно равномерно по количеству абонентов — подсетями, трафиком с портами 11000-60000 выравниваем загрузку каналов.
Читать дальше →
Всего голосов 62: ↑56 и ↓6+50
Комментарии24

Как управлять железом в дата-центре с помощью звука

Время на прочтение4 мин
Количество просмотров5.7K
Исследователи из Университета Сент-Луиса в США разработали технологию music-defined networking, или MDN. Она балансирует нагрузку в сети, анализируя специальные звуковые сигналы, которые подает оборудование дата-центра. Рассказываем, как это работает.

Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии10

Как Контур балансирует нагрузку в микросервисах

Время на прочтение10 мин
Количество просмотров6.2K

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

Понятное дело, подавляющее большинство этих микросервисов реплицировано и распределено между разными дата-центрами — что делает задачу «сходить в соседний микросервис» сложнее, чем кажется. А потому нам очень важны умные механизмы межсервисного взаимодействия. Об одном из таких механизмов — балансировке нагрузки между репликами микросервисов — мы сегодня и поговорим.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии2

Алгоритмы балансировки нагрузки на Go

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров879

Салют Хабр и с наступающим новым годом!

Каждое приложение стремится быть доступным 24/7, балансировка нагрузки становится настоящим мастхевом.

В самом общем смысле, балансировка, это процесс распределения входящего трафика между несколькими серверами или ресурсами.

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

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии0

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

Время на прочтение6 мин
Количество просмотров98K
Итак, у вас есть нагруженный сервер и вам вдруг захотелось его разгрузить. Вы поставили и залили такой же (такие же), но пользователи упорно ходят на первый. В этом случае конечно же нужно задуматься о балансировке нагрузки.

Читать дальше →
Всего голосов 77: ↑77 и ↓0+77
Комментарии50

Google FalseStart на 30% ускоряет «рукопожатие» SSL

Время на прочтение2 мин
Количество просмотров966


В блоге Chromium разработчики из Google рассказали о своих успехах по внедрению SSL FalseStart (RFC). Это клиентская технология для браузера, которая не требует никаких изменений на стороне сервера, но при этом на 30% ускоряет подтверждение связи SSL (задержка измеряется как время между первоначальным пакетом TCP SYN и окончанием процедуры по TLS).
Читать дальше →
Всего голосов 39: ↑29 и ↓10+19
Комментарии8

Используем nginx, docker, skydns и skydock для обновления кода на лету (zero-downtime deployment)

Время на прочтение5 мин
Количество просмотров24K

Инструменты, которые мы будем использовать


Docker


Docker — простая и элегантная библиотека для создания легковесных изолированных друг от друга виртуальных контейнеров, в которых можно исполнять любой код. Совершенно не требователен к ресурсам, минимальный overhead.

Собрав контейнер один раз, его можно многократно использовать.

Простой пример — это БД Redis. Если нам необходимо несколько серверов Redis на одном компьютере, при обычном подходе нам придется изменять конфигурационные файлы в /etc/redis и менять файлы в /etc/init.d. Можно написать bash скрипт, но это не делает процесс легче.
Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии14

Балансировщики нагрузки в Microsoft Azure

Время на прочтение9 мин
Количество просмотров7.1K
Microsoft Azure предлагает сервис балансировки нагрузки для виртуальных машин (IaaS) и облачных служб (PaaS), запущенных в облаке Microsoft Azure. Помимо прочих достоинств, балансировка нагрузки позволяет масштабировать ваши приложения и дает возможность мягче реагировать при возникновении ошибки или отказа.

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

Диаграмма на рисунке ниже показывает пример приложения, расположенного в Microsoft Azure, которая использует балансировщик нагрузки для адресации входящего трафика (по адресу/порту 1.2.3.4:80) на три виртуальных машины, слушающих 80й порт (кликабельно).


Далее перечислены основные возможности балансировщика нагрузки в Microsoft Azure
Читать дальше →
Всего голосов 28: ↑20 и ↓8+12
Комментарии1

Балансировка нагрузки: основные алгоритмы и методы

Время на прочтение11 мин
Количество просмотров177K
балансировка нагрузки

Вопрос о планировании нагрузки следует решать ещё на ранней стадии развития любого веб-проекта. «Падение» сервера (а оно всегда происходит неожиданно, в самый неподходящий момент) чревато весьма серьёзными последствиями — как моральными, так и материальными. Первоначально проблемы недостаточной производительности сервера в связи ростом нагрузок можно решать путем наращивания мощности сервера, или же оптимизацией используемых алгоритмов, программных кодов и так далее. Но рано или поздно наступает момент, когда и эти меры оказываются недостаточными.

Приходится прибегать к кластеризации: несколько серверов объединяются в кластер; нагрузка между ними распределяется при помощи комплекса специальных методов, называемых балансировкой. Помимо решения проблемы высоких нагрузок кластеризация помогает также обеспечить резервирование серверов друг на друга.
Эффективность кластеризации напрямую зависит от того, как распределяется (балансируется) нагрузка между элементами кластера.

Балансировка нагрузки может осуществляться при помощи как аппаратных, так и программных инструментов. Об основных методах и алгоритмах и балансировки мы бы хотели рассказать в этой статье.
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии15

Jii: Масштабируемый комет сервер и клиент

Время на прочтение10 мин
Количество просмотров11K
Продолжаю серию статей про Jii Framework. Сегодня настал момент релиза комета, о котором я и расскажу в этой статье.



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

Jii-comet предоставляет набор компонентов и классов, которые упрощают обмен сообщениями между каналами, подписки на них, обмена данными между серверами и так далее. Сам модуль не умеет доставлять сообщения на клиент и обратно, но в нем заложена абстракция, чтобы это можно было делать любой из существующих популярных библиотек (например, socket.io, sockjs), а так же чтобы это было надежно и масштабируемо.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии7

Как мы победили сумрак между тестированием и эксплуатацией

Время на прочтение6 мин
Количество просмотров7.5K
Некоторое время назад мы в HeadHunter обнаружили “сумеречную зону” при передаче новой версии сайта из тестирования в эксплуатацию. Недостаточное внимание к разнице между тестовой и боевой инфраструктурой периодически приводило к падению сайта.

Выйти из сумрака

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

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

Эта статья продолжает мой доклад на SQA Days-18.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии3

Видео докладов Badoo с конференции Highload 2015

Время на прочтение1 мин
Количество просмотров13K
Наконец-то у нас появились видео выступления наших спикеров на Highload 2015, которые мы с удовольствием выкладываем.

Если у вас появятся вопросы к докладчикам, задавайте их в комментариях. Ребята на них обязательно ответят.

1. «Near-realtime аналитика событий в высоконагруженном проекте», доклад Александра Крашенинникова



Еще 3 отличных доклада
Всего голосов 25: ↑24 и ↓1+23
Комментарии1

Умпа-лумпы Интернет или как программировать DNS

Время на прочтение7 мин
Количество просмотров13K
Если ты занимаешься администрированием сетей и тебе необходимо управлять большим, постоянно меняющимся количеством серверов, или если ты разрабатываешь приложение использующее динамическую балансировку нагрузки, или если ты разворачиваешь многоязыковый веб-сайт тебе никак не обойти внимание вопросы, связанные с правильной настройкой DNS.

Как и в любом деле в Интернет есть свои невидимые и незаметные работники, ежедневно, ежечасно… ежемиллисекундно выполняющие свои незамысловатые рутинные операции. Это конечно же маршрутизаторы, коммутаторы и другие устройства доставляющие пакеты данных из одной точки в другую. В них есть собственные регулировщики загрузки, перенаправляющие потоки другим путем в случае образования заторов. Но откуда они все знают куда доставить эти пакеты? Знающий человек скажет — «так там указан IP-адрес» и будет прав. Но обычный веб-серфер, как правило и представления не имеет об IP адресах, но тем не менее несколько миллиардов простых веб-серферов вполне себе успешно «бороздят» Интернет. Такую возможность им, да и «лицо» современной сети Интернет определяет другой «умпа-лумп» — служба DNS.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии13

Приборы с балансировкой нагрузки в системах сетевого мониторинга или «что такое Network Packet Broker»

Время на прочтение7 мин
Количество просмотров14K
Недавно, в ходе работы над 100GE анализатором трафика передо мной была поставлена задача по изучению такого типа приборов, как Network Packet Broker (также встречается название Network Monitoring Switch), или, если просто и по-русски, «балансировщик».

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

Для тех, кому стало интересно, что же такого особенного в этом типе приборов, как они используются и почему именно «балансировщик» — прошу под кат.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии4

Что делать, когда не работает prepend

Время на прочтение8 мин
Количество просмотров8.7K


Хотим поделиться переводом серии заметок из блога Расса Уайта (Russ White), где он поднимает вопрос использования AS-PATH Prepend при подключении к Интернет-провайдерам по BGP.
При подключении организации к двум и более провайдерам по BGP могут возникать несколько задач. Например, избежать асимметричной маршрутизации, т. е., добиться, чтобы ответные пакеты возвращались через того же провайдера, через которого инициируется сессия. Или, наоборот, добиться равномерного распределения трафика по каналам провайдеров, не принимая во внимание асимметричную маршрутизацию. В обоих случаях влиять на маршрутизацию Интернет-провайдеров в сторону корпоративной сети можно с помощью BGP-атрибута AS-PATH. Но, к сожалению, данный подход далеко не всегда помогает добиться нужного результата. О проблемах использования AS-PATH Prepend как раз и пойдёт речь.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии3

Citrix NetScaler. Load Balancing: В помощь начинающему администратору

Время на прочтение4 мин
Количество просмотров17K
Друзья, я снова рад Вас приветствовать в цикле статей, посвящённых решениям Citrix. Но сегодня я не буду описывать, что, по результатам независимого исследования “магического квадрата Гартнера” (Gartner Magic Quadrant) в разрезе Application Delivery Controllers, описываемый ниже продукт находится в лидирующей тройке. Я хочу показать, что им можно и нужно пользоваться в разрезе “бытовых возможностей”. По моему опыту с Citrix NetScaler начинают сталкиваться администраторы средних и крупных компаний. И, как показывает практика и опыт, – в разрезе взаимодействия с Citrix XenDesktop / XenApp. А это говорит об одном: есть инструмент, который даже в бесплатной реализации может реализовать функционал, необходимый многим заказчикам для работы инфраструктуры веб-серверов и других компонентов, а следовательно может облегчить работу многим моим коллегам.


А именно хотел остановиться на некотором функционале, который обязательно пригодится? А именно — Балансировка нагрузки (Load Balancing). Казалось, вещь всем понятная, нужная, но к ее реализации зачастую подходим сквозь пальцы.

Кто-то скажет, зачем для небольших компаний использовать Citrix NetScaler, ведь есть решения на базе DNS — DNS Round Robin. Для балансировки нагрузки — это не самый хороший выбор. Отступая в сторону я бы сказал – это “’зло” и полная противоположность “Best Practices”. А брать в расчет Windows LBS при большом количестве более достойных альтернатив — это «не спортивно».

А теперь я покажу почему это именно так:

Диспозиция:

Имеем “зеркальных” 3 WEB сервера, NetScaler VPX, AD DNS. Полагаю настройку NS я опущу, т.к. настройку NetScaler многократно описывал.

Читать дальше →
Всего голосов 11: ↑8 и ↓3+5
Комментарии19

Как мы сделали ровную балансировку нагрузки на фронтенд-кластере

Время на прочтение10 мин
Количество просмотров19K

Юрий Насретдинов (youROCK, Badoo)


Юрий Насретдинов

Расшифровка доклада Юрия Насретдинова на конференции HighLoad++ 2015. Юрий расскажет про то, как Badoo (крупнейшая социальная сеть для знакомств с новыми людьми) сделали практически идеально ровную балансировку нагрузки на нашем кластере. Передаём ему слово...

Чтобы обслуживать то количество пользователей, то количество реквестов в секунду, которые мы получаем, у нас около трех тысяч серверов, и на PHP-FPM конкретно приходится 70 тысяч в пике.

О том, как мы эти запросы распределяем по нашему кластеру, я расскажу.



Кратко — о чем я буду рассказывать. Во-первых, я расскажу, как «с высоты птичьего полета» устроен роутинг запросов на нашем сайте. Потом расскажу, какие, вообще, существуют алгоритмы балансировки; про то, как мы делали балансировку до того, как мы сделали автоматическую систему. Расскажу про эту автоматическую систему, ну и будут кое-какие выводы. Также хотел сказать, что эта система будет выложена в open-source после этого доклада.
Всего голосов 35: ↑31 и ↓4+27
Комментарии15