2015-05-19 2 views
0

У нас есть пакетная операция, прогрессирующая некоторые данные. Операция занимает около 2 часов и на данный момент требуется много оперативной памяти. Поэтому у нас есть облачная служба с 56 ГБ оперативной памяти в Microsoft azure. Эта операция должна выполняться каждую ночь, поэтому в оставшиеся 22 часа мы платим за обслуживание за то, чтобы ничего не делать.Как масштабировать облачное облачное сервисное обслуживание для уменьшения фактурирования

Я ищу простое решение для автоматического масштабирования облачного сервиса для уменьшения фактурирования. К сожалению, вы не можете установить минимальный размер экземпляра равным нулю, когда вы используете функцию автомасштабирования microsoft azure.

Как вы решаете проблему? Существуют ли какие-либо инструменты?

+0

Используйте Azure Automation (http://azure.microsoft.com/en-us/services/automation/), чтобы запустить и остановить вашу виртуальную машину. В настоящее время я делаю это, чтобы запустить и остановить агента сборки VSO (по расписанию), чтобы он не работал во время простоя. –

+0

@BrendanGreen Я считаю, что OP использует Cloud Service, который продолжает получать счета, даже если он остановлен. –

ответ

1

Вы правы, что на сегодняшний день Azure Cloud Services не может быть уменьшена до нулевых экземпляров. По крайней мере, требуется один экземпляр. Одним из способов решения этой проблемы является создание/удаление развертываний программным путем с использованием Azure Service Management API. Итак, что вы можете сделать, это создать работу, которая будет:

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

Чтобы запланировать эту работу, у вас есть много вариантов в лазури:

  1. Вы можете использовать Azure Automation.
  2. Вы можете создать WebJob и запустить его по фиксированному расписанию.
  3. Вы можете использовать Azure Scheduler Service.
  4. Вы можете написать свой собственный код, чтобы запланировать это задание и разместить его в другой роли рабочего.
0

Предполагая, что вы остаетесь с Cloud Services: В то время как вы не можете масштабировать до нуля экземпляров веб или работника роли, может изменить размер роли (что может быть сделано программно, с помощью PowerShell, с помощью интерфейса командной строки , или через портал), и это можно сделать программно. Это даст вам возможность масштабирования большего размера, выполнения пакетной обработки и последующего масштабирования до «холостого хода» (вы можете технически масштабировать весь путь до A0) и, предположив, что вы масштабировались до нескольких ролей экземпляров, вы можете масштабировать и один экземпляр. Хотя это не решение с нулевой стоимостью, оно очень недорого ($ 0,02/час).

Смежные вопросы