5 вариантов использования DigitalOcean Load Balancer

Вступление

Балансировщики нагрузки DigitalOcean позволяют распределять входящий трафик между несколькими внутренними серверами. Часто это используется для распределения HTTP-запросов среди группы серверов приложений для увеличения общей емкости. Это распространенный способ масштабирования вашего приложения.

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

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

[[1-load-balancing-for-scale]] === 1. Балансировка нагрузки для масштаба

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

изображение: https: //assets.digitalocean.com/articles/lb-use-cases/lb-scale.png [Диаграмма масштабирования балансировки нагрузки]

Балансеры нагрузки DigitalOcean позволяют распределять нагрузку с помощью двух разных алгоритмов: циклического перебора и наименьших соединений. Round Robin будет отправлять запросы каждому доступному внутреннему серверу по очереди, тогда как наименьшее количество подключений будет отправлять запросы на сервер с наименьшим количеством подключений. Циклический перебор - безусловно, наиболее часто используемая схема для балансировки нагрузки, но если у вас есть приложение, которое держит соединения открытыми в течение длительного времени, наименьшее количество соединений может лучше предотвращать перегрузку любого сервера.

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

[[2-high-availability]] === 2. Высокая доступность

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

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

изображение: https: //assets.digitalocean.com/articles/lb-use-cases/lb-ha.png [Диаграмма высокой доступности балансировщика нагрузки]

Проверка работоспособности может быть настроена в области * Настройки * панели управления Load Balancer:

изображение: https: //assets.digitalocean.com/articles/lb-use-cases/health-check.png [Интерфейс проверки работоспособности балансировщика нагрузки]

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

[[3-blue-green-deployments]] === 3. Синие / Зеленые Развертывания

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

изображение: https: //assets.digitalocean.com/articles/lb-use-cases/lb-blue-green.png [Диаграмма развертывания балансировщика нагрузки сине-зеленого цвета]

Балансировщики нагрузки DigitalOcean упрощают развертывание сине-зеленых за счет использования функции тегирования Droplet. Балансировщики нагрузки могут отправлять трафик группе серверов на основе их тега, поэтому вы можете иметь один набор капель с тегом * blue *, а другой * green *. Когда пришло время сократить, переключите тег на панели управления Load Balancer или через API:

изображение: https: //assets.digitalocean.com/articles/lb-use-cases/edit-tag.png [Load Balancer добавляет капли через интерфейс тегов]

После того, как вы сохраните свои изменения, трафик быстро переключится на новый набор Droplets.

[[4-canary-deployments]] === 4. Канарские Развертывания

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

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

изображение: https: //assets.digitalocean.com/articles/lb-use-cases/sticky-session.png [Интерфейс липких сессий балансировщика нагрузки]

Sticky сессии будут использовать cookie, чтобы гарантировать, что будущие соединения от определенного браузера будут продолжать маршрутизироваться на тот же сервер. Вы можете получить доступ к этой функции в области * Дополнительные настройки * панели управления Load Balancer.

[[5-a-b-deployment]] === 5. Развертывание A / B

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

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

Заключение

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

Более подробную и специализированную информацию о балансировщиках нагрузки DigitalOcean можно найти в следующих руководствах:

Related