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

Метод оптимизации облачных вычислений

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

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

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

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

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

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

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

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

Упражняться

Веб-сервисы Amazon (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 запустила собственную функцию автоматического масштабирования вместе с Elastic Load Balancing как часть Amazon Elastic Compute Cloud . [16] Теперь автоматическое масштабирование является неотъемлемым компонентом предложения Amazon EC2. [2] [17] [18] Автоматическое масштабирование в Amazon Web Services выполняется через веб-браузер или инструмент командной строки. [19] В мае 2016 года автоматическое масштабирование также было предложено в AWS ECS Service. [20]

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

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

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

Windows Azure от Microsoft

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

Облако Oracle

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

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

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

Фейсбук

В сообщении в блоге в августе 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) . Berkeley EECS. 10 февраля 2009 г. Получено 21 марта 2015 г.
  2. ^ ab "Auto Scaling". Amazon Web Services . Получено 21 марта 2015 г.
  3. ^ abc Wu, Qiang (8 августа 2014 г.). «Повышение энергоэффективности инфраструктуры программного обеспечения Facebook с помощью Autoscale». Facebook Code Blog . Получено 21 марта 2015 г.
  4. ^ ab Laderman, Zev (22 апреля 2012 г.). «10 самых больших ошибок, допущенных при использовании веб-сервисов Amazon». TechCrunch . Получено 21 марта 2015 г.
  5. Park, Andrew; Denlinger, Darrell; Watson, Coburn (18 сентября 2015 г.). «Создание собственного спотового рынка EC2». Netflix . Получено 16 декабря 2016 г.
  6. ^ ab Wittig, Michael (26 декабря 2015 г.). «5 ошибок AWS, которых следует избегать». cloudonaut . Получено 16 декабря 2016 г. .
  7. ^ ab Orzell, Greg; Becker, Justin (18 января 2012 г.). «Автоматическое масштабирование в облаке Amazon». Netflix Tech Blog . Получено 21 марта 2012 г.
  8. ^ ab "Что такое автоматическое масштабирование?". Amazon Web Services . Получено 16 декабря 2016 г.
  9. ^ ab "Autoscaler". Google Cloud Platform . Получено 21 марта 2015 г.
  10. ^ ab "Руководство по автоматическому масштабированию". Microsoft Developer Network . 26 августа 2015 г.
  11. ^ Cubrilovic, Nik (24 августа 2006 г.). «Почти эксклюзив: Amazon готовит сервис вычислений для коммунальных служб». TechCrunch . Получено 4 декабря 2016 г. .
  12. ^ Барр, Джефф (25 августа 2006 г.). "Amazon EC2 Beta". Блог Amazon Web Services . Получено 31 мая 2013 г.
  13. Work, Henry (3 апреля 2008 г.). «Scalr: The Auto-Scaling Open-Source Amazon EC2 Effort». TechCrunch . Получено 21 марта 2015 г.
  14. ^ Хоулетт, Деннис (25 июня 2008 г.). «Управление облаком RightScale распространяется на MySQL. RightScale, специализирующаяся на управлении облачными вычислениями для платформы Amazon Web Services, сегодня объявила о поддержке MySQL Enterprise. Служба, которая будет запущена 1 июля, обеспечивает автоматическое развертывание, управление и масштабирование в сочетании с поддержкой MySQL Enterprise премиум-уровня для больших приложений баз данных». ZDNet . Получено 16 декабря 2016 г.
  15. ^ фон Эйкен, Торстен (23 апреля 2008 г.). «Расширение масштаба Animoto на Facebook». Архивировано из оригинала 20 декабря 2016 г. Получено 16 декабря 2016 г.
  16. ^ Барр, Джефф (18 мая 2009 г.). «Новые функции Amazon EC2: эластичная балансировка нагрузки, автоматическое масштабирование и Amazon CloudWatch». Amazon Web Services . Получено 15 июня 2016 г.
  17. ^ "Что такое автомасштабирование?". TechTarget. Архивировано из оригинала 29 апреля 2019 г. Получено 21 марта 2015 г.
  18. ^ Барр, Джефф (30 июля 2014 г.). «Обновление автоматического масштабирования – управление жизненным циклом, состояние ожидания и отсоединение экземпляров». Amazon Web Services (официальный блог) . Получено 21 марта 2015 г.
  19. ^ "Auto Scaling Command Line Tool". Amazon Web Services (страница, отредактированная сообществом) . Получено 21 марта 2015 г.
  20. ^ "Автоматическое масштабирование с Amazon ECS". 18 мая 2016 г. Архивировано из оригинала 25 сентября 2019 г. Получено 12 февраля 2019 г.
  21. ^ Адамс, Рич (3 февраля 2014 г.). «Советы по AWS, которые я хотел бы знать до начала работы. Коллекция случайных советов по Amazon Web Services (AWS), которые я хотел бы услышать несколько лет назад, основанных на том, что я узнал, создавая и развертывая различные приложения на AWS» . Получено 16 декабря 2016 г.
  22. ^ "Как использовать спотовые инстансы Amazon EC2". wikiHow . Получено 16 декабря 2016 г. .
  23. ^ "The Netflix Simian Army". Netflix . 19 июля 2011 г. Получено 5 декабря 2016 г.
  24. ^ Лардинуа, Фредерик (27 июня 2013 г.). «Microsoft добавляет автоматическое масштабирование в Windows Azure». TechCrunch . Получено 21 марта 2015 г.
  25. ^ "Microsoft добавит автоматическое масштабирование и оповещения в Windows Azure". ZDNet . 27 июня 2013 г. Получено 21 марта 2015 г.
  26. ^ Батлер, Брэндон (7 августа 2013 г.). «Google, Microsoft догоняют Amazon, добавляют балансировку нагрузки и автоматическое масштабирование в свои облака». Network World . Архивировано из оригинала 18 мая 2018 г. Получено 21 марта 2015 г.
  27. ^ "The Autoscaling Application Block". Microsoft Developer Network . Получено 21 марта 2015 г.
  28. ^ "Администрирование PaaS-сервисов". Oracle Help Center . Получено 2018-05-16 .
  29. ^ Балейко, Филипп (17 ноября 2014 г.). «Автомасштабирование, добро пожаловать в Google Compute Engine». Блог Google Cloud Platform . Получено 21 марта 2015 г.
  30. ^ Проталински, Эмиль (17 ноября 2014 г.). «Google Compute Engine получает Autoscaler для настройки ресурсов приложения в зависимости от изменяющегося трафика и рабочих нагрузок». VentureBeat . Получено 21 марта 2015 г.
  31. ^ Лардинуа, Фредерик (17 ноября 2014 г.). «Google внедряет автоматическое масштабирование в вычислительный движок». TechCrunch . Получено 21 марта 2015 г.
  32. ^ Вердж, Джейсон (17 ноября 2014 г.). «Google запускает бета-версию Autoscaling на Compute Engine». Data Center Knowledge . Получено 21 марта 2015 г.
  33. ^ ab "Autoscaling: How the Cloud Provides a Tremendous Boost". Morpheus. 2 ноября 2016 г. Получено 16 декабря 2016 г.
  34. ^ "Horizontal Pod Autoscaler Walkthrough" . Получено 21 июня 2018 г. .
  35. ^ "Scheduled Scaling". Amazon Web Services . Получено 16 декабря 2016 г.
  36. ^ Якобсон, Дэниел; Юань, Дэнни; ​​Джоши, Нирадж. «Scryer: предиктивный автоматический движок масштабирования Netflix». Технический блог Netflix . Netflix . Получено 28 мая 2015 г.
  37. ^ Барр, Джефф (20 ноября 2018 г.). «Новое – прогнозное масштабирование для EC2, на основе машинного обучения». Amazon Web Services . Получено 23 ноября 2018 г.
Взято с "https://en.wikipedia.org/w/index.php?title=Autoscaling&oldid=1232781882#Amazon_Web_Services_(AWS)"