Рис. 10. Схема жизненного цикла

Жизненный цикл роли начинается с момента загрузки пакета и конфигурации облачного сервиса на платформу Windows Azure. Далее компонент Fabric- контроллер производит поиск необходимого оборудования согласно прописанным в определении сервиса инструкциям. После обнаружения и выделения необходимых ресурсов на них разворачивается образ гостевой операционной системы (либо по умолчанию, либо указанной в описании сервиса). Окончание развертывания инициирует процесс загрузки гостевой операционной системы.

Развернув операционную систему, контроллер переходит к развертыванию сервиса. В этом случае, если роль содержит в определении сервиса указание на Startup-задачу, эти задачи начинают последовательно выполняться в синхронном или асинхронном режимах.

После выполнения, например, задачи с типом Simple, процесс загрузки роли переходит на этап запуска IISConfigurator, при этом параллельно инициируется событие OnStart (либо немного позже). Startup-задачи могут как просто отказать в выполнении, так и никогда не закончиться – это разные ситуации, которые должны решаться разными методами.

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

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

НЕ нашли? Не то? Что вы ищете?

После события OnStop роль полностью останавливается.

Жизнь роли начинается с момента загрузки пакета и конфигурации облачного сервиса на платформу Windows Azure. Далее запрос отправляется компоненту RDFE, который совершает некоторые действия, касающиеся подписки (проверка и так далее), после чего передает запрос FFE. FFE ищет подходящий пул машин (основываясь на том, что написано в конфигурации) и обменивается данными с Fabric-контроллером в данном пуле машин.

Fabric-контроллер производит поиск хоста с требуемым значений количества ядер CPU (или инициирует запрос на развертывание нового хоста), далее копирует пакет сервиса и его конфигурационные файлы на этот хост, после чего сообщает агенту хоста на хостовой операционной системе о наличии нового сервиса и необходимости его развернуть.

Агент хоста запускает гостевую операционную систему и связывается с агентом на клиенте (WaAppAgent). Теперь хост должен периодически отсылать пакеты гостевой операционной системе, дабы удостовериться, что роль на этом хосте находится в состоянии, удовлетворяющем условиям.

WaAppAgent настраивает гостевую операционную систему (конфигурацию брандмауэра, локального хранилища, указанного в настройках роли, списки доступа и прочее) и копирует конфигурационный файл в формате XML в директорию c:\Config, после чего запускает процесс WaHostBootstrapper.

Если используется полнофункциональный IIS, то WaHostBootstrapper запускает процесс IISConfigurator и сообщает ему, чтобы тот удалил все существующие пулы приложений для Web-роли.

WaHostBootstrapper последовательно читает Startup-задачи из узла <Startup> в файле E:\RoleModel. xml, выполняя их. Если в списке присутствуют задачи типа Simple, WaHostBootstrapper будет ждать до тех пор, пока все из них не закончат свое выполнение и не возвратят успешный код возврата.

Для полнофункционального IIS WaHostBootstrapper передает IISConfigurator запрос на конфигурацию пула приложений AppPool и переводит сайт в директорию E:\Sitesroot\< index> где < index> – начинающийся с 0 индекс сайта, сконфигурированного в узле <Sites> в конфигурации сервиса.

WaHostBootstrapper запускает процесс в зависимости от типа роли:

a. Worker-роль: Запускается WaWorkerHost. exe, при этом WaHostBootstrapper вызывает метод OnStart() и после успешного его завершения начинает выполнять метод Run(), пометив экземпляр роли как Ready (готовый к принятию запросов) и передав балансировщику нагрузки сообщение о том, что данный экземпляр готов к работе (в том случае, если определены конечные точки входа). В процессе работы экземпляра роли процесс WaHostBootsrapperпериодически опрашивает экземпляр о его статусе.

b. SDK 1.2 HWC Web-роль: Старый режим работы Web-ролей. Запускается WaWebHost, после чего WaHostBootstrapper вызывает метод OnStart() и после успешного его завершения начинает выполнять метод Run(), пометив экземпляр роли как Ready (готовый к принятию запросов) и передав балансировщику нагрузки сообщение о том, что данный экземпляр готов к работе. Далее WaWebHost инициирует запрос (GET /do.__rd_runtime_init__). Все запросы попадают процессу WaWebHost. exe. В процессе работы экземпляра роли процесс WaHostBootsrapper периодически опрашивает экземпляр о его статусе. Данный тип роли не поддерживает функциональность, доступную в полнофункциональном IIS.

c. Web-роль с полнофункциональным IIS: Запускается процесс WaIISHost, при этом WaHostBootstrapper вызывает метод OnStart() и после успешного его завершения начинает выполнять метод Run(), пометив экземпляр роли как Ready (готовый к принятию запросов) и передав балансировщику нагрузки сообщение о том, что данный экземпляр готов к работе (в том случае, если определены конечные точки входа). В процессе работы экземпляра роли процесс WaHostBootsrapper периодически опрашивает экземпляр о его статусе.

Все входящие запросы, получаемые полнофункциональным IIS, инициируют создание IIS-ом процесса W3WP

При подключении по удаленному доступу можно получить доступ к логам всех процессов.

WaAppAgent

D:\Packages\GuestAgent\WaAppAgent. exe. log

D:\Packages\GuestAgent\WaAppAgent. log

WaHostBootstrapper

C:\Resources\Directory\<guid>.<role>.DiagnosticStore\

WaWebHost

C:\Resources\Temp\<guid>.<role>\RoleTemp\WaWebHost. log

WaIISHost

C:\Resources\Temp\<guid>.<role>\RoleTemp\WaIISHost. log

IISConfigurator

C:\Resources\Temp\<guid>.<role>\RoleTemp\IISConfigurator. log

IIS Logs

C:\Resources\Directory\<guid>.<role>.DiagnosticStore\LogFiles\W3SVC1

С жизненным циклом ролей виртуальных машин все обстоит практически аналогично. Каждый раз при развертывании нового образа или повторного создания экземпляра роли виртуальной машины из образа Windows Azure создает виртуальную машину для экземпляра и выполняет запуск гостевой операционной системы. Во время этого процесса в автоматическом режиме запускается программа установки Windows, которая настраивается на основании данных, указанных в файле ответов ( c:\unattend. xml). Затем операционная система автоматически перезапускается для завершения процесса установки. После перезапуска операционной системы запускаются службы из списка автозапуска. Далее балансировщику нагрузки передается сообщение о том, что данный экземпляр готов к работе (в том случае, если определены конечные точки входа).

2. ЗАДАНИЯ К ПРАКТИЧЕСКОМУ ЗАНЯТИЮ 3.

По приведенному ходу работы создать новое приложение и стенды, произвести масштабирование для работы с  Windows Azure. Подключить пакет инструментов Windows Azure Tools for Visual Studio, а также эмуляторы Windows Azure SDK. Определить роли виртуальных машин



Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6