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

Автомасштабирование, также пишется автоматическое масштабирование или же автоматическое масштабирование, а иногда также называют автоматическое масштабирование, это метод, используемый в облачные вычисления, при этом количество вычислительных ресурсов в ферме серверов, обычно измеряемое количеством активных серверов, которое автоматически изменяется в зависимости от нагрузки на ферму. Обычно это означает, что количество серверов, за которые вы платите, увеличивается или уменьшается, поскольку пользователи заняты или не работают на ваших веб-серверах. Он тесно связан с идеей Балансировка нагрузки.[1][2]

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

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

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

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

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

В списке ниже мы используем терминологию, используемую Веб-сервисы Amazon (AWS).[8] Однако указываются альтернативные имена, и терминология, относящаяся к названиям сервисов Amazon, не используется для названий.

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

Упражняться

Amazon Web Services (AWS)

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

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

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

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

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

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

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

Microsoft Windows Azure

27 июня 2013 г. Microsoft объявил, что добавляет поддержку автомасштабирования в свой Windows Azure платформа облачных вычислений.[24][25][26] Документация по этой функции доступна на Сеть разработчиков Microsoft.[10][27]

Oracle Cloud

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

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

17 ноября 2014 г. Google Compute Engine объявила о публичном бета-тестировании функции автомасштабирования для использования в Облачная платформа Google Приложения.[29][30][31][32] По состоянию на март 2015 года инструмент автомасштабирования все еще находится в стадии бета-тестирования.[9]

Facebook

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. ^ «Над облаками: взгляд Беркли на облачные вычисления» (PDF). Беркли EECS. 10 февраля 2009 г.. Получено Двадцать первое марта, 2015.
  2. ^ а б «Автоматическое масштабирование». Веб-сервисы Amazon. Получено Двадцать первое марта, 2015.
  3. ^ а б c У, Цян (8 августа 2014 г.). «Повышение энергоэффективности программной инфраструктуры Facebook с помощью Autoscale». Блог кода Facebook. Получено Двадцать первое марта, 2015.
  4. ^ а б Ладерман, Зев (22 апреля 2012 г.). «10 самых больших ошибок, совершаемых с помощью веб-сервисов Amazon». TechCrunch. Получено Двадцать первое марта, 2015.
  5. ^ Парк, Андрей; Денлингер, Даррелл; Уотсон, Коберн (18 сентября 2015 г.). «Создание собственного спотового рынка EC2». Netflix. Получено 16 декабря, 2016.
  6. ^ а б Виттиг, Майкл (26 декабря 2015 г.). «5 ошибок AWS, которых следует избегать». Cloudonaut. Получено 16 декабря, 2016.
  7. ^ а б Орцелл, Грег; Беккер, Джастин (18 января 2012 г.). «Автоматическое масштабирование в облаке Amazon». Netflix Технический блог. Получено Двадцать первое марта, 2012.
  8. ^ а б "Что такое автоматическое масштабирование?". Веб-сервисы Amazon. Получено 16 декабря, 2016.
  9. ^ а б «Автоскалер». Облачная платформа Google. Получено Двадцать первое марта, 2015.
  10. ^ а б «Руководство по автомасштабированию». Сеть разработчиков Microsoft.
  11. ^ Кубрилович, Ник (24 августа 2006 г.). «Почти эксклюзив: Amazon готовит сервис служебных вычислений». TechCrunch. Получено 4 декабря, 2016.
  12. ^ Барр, Джефф (25 августа 2006 г.). «Amazon EC2 Beta». Блог Amazon Web Services. Получено 31 мая, 2013.
  13. ^ Работа, Генри (3 апреля 2008 г.). «Scalr: автоматическое масштабирование с открытым исходным кодом Amazon EC2». TechCrunch. Получено Двадцать первое марта, 2015.
  14. ^ Хоулетт, Деннис (25 июня 2008 г.). «Управление облаком RightScale распространяется и на MySQL. Компания RightScale, которая специализируется на управлении облачными вычислениями для платформы Amazon Web Services, сегодня объявила о поддержке MySQL Enterprise. Эта служба, которая запускается 1 июля, обеспечивает автоматическое развертывание, управление и масштабирование в сочетании с MySQL Enterprise поддержка премиум-уровня для больших приложений баз данных ". ZDNet. Получено 16 декабря, 2016.
  15. ^ фон Эйкен, Торстен (23 апреля 2008 г.). "Масштабирование Facebook Animoto". Архивировано из оригинал 20 декабря 2016 г.. Получено 16 декабря, 2016.
  16. ^ Барр, Джефф (18 мая 2009 г.). «Новые функции Amazon EC2: эластичная балансировка нагрузки, автоматическое масштабирование и Amazon CloudWatch». Веб-сервисы Amazon. Получено 15 июня, 2016.
  17. ^ "Что такое автомасштабирование?". TechTarget. Получено Двадцать первое марта, 2015.
  18. ^ Барр, Джефф (30 июля 2014 г.). «Автоматическое масштабирование обновления - управление жизненным циклом, состояние ожидания и отсоединение экземпляров». Веб-сервисы Amazon (официальный блог). Получено Двадцать первое марта, 2015.
  19. ^ "Инструмент командной строки автоматического масштабирования". Веб-сервисы Amazon (страница, редактируемая сообществом). Получено Двадцать первое марта, 2015.
  20. ^ https://aws.amazon.com/blogs/compute/automatic-scaling-with-amazon-ecs/
  21. ^ Адамс, Рич (3 февраля 2014 г.). «Советы AWS, которые я хотел бы знать перед началом работы. Коллекция случайных советов для Amazon Web Services (AWS), которые, как мне хотелось бы, мне сказали несколько лет назад, основанные на том, что я узнал, создавая и развертывая различные приложения на AWS ". Получено 16 декабря, 2016.
  22. ^ «Как использовать спотовые инстансы Amazon EC2». wikiHow. Получено 16 декабря, 2016.
  23. ^ "Обезьянья армия Netflix". Netflix. 19 июля 2011 г.. Получено 5 декабря, 2016.
  24. ^ Лардинуа, Фредерик (27 июня 2013 г.). «Microsoft добавляет автоматическое масштабирование в Windows Azure». TechCrunch. Получено Двадцать первое марта, 2015.
  25. ^ «Microsoft добавит автомасштабирование и оповещения в Windows Azure». ZDNet. 27 июня 2013 г.. Получено Двадцать первое марта, 2015.
  26. ^ Батлер, Брэндон (7 августа 2013 г.). «Google и Microsoft догоняют Amazon, добавляют в свои облака балансировку нагрузки и автоматическое масштабирование». Сетевой мир. Получено Двадцать первое марта, 2015.
  27. ^ «Блок приложения автомасштабирования». Сеть разработчиков Microsoft. Получено Двадцать первое марта, 2015.
  28. ^ «Администрирование служб PaaS». Справочный центр Oracle. Получено 2018-05-16.
  29. ^ Балейко, Филип (17 ноября 2014 г.). «Автомасштабирование, добро пожаловать в Google Compute Engine». Облачная платформа Google блог. Получено Двадцать первое марта, 2015.
  30. ^ Проталински, Эмиль (17 ноября 2014 г.). «В Google Compute Engine есть Autoscaler для настройки ресурсов приложения в зависимости от трафика и рабочих нагрузок». VentureBeat. Получено Двадцать первое марта, 2015.
  31. ^ Лардинуа, Фредерик (17 ноября 2014 г.). "Google привносит автоматическое масштабирование в Compute Engine". TechCrunch. Получено Двадцать первое марта, 2015.
  32. ^ Вердж, Джейсон (17 ноября 2014 г.). "Google запускает бета-версию автомасштабирования на Compute Engine". Знание центра обработки данных. Получено Двадцать первое марта, 2015.
  33. ^ а б «Автомасштабирование: как облако обеспечивает невероятный прирост». Морфеус. 2 ноября 2016 г.. Получено 16 декабря, 2016.
  34. ^ "Пошаговое руководство по автоматическому масштабированию горизонтального модуля". Получено 21 июня, 2018.
  35. ^ «Плановое масштабирование». Веб-сервисы Amazon. Получено 16 декабря, 2016.
  36. ^ Джейкобсон, Дэниел; Юань, Дэнни; Джоши, Нирадж. «Скрайер: механизм прогнозирующего автоматического масштабирования Netflix». В Netflix Технический блог. Netflix. Получено 28 мая 2015.
  37. ^ Барр, Джефф (20 ноября 2018 г.). «Новое - прогнозируемое масштабирование для EC2 на основе машинного обучения». Веб-сервисы Amazon. Получено 23 ноября, 2018.