Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Облачные службы (классическая версия) теперь не поддерживается для всех пользователей с 1 сентября 2024 года. Все существующие запущенные развертывания будут остановлены и завершены корпорацией Майкрософт, и данные будут окончательно потеряны начиная с октября 2024 года. Новые развертывания должны использовать новую модель развертывания azure Resource Manager на основе Облачных служб Azure (расширенная поддержка).
В этой статье приведены общие сведения о рабочих процессах, выполняемых при развертывании или обновлении ресурсов Azure, таких как виртуальная машина.
Примечание.
В Azure предлагаются две модели развертывания для создания ресурсов и работы с ними: модель Resource Manager и классическая модель. В этой статье рассматривается использование классической модели развертывания.
На следующей схеме представлена архитектура ресурсов Azure.
Основы рабочих процессов
А. RDFE / FFE — это путь взаимодействия от пользователя к структуре. Интерфейс RDFE (RedDog Front End) — это общедоступный API, который служит фронтальным интерфейсом для портала управления и классической модели развертывания API, таких как Visual Studio, Azure MMC и т. д. Все запросы пользователя проходят через RDFE. FFE (внешний интерфейс структуры) — это слой, который преобразует запросы из RDFE в команды структуры. Все запросы из RDFE проходят через FFE, чтобы связаться с контроллерами сети.
Б. Фабричный контроллер отвечает за обслуживание и мониторинг всех ресурсов в центре данных. Он взаимодействует с агентами хостов в сети, работающими на ОС сети, отправляя информацию, такую как версия гостевой ОС, пакет службы, конфигурация службы и состояние службы.
C. Агент Host Agent работает в операционной системе хоста и отвечает за настройку гостевой операционной системы. Он также обрабатывает взаимодействие с гостевым агентом (WindowsAzureGuestAgent), чтобы обновить роль в направлении предполагаемого состояния цели и выполнять проверки пульса с гостевым агентом. Если Host Agent не получает сигнал пульса в течение 10 минут, Host Agent перезапускает гостевую ОС.
C2. WaAppAgent отвечает за установку, настройку и обновление WindowsAzureGuestAgent.exe.
D. WindowsAzureGuestAgent отвечает за следующие задачи:
- Настройка гостевой ОС, включая брандмауэр, списки управления доступом, ресурсы LocalStorage, пакет и конфигурацию службы, и сертификаты.
- Настройка идентификатора безопасности для учетной записи пользователя, в которой выполняется роль.
- Передача статуса роли в структуру.
- Запуск WaHostBootstrapper и его отслеживание, чтобы убедиться в том, что роль соответствует целевому состоянию.
Э. WaHostBootstrapper отвечает за следующее:
- Чтение конфигурации роли и запуск всех соответствующих задач и процессов для настройки и запуска роли.
- Мониторинг всех дочерних процессов.
- Вызов события StatusCheck в хост-процессе роли.
F. IISConfigurator выполняется, если роль настроена как полная веб-роль IIS. Он отвечает за:
- Запуск стандартных служб IIS
- Настройка модуля перезаписи в веб-конфигурации
- Настройка AppPool для настроенной роли в модели службы
- Настройка логирования в IIS для указания пути к папке DiagnosticStore LocalStorage
- Настройка разрешений и списков управления доступом
- Веб-сайт находится в каталоге %roleroot%:\sitesroot\0, а AppPool указывает на это расположение для запуска IIS.
Г. Модель ролей определяет задачи запуска, а WaHostBootstrapper запускает их. Задачи запуска можно настроить для выполнения в фоновом режиме асинхронно, а загрузчик узла запускает задачу запуска, а затем переходит к другим задачам запуска. Задачи запуска также можно настроить для запуска в простом (по умолчанию) режиме. В простом режиме загрузчик узла ожидает завершения выполнения задачи запуска и возвращает код выхода (0), прежде чем продолжить следующую задачу запуска.
H. Эти задачи являются частью пакета SDK и определяются как подключаемые модули в определении службы роли (.csdef). При расширении в задачи запуска DiagnosticsAgent и RemoteAccessAgent уникальны тем, что каждый из них определяет две задачи запуска: одна обычная и одна с параметром /blockStartup. Обычная задача запуска определяется как фоновая, чтобы она могла выполняться в фоновом режиме во время выполнения самой роли. Задача запуска /blockStartup определена как простая задача запуска, чтобы WaHostBootstrapper дождался её завершения, прежде чем продолжить. Задача /blockStartup ожидает завершения инициализации обычной задачи, а затем выходит и позволяет хост-инициатору продолжить. Этот процесс осуществляется, чтобы можно было настроить диагностику и доступ к RDP до начала процессов роли; это реализуется с помощью задачи /blockStartup. Этот процесс также позволяет диагностике и доступу по RDP продолжать работать после завершения задач запуска узла, которые выполняются с помощью Обычной задачи.
Я. WaWorkerHost — это стандартный хост-процесс для обычных рабочих ролей. В этом хост-процессе находятся все библиотеки DLL роли и код точки входа, такой как OnStart и Run.
J. WaIISHost — это хост-процесс для кода точки входа для веб-ролей, использующих полный IIS. Этот процесс загружает первую библиотеку DLL, которая использует класс RoleEntryPoint и выполняет код из этого класса (OnStart, Run, OnStop). В этом процессе генерируются все события RoleEnvironment (например, StatusCheck и Changed), которые создаются в классе RoleEntryPoint.
К. W3WP — это стандартный рабочий процесс IIS, используемый, если роль настроена для использования full IIS. Этот процесс запускает AppPool, настроенный из IISConfigurator. В этом процессе вызываются все события RoleEnvironment (например, StatusCheck и Changed), созданные здесь. События RoleEnvironment инициируются в обоих местах (WaIISHost и w3wp.exe), если вы подписаны на события в обоих процессах.
Процедуры бизнес-процесса
- Пользователь выполняет запрос, например загрузку файлов ".cspkg" и ".cscfg", говорит ресурсу остановиться или изменить конфигурацию и т. д. Запросы можно выполнять с помощью портал Azure или инструментов, использующих API классической модели развертывания, например функцию публикации Visual Studio. Этот запрос направляется к RDFE для выполнения всех операций, связанных с подпиской, а затем отправляет запрос в FFE. Остальные этапы рабочего процесса — это развертывание нового пакета и его запуск.
- FFE находит правильный машинный пул (на основе данных, введенных клиентом, таких как аффинити-группа или географическое расположение, а также входных данных от системы, таких как доступность машин) и обменивается данными с главным контроллером в этой системе.
- Контроллер fabric находит хост, у которого есть свободные ядра ЦП (или задействует новый хост). Пакет и конфигурация службы копируются на узел, и контроллер структуры взаимодействует с агентом узла в ОС узла для развертывания пакета (настройка DIP, портов, гостевой ОС и т. д.).
- Агент узла запускает гостевую ОС и взаимодействует с гостевым агентом (WindowsAzureGuestAgent). Хост отправляет сигналы контроля на гостевую систему, чтобы убедиться, что роль работает к своему целевому состоянию.
- WindowsAzureGuestAgent настраивает гостевую ОС (брандмауэр, списки управления доступом, LocalStorage и т. д.), копирует новый XML-файл конфигурации в папку c:\Config, а затем запускает процесс WaHostBootstrapper.
- Для полных веб-ролей IIS, WaHostBootstrapper запускает IISConfigurator и распоряжается удалить все существующие пулы приложений для веб-роли из IIS.
- WaHostBootstrapper считывает задачи запуска из E:\RoleModel.xml и начинает выполнение задач запуска. WaHostBootstrapper ожидает завершения всех простых задач запуска и возвращает сообщение об успешном выполнении.
- Для полноценного веб-роли IIS WaHostBootstrapper дает указание IISConfigurator настроить пул приложений IIS и направляет сайт на
E:\Sitesroot\<index>, где<index>— это нулевой индекс из числа элементов<Sites>, определенных для службы. - WaHostBootstrapper запускает процесс узла в зависимости от типа роли:
- Рабочая роль: WaWorkerHost.exe запущена. WaHostBootstrapper выполняет метод OnStart(). После того как он возвращается, WaHostBootstrapper начинает выполнение метода Run() и одновременно помечает роль как готовую, отправляя ее в подсистему балансировки нагрузки (если определены InputEndpoints). Затем WaHostBootsrapper переходит в цикл проверки состояния роли.
- Полная веб-роль IIS: запущена служба aIISHost. WaHostBootstrapper выполняет метод OnStart(). После того как он возвращается, он начинает выполнять метод Run(), а затем одновременно помечает роль как готовую и включает ее в систему балансировки нагрузки. Затем WaHostBootsrapper переходит в цикл проверки состояния роли.
- Входящие веб-запросы к веб-роли с полным IIS активируют IIS для запуска процесса W3WP и обработки запроса так же, как и в локальной среде IIS.
Расположение файлов журнала
WindowsAzureGuestAgent
- C:\Logs\AppAgentRuntime.Log.
Этот журнал содержит изменения в службе, включая запуск, остановку и новые конфигурации. Если служба не изменится, в этом файле журнала можно увидеть большие пробелы во времени. - C:\Logs\WaAppAgent.Log.
Этот журнал содержит обновления состояния и уведомления о пульсе и обновляется каждые 2–3 секунды. Этот журнал содержит историческое представление о состоянии экземпляра и сообщает, когда экземпляр не был в состоянии готовности.
WaHostBootstrapper
C:\Resources\Directory\<deploymentID>.<role>.DiagnosticStore\WaHostBootstrapper.log
WaIISHost
C:\Resources\Directory\<deploymentID>.<role>\WaIISHost.log
IISConfigurator
C:\Resources\Directory\<deploymentID>.<role>\IISConfigurator.log
Журналы IIS
C:\Resources\Directory\<guid>.<role>.DiagnosticStore\LogFiles\W3SVC1
Журналы событий Windows
D:\Windows\System32\Winevt\Logs