2015-03-29 2 views
1

Azure Cloud Services имеет автомасштабирование на основе CPU/Queue. У нас есть набор машин, на которых запущен API для загрузки и обработки файлов. Хотя мы переместили часть обработки на роль рабочего, которая масштабируется в зависимости от размера очереди, серверов, но также заботится о загрузке, отвечая на другие операции, такие как загрузка.Как построить автоматическое масштабирование Azure Cloud Service на основе использования сети?

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

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

ответ

1

Я бы хотел: 1) Создайте метрики, которые вычисляют время, необходимое для загрузки/выгрузки файла. 2) Совокупность метрик в каком-то уровне персистентности (у нас много в Azure) 3) Создайте службу, которая будет выглядеть с этими метриками 4) Проверьте пороговые значения 5) Используйте библиотеки управления для .NET для запуска масштабирования в облачной службе (ы).

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

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

+0

Спасибо за быстрый ответ. Что касается дизайна, загрузка не оказывает давления на серверы. Это делается от Azure Storage/CDN. Облачная служба разрешает и генерирует URL-адрес. Облачная служба обрабатывает блочные загрузки. 1 - Скорость загрузки всегда зависит от клиента. Может быть Мбит/с, может быть скорость Кбит/с. 2 - Какой упорный слой? Memcache? Мы иногда думали, если это правильный подход к загрузке блоков, но поскольку для этого нужны проверки с сервера, похоже, у нас нет другого пути. –

+0

Добро пожаловать. :) Ваш вопрос состоял в том, как автоматически масштабировать использование сети, вы можете использовать мониторинг производительности с компьютеров для сбора этих показателей и применять описанный выше подход. Кроме того, есть ли причина, по которой вы загружаетесь через Cloud Service? Какие проверки проводятся? Мы поддерживаем CORS на Storage, поэтому в сочетании с SAS вы можете безопасно загружать blob и обрабатывать его асинхронно в облачном сервисе после завершения загрузки. Это позволит сэкономить пропускную способность и все проблемы, с которыми вы сейчас сталкиваетесь. –

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