Платформа Azure: масштабирование экземпляров вверх и вниз - PullRequest
6 голосов
/ 26 января 2010

Примечание. Если вы знакомы с моделью ценообразования Azure, просто перейдите к разделу «вопрос».

Microsoft начнет взимать плату за использование платформы Azure, начиная с 1 февраля 2010 г..Ежемесячный счет будет зависеть от пропускной способности, хранилища и других.В число факторов, используемых для расчета счета, входит время вычисления .Этот последний фактор, однако, имеет вводящее в заблуждение имя: вместо него следует назвать время размещения экземпляра Цитируя страницу цен Windows Azure:

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

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

Я могу подтвердить, что каждый экземпляр (любой роли) имеет значение, и всечасы, в которые у вас есть счетчик активности экземпляра (независимо от того, сколько у них «активности»).В случае приложения, имеющего два экземпляра веб-роли и два экземпляра рабочей роли, вам будет выставлен счет за четыре экземпляра

по 0,12 долл. США в час за приложение, приложение, использующее N экземпляровбудет выставляться счет в среднем 24 * 30 * 0,12 * N / месяц = ​​~ 86 долларов США / месяц за экземпляр.Дело ухудшается для небольших веб-сайтов, если принять во внимание тот факт, что у вас не может быть менее двух экземпляров, если вы хотите, чтобы к соглашению о доступности работало 99,9% .

Итак,Небольшой, недорогой веб-сайт с вычислительной мощностью, вероятно, не является целевым рынком для Azure.Но для пакетных процессов бремя, вероятно, ушло бы.

Вопрос

Говоря только с точки зрения вычислительной мощности и "вычислительных часов" Биллинг, Azure будет хорошим вариантом хостинга для пакетного процесса, который выполняется только несколько часов в месяц, если и только если вы можете легко увеличить (и уменьшить!) количество экземпляров.Итак:

  • Можно ли программно увеличивать и уменьшать количество экземпляров в Azure?Есть ли другие варианты, кроме изменения файла конфигурации вручную?
  • Есть ли неочевидные проблемы с уменьшением количества экземпляров?
  • Сколько времени Azure тратит на «подтверждение» масштабированиявниз вашего приложения?

По поводу последнего вопроса: Возьмите крайний случай, когда у вас очень большое количество экземпляров (скажем, 1000), работающих в течение 45 минут.Если Azure не сможет заметить уменьшение в течение 15 минут после окончания процесса, с вас будет взиматься плата в течение еще 1000 часов времени вычислений.

Ответы [ 4 ]

4 голосов
/ 08 октября 2010

Вы правы, вы платите за часы безотказной работы, а не за часы вычислений.

С одной стороны, следует опасаться, что вы платите за неполные часы без какой-либо пропорциональности, поэтому, если вы быстро увеличиваете и уменьшаете масштаб, вы едите полные часы.

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

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

Уменьшение происходит практически сразу, но вы не можете контролировать, какие экземпляры используются для уменьшения, поэтому, если 50% ваших экземпляров бездействуют, а вы уменьшаете на 50%, вы можете уничтожить все свои активные экземпляры, и эта работа должна быть перезапущена на ранее простаивающих экземплярах. Вы должны убедиться, что ваш дизайн поддерживает хороший перезапуск работы (если вы используете тайм-ауты очереди, это может происходить в основном автоматически)

Есть несколько сторонних решений, которые начинают помогать в масштабировании. Один из тех, что я рассмотрел и который выглядит многообещающим, - это AzureWatch из http://paraleap.com/, который предлагает некоторые функции, такие как автоматическое масштабирование веб-сайтов и рабочих ролей вверх / вниз на основе использования, длины очереди, расписания и т. Д.

3 голосов
/ 04 июля 2013

По состоянию на 26 июня 2013 г. Windows Azure включает возможности автоматического масштабирования, встроенные в платформу. Пока только в режиме предварительного просмотра и только с двумя поддерживаемыми показателями (загрузка ЦП и длина очереди), он очень интуитивно понятен и прост в использовании. Проверьте это .

3 голосов
/ 26 января 2010

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

Можно ли программно увеличивать и уменьшать количество экземпляров в Azure?

Да, но AFAIK Azure не масштабируется сам по себе, вам придется делать это с помощью вызовов веб-службы (почти так же, как с помощью пользовательского интерфейса, чтобы сделать это вручную). См. Этот MSDN документ , раздел «Службы хостинга», и читайте дальше.

Что-то вроде сервера Hudson CI может быть довольно легко расширено для базового мониторинга рабочей очереди. Возможно, вам нужно что-то более функциональное; Таких систем в мире "Enterprise Service Bus" довольно много.

Существуют ли неочевидные проблемы уменьшения количества экземпляров?

Hmn. Вам нужно подумать о блокировке, т. Е. Как обеспечить, чтобы каждый работник покинул очередь в согласованном состоянии и завершил свои задачи перед выключением?

Кроме того, из прайс-листа Azure: «Частичные часы вычисляются как полные часы».

Сколько времени Azure тратит на «подтверждение» сокращения вашего приложения?

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

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

Еще один аспект: каковы ваши гарантии того, что вы сможете масштабироваться, когда захотите? В настоящее время такой гарантии нет ни у одного поставщика облачных вычислений AFAIK; но у Amazon был довольно хороший послужной список по этому вопросу. Azure - это новое предложение, и мы не знаем, насколько хороша оценка емкости Microsoft, то есть мы не знаем, насколько хорошо они справятся с этой задачей в ближайшие месяцы. Я ожидаю , что это не проблема; что Microsoft справится с этим хорошо, но у меня пока нет доказательств этого.

2 голосов
/ 03 декабря 2011

Да, теперь с недавно выпущенным Autoscaling Application Block программное масштабирование вверх и вниз количества экземпляров в Azure стало проще, чем когда-либо.

Смотрите мой подробный ответ по этой теме .

...