Открыть сервис

Эластичность (облачные вычисления)

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

Основные характеристики

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

  • Вертикальная эластичность (scale-up/scale-down) — изменение мощности одного узла (например, увеличение или уменьшение объёма оперативной памяти виртуальной машины).
  • Горизонтальная эластичность (scale-out/scale-in) — изменение количества однотипных узлов (например, добавление или удаление серверов в кластере).

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

История и развитие

Концепция эластичности стала развиваться вместе с коммерческими облачными сервисами. В 2006 году компания Amazon Web Services (AWS) запустила сервис Elastic Compute Cloud (EC2), который позволял арендовать вычислительные мощности по часам. Термин «эластичный» был выбран для подчёркивания возможности быстрого изменения конфигурации сервера.

В 2008 году появился сервис Google App Engine, который автоматически управлял ресурсами для веб-приложений. В 2010 году Microsoft представила Windows Azure (ныне Microsoft Azure), где эластичность стала одной из основных характеристик платформы. В последующие годы все крупные облачные провайдеры (Yandex Cloud, VK Cloud, Selectel в России; AWS, Google Cloud, Azure за рубежом) внедрили механизмы автоматического масштабирования.

Механизмы реализации

Автомасштабирование (Auto Scaling)

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

  • На основе метрик — например, увеличить количество экземпляров приложения на 2, если средняя загрузка CPU превышает 70% в течение 5 минут.
  • По расписанию — для предсказуемых пиков нагрузки (например, увеличение ресурсов каждый день с 9:00 до 18:00 по местному времени).
  • Прогностическое — с использованием машинного обучения для предсказания будущей нагрузки на основе исторических данных.

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

Для корректной работы горизонтальной эластичности необходим балансировщик нагрузки, который распределяет входящие запросы между доступными экземплярами приложения. При добавлении новых экземпляров балансировщик автоматически начинает направлять на них трафик; при удалении — прекращает.

Декомпозиция приложений

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

Типы эластичности

По времени реакции

  • Реактивная эластичность — масштабирование происходит в ответ на уже произошедшее изменение нагрузки. Характеризуется задержкой (от нескольких секунд до нескольких минут), необходимой для запуска новых экземпляров.
  • Проактивная эластичность — масштабирование осуществляется на основе прогнозов, что позволяет избежать задержек при резких скачках нагрузки.

По степени автоматизации

  • Ручная эластичность — администратор самостоятельно изменяет количество ресурсов через веб-интерфейс или API.
  • Автоматическая эластичность — система сама принимает решения на основе настроенных правил.
  • Планируемая эластичность — изменения выполняются по заранее заданному расписанию.

Применение

Эластичность востребована в сценариях с неравномерной или непредсказуемой нагрузкой:

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

Преимущества и недостатки

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

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

Недостатки и ограничения

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

Эластичность в контексте российского законодательства

При использовании облачных сервисов, предоставляемых иностранными провайдерами, необходимо учитывать требования Федерального закона № 152-ФЗ «О персональных данных» и Федерального закона № 242-ФЗ, которые обязывают обрабатывать персональные данные граждан РФ с использованием сертифицированных средств и, в ряде случаев, на территории Российской Федерации. Ряд облачных платформ, например, Amazon Web Services и Google Cloud, не имеют дата-центров на территории РФ, что может ограничивать применение их механизмов эластичности для обработки персональных данных. В таких случаях используются сертифицированные решения российских облачных провайдеров (Yandex Cloud, VK Cloud, Selectel, Cloud.ru), которые обеспечивают соответствие требованиям законодательства.

Интересные факты

  • Термин «эластичность» в контексте облачных вычислений был популяризирован компанией Amazon в 2006 году при запуске сервиса EC2.
  • Некоторые облачные провайдеры предлагают «спотовые» (spot) или «прерываемые» (preemptible) экземпляры — ресурсы, которые могут быть отозваны в любой момент, но предоставляются со значительной скидкой. Это позволяет реализовывать эластичность с минимальными затратами для фоновых задач.
  • В 2011 году Национальный институт стандартов и технологий США (NIST) включил эластичность в число пяти основных характеристик облачных вычислений, наряду с самообслуживанием, широким сетевым доступом, пулом ресурсов и измеряемостью услуг.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →