Автомасштабирование - Autoscaling

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

Преимущества

Автомасштабирование дает следующие преимущества:

  • Для компаний, использующих собственную инфраструктуру веб-серверов, автомасштабирование обычно означает перевод некоторых серверов в спящий режим в периоды низкой нагрузки, что позволяет сэкономить на электроэнергии (а также на расходах на воду, если вода используется для охлаждения машин).
  • Для компаний, использующих инфраструктуру, размещенную в облаке, автомасштабирование может означать более низкие счета, поскольку большинство поставщиков облачных услуг взимают плату на основе общего использования, а не максимальной емкости.
  • Даже для компаний, которые не могут уменьшить общую вычислительную мощность, которую они используют или оплачивают в любой момент времени, автоматическое масштабирование может помочь, позволяя компании выполнять менее чувствительные ко времени рабочие нагрузки на машинах, которые освобождаются за счет автомасштабирования в периоды низкого трафика.
  • Решения автомасштабирования, такие как предлагаемые Amazon Web Services, также могут позаботиться о замене неработоспособных экземпляров и, следовательно, в некоторой степени защитить от сбоев оборудования, сети и приложений.
  • Автомасштабирование может обеспечить большее время безотказной работы и большую доступность в случаях, когда производственные рабочие нагрузки изменчивы и непредсказуемы.

Автомасштабирование отличается от фиксированного ежедневного, еженедельного или годового цикла использования сервера тем, что оно реагирует на фактические шаблоны использования и, таким образом, снижает потенциальный недостаток наличия слишком малого или слишком большого количества серверов для нагрузки трафика. Например, если в полночь трафик обычно ниже, то решение для статического масштабирования может запланировать некоторые серверы на ночь, но это может привести к простоям в ночное время, когда люди чаще пользуются Интернетом (например, из-за вирусной нагрузки). новостное событие). С другой стороны, автомасштабирование может лучше справляться с неожиданными скачками трафика.

Терминология

В приведенном ниже списке мы используем терминологию, используемую Amazon Web Services (AWS). Однако указываются альтернативные имена, и терминология, относящаяся к именам сервисов Amazon, не используется для имен.

Имя (используется в AWS, если не указано иное) Смысл Альтернативные названия (используются в Google Cloud Platform, Microsoft Azure или других платформах)
Пример Отдельный сервер или компьютер, входящий в группу машин, подлежащих автомасштабированию.
Группа автомасштабирования Коллекция экземпляров, подлежащих автомасштабированию, вместе со всеми связанными политиками и информацией о состоянии. Группа управляемых экземпляров (Google Cloud Platform)
Размер Количество экземпляров, которые в настоящее время входят в группу автомасштабирования.
Желаемая вместимость (или желаемый размер) Количество экземпляров, которые должна иметь группа автомасштабирования в любой момент времени. Если размер меньше желаемого, группа автомасштабирования попытается запустить (подготовить и присоединить) новые экземпляры. Если размер больше желаемого, группа автомасштабирования попытается удалить (отсоединить и завершить) экземпляры.
Минимальный размер Количество экземпляров, ниже которых желаемая мощность не может упасть
Максимальный размер Количество экземпляров, выше которых желаемая мощность не может возрасти
Метрическая Измерение (например, использование ЦП, использование памяти, использование сети), связанное с группой автомасштабирования, для которого регулярно генерируется временной ряд точек данных. Пороговые значения для показателей можно использовать для установки политик автомасштабирования. Показатели могут быть основаны на совокупности показателей для экземпляров группы автомасштабирования или на балансировщиках нагрузки, связанных с группой автомасштабирования.
Политика масштабирования (или политика автомасштабирования) Политика, которая определяет изменение желаемой емкости группы автомасштабирования (или иногда ее минимального и максимального размера) в ответ на превышение метриками определенных пороговых значений. Политики масштабирования могут иметь связанные периоды восстановления, которые предотвращают выполнение дополнительных действий масштабирования сразу после определенного действия масштабирования. Изменения желаемой емкости могут быть инкрементными (увеличение или уменьшение на определенное число) или могут указывать новое значение желаемой емкости. Политики, которые увеличивают желаемую емкость, называются политиками «масштабирования» или «масштабирования», а политики, уменьшающие желаемую емкость, называются политиками «масштабирования» или «масштабирования».
Проверка состояния здоровья Способ для группы автомасштабирования определить, правильно ли работают подключенные к ней экземпляры. Проверка работоспособности может быть основана на том, существует ли еще экземпляр и доступен ли он, или на том, зарегистрирован ли экземпляр и находится ли он в эксплуатации со связанным балансировщиком нагрузки.
Конфигурация запуска Описание параметров и скриптов, используемых при запуске нового экземпляра. Сюда входят тип инстанса, варианты приобретения (например, спотовая или по требованию в случае AWS), возможные зоны доступности для запуска, образ машины и скрипты для запуска при запуске. Шаблон экземпляра (Google Cloud Platform)
Масштабирование вручную Действие масштабирования, выполняемое вручную
Запланированное масштабирование Политика масштабирования, которая выполняется в определенное время, например, время дня, недели, месяца или года. См. #Scheduled scaling для получения дополнительной информации.

Упражняться

Веб-сервисы Amazon (AWS)

Автоматическое масштабирование

Amazon Web Services запустила сервис Amazon Elastic Compute Cloud (EC2) в августе 2006 года, который позволил разработчикам программно создавать и завершать инстансы (машины). Во время первоначального запуска AWS не предлагала автомасштабирование, но возможность программно создавать и завершать инстансы давала разработчикам гибкость в написании собственного кода для автомасштабирования.

Стороннее программное обеспечение автомасштабирования для AWS начало появляться примерно в апреле 2008 года. К ним относятся инструменты Scalr и RightScale. RightScale использовалась Animoto, которая смогла обрабатывать трафик Facebook, приняв автоматическое масштабирование.

18 мая 2009 года Amazon запустила собственную функцию автомасштабирования вместе с эластичной балансировкой нагрузки в составе Amazon Elastic Compute Cloud . Автомасштабирование теперь является неотъемлемой частью предложения Amazon EC2. Автомасштабирование в Amazon Web Services выполняется через веб-браузер или инструмент командной строки. В мае 2016 года автомасштабирование также было предложено в сервисе AWS ECS.

Поставщик видео по запросу Netflix задокументировал использование автомасштабирования с помощью Amazon Web Services для удовлетворения весьма изменчивых потребительских потребностей. Они обнаружили, что агрессивное масштабирование и отложенное и осторожное уменьшение лучше всего служат их целям безотказной работы и быстродействия.

В статье для TechCrunch Зев Ладерман, соучредитель и генеральный директор Newvem, сервиса, который помогает оптимизировать облачную инфраструктуру AWS, рекомендовал стартапам использовать автоматическое масштабирование, чтобы снизить затраты на свои веб-сервисы Amazon.

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

Microsoft Windows Azure

27 июня 2013 года Microsoft объявила о добавлении поддержки автомасштабирования в свою платформу облачных вычислений Windows Azure . Документация по этой функции доступна в Microsoft Developer Network .

Oracle Cloud

Oracle Cloud Platform позволяет экземплярам серверов автоматически увеличивать или уменьшать масштаб кластера путем определения правила автоматического масштабирования. Эти правила основаны на использовании ЦП и / или памяти и определяют, когда добавлять или удалять узлы.

Облачная платформа Google

17 ноября 2014 года Google Compute Engine анонсировал публичную бета-версию своей функции автомасштабирования для использования в приложениях Google Cloud Platform . По состоянию на март 2015 года инструмент автомасштабирования все еще находится в стадии бета-тестирования.

Facebook

В сообщении в блоге в августе 2014 года инженер Facebook сообщил, что компания начала использовать автоматическое масштабирование, чтобы снизить затраты на электроэнергию. В сообщении в блоге сообщается о снижении потребления энергии на 27% в часы низкой загруженности (около полуночи) и на 10-15% снижение потребления энергии в течение типичного 24-часового цикла.

Автоматическое масштабирование горизонтальных модулей Kubernetes

Kubernetes Horizontal Pod Autoscaler автоматически масштабирует количество модулей в контроллере репликации , развертывании или наборе реплик в зависимости от наблюдаемой загрузки ЦП (или, при бета-поддержке, на некоторых других метриках, предоставляемых приложением )

Альтернативные подходы к решению автомасштабирования

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

Подход к автоматическому масштабированию по расписанию

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

Предсказательное автомасштабирование

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

Netflix обнаружил, что для частей их инфраструктуры и конкретных рабочих нагрузок Scryer, их механизм прогнозной аналитики, дает лучшие результаты, чем подход реактивного автомасштабирования Amazon. В частности, это было лучше для:

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

20 ноября 2018 г. AWS объявила, что прогнозирующее масштабирование будет доступно в рамках своего предложения по автоматическому масштабированию.

Смотрите также

Рекомендации