#azure #azure-worker-roles #azure-vm-role
#azure #azure-рабочие роли #azure-vm-роль
Вопрос:
Попытка перехода на Windows Azure. У нас есть целая куча встроенных настроек и кода сегментирования, и поэтому мы подумали, что было бы лучше использовать роли виртуальной машины — я предполагаю, что мы могли бы управлять им как обычным сервером и развертывать на нем наше приложение. База данных уже находится в SQL Azure.
Вопрос — В нашей текущей настройке, отличной от Azure, у нас есть два блока веб-сервера с балансировщиком нагрузки. Я помню, что читал что-то о веб-ролях и о том, как Azure балансирует нагрузку между экземплярами (веб- или рабочие роли). Поддерживает ли Azure балансировку нагрузки между двумя ролями виртуальной машины?
Что еще более важно, улучшится ли производительность, если мы перейдем к рабочей роли (поскольку код, похоже, более тесно интегрирован с Azure). Было бы здорово, если бы кто-нибудь мог указать мне правильное направление. Большое спасибо.
Ответ №1:
Балансировщик нагрузки распределяет трафик между экземплярами вашей роли, будь то Web, Worker или виртуальная машина. Конечный пользователь (или система) просто связывается с вашей службой по протоколу://ip:port. Если, скажем, вы размещаете порт 8000 на роли виртуальной машины и имеете 4 экземпляра этой роли, вы увидите, что трафик распределяется по всем 4 экземплярам (ничем не отличается от веб-роли).
Производительность не должна отличаться между рабочей ролью и ролью виртуальной машины. Разница заключается в обслуживании самой гостевой ОС. Если вы можете использовать рабочую роль вместо роли виртуальной машины, вы упрощаете свою жизнь, когда дело доходит до обновлений (и вам не нужно загружать большой образ размером в несколько ГБ в облако). На самом деле существует 3 основные причины, по которым вам необходимо использовать роль виртуальной машины:
- Нет способа автоматизировать установку необходимых приложений (например, любых MSI, которые вам нужно запустить, обновлений реестра и т. Д.)
- Вы можете автоматизировать установку, но это занимает слишком много времени (например, более 5-10 минут).
- Вы можете автоматизировать установку и завершить ее своевременно, но это просто ненадежная установка (например, во время установки иногда происходит сбой какого-либо компонента, что приводит к повторной загрузке роли и повторным попыткам установки).
Комментарии:
1. Спасибо за ответ. Все еще думаю о выделенном сервере. Извиняюсь за наивный вопрос — итак, если мы решим использовать веб-роль и развернуть уровень пользовательского интерфейса на порту 80 и иметь четыре экземпляра (получить новый экземпляр и развернуть тот же код), это автоматически сбалансирует нагрузку. Правильно ли я думаю об этом?
2. Да, вы правильно рассуждаете, поскольку масштабирование с 3 до 4 уровней просто переносит ваш код на 4-й экземпляр, и вы автоматически получаете балансировку нагрузки. Однако: эта концепция «выделенного сервера» нуждается в уточнении: все виртуальные машины Azure являются виртуальными серверами, и вам нужно предположить, что на том же оборудовании работают другие виртуальные машины (особенно если у вас работает менее 8 ядер). Веб-роль — это виртуальная машина Windows Server 2008, такая же, как и роль виртуальной машины, но вместо предварительных установок вы запускаете установки при загрузке. И больше никакого обслуживания операционной системы. Веб-роль — это действительно правильный путь.
3. @user529265 — Еще один совет: установите обучающий набор для платформы и выполните упражнения по запуску веб-сайта с помощью веб-роли (как в первой лаборатории, так и в расширенной лаборатории веб-ролей и рабочих ролей). Я думаю, это действительно прояснит для вас веб-роль.
4. Спасибо. Это действительно помогло взглянуть на вещи с правильной точки зрения.