Общие сведения об Облачных службах Azure (классических)

Важно!

Облачные службы (классическая версия) объявлены устаревшими для новых клиентов. Их поддержка будет полностью прекращена 31 августа 2024 года. Для новых развертываний следует использовать Облачные службы Azure с расширенной поддержкой. Это новая модель развертывания на основе Azure Resource Manager.

Облачные службы Azure являются примером концепции платформа как услуга (PaaS). Так же как и служба приложений Azure, эта технология предназначена для поддержки масштабируемых, надежных и недорогих в эксплуатации приложений. Облачные службы Azure размещаются так же, как и службы приложений на виртуальных машинах (ВМ). Однако над виртуальными машинами доступен больший контроль. На виртуальных машинах, использующих облачные службы Azure, можно установить собственное программное обеспечение, а затем получить удаленный доступ к нему.

Azure Cloud Services diagram

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

Существует два типа ролей облачных служб Azure. Единственное различие между ними — способ размещения роли в виртуальной машине.

  • Веб-роль: автоматически развертывает и размещает приложения с помощью IIS.

  • Рабочая роль: не использует IIS и запускает приложение автономно.

Например, простое приложение может использовать только одну веб-роль, обслуживающую веб-сайт. Более сложное приложение может использовать веб-роль для обработки поступающих от пользователей запросов, а затем передавать эти запросы в рабочую роль для обработки. (Это сообщение может использовать служебная шина Microsoft Azure или хранилище очередей Azure.)

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

Несмотря на то что приложения выполняются в виртуальных машинах, важно понимать, что облачные службы предоставляются не как IaaS, а PaaS. Ниже рассматривается один из способов. В модели IaaS, такой как виртуальные машины Azure, сначала создайте и настройте среду, в которой будет работать приложение. Затем разверните приложение в этой среде. При таком подходе на вас ложится множество обязанностей, например, по развертыванию новых исправленных версий операционной системы в каждой виртуальной машине. В PaaS же среда уже существует. Вам нужно всего лишь развернуть свое приложение. Управление платформой, на базе которой оно выполняется, включая развертывание новых версий операционной системы, осуществляется за вас.

Масштабирование и управление

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

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

Наблюдение

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

Характер PaaS у модели облачных служб Azure имеет и другие аспекты. Один из наиболее важных заключается в том, что построенное на базе этой технологии приложение должно обеспечивать правильную работу в случае сбоя какого-либо из экземпляров веб-роли или рабочей роли. Для этого приложение облачных служб Azure не должно сохранять состояние в файловой системе своих собственных виртуальных машин. В отличие от ВМ, созданных с помощью виртуальных машин, операции записи для виртуальных машин облачной службы Azure не сохраняются надолго. В них нет ничего похожего на диск данных виртуальной машины. Вместо этого приложение облачных служб Azure должно явным образом записывать все данные о состоянии в базу данных SQL, BLOB-объекты, таблицы или любое другое внешнее хранилище Azure. Построение приложений с учетом данного аспекта упрощает их масштабирование и делает их более отказоустойчивыми, что относится к важным задачам модели облачных служб Azure.

Следующие шаги