Share via


Fluxo de trabalho da Arquitetura de VM clássica do Windows Azure

Importante

Serviços Cloud (clássico) foi preterido para novos clientes e será descontinuado a 31 de agosto de 2024 para todos os clientes. As novas implementações devem utilizar o novo modelo de implementação baseado em Resource Manager do Azure Serviços Cloud (suporte alargado).

Este artigo fornece uma descrição geral dos processos de fluxo de trabalho que ocorrem quando implementa ou atualiza um recurso do Azure, como uma máquina virtual.

Nota

O Azure tem dois modelos de implementação para criar e trabalhar com recursos: Resource Manager e Clássico. Este artigo cobre a utilização do modelo de implementação clássica.

O diagrama seguinte apresenta a arquitetura dos recursos do Azure.

<alt A imagem sobre o fluxo de trabalho do Azure>

Noções básicas do fluxo de trabalho

A. RDFE/FFE é o caminho de comunicação do utilizador para os recursos de infraestrutura. O RDFE (RedDog Front End) é a API exposta publicamente que é o front-end do Portal de Gestão e da API de Gestão de Serviços, como o Visual Studio, o Azure MMC, etc. Todos os pedidos do utilizador passam por RDFE. FFE (Front-end dos Recursos de Infraestrutura) é a camada que traduz pedidos de RDFE em comandos de recursos de infraestrutura. Todos os pedidos de RDFE passam pelo FFE para aceder aos controladores de recursos de infraestrutura.

B. O controlador de recursos de infraestrutura é responsável por manter e monitorizar todos os recursos no datacenter. Comunica com os agentes de anfitrião de recursos de infraestrutura no SO dos recursos de infraestrutura que enviam informações como a versão do SO Convidado, o pacote de serviço, a configuração do serviço e o estado do serviço.

C. O Agente anfitrião reside no SO Anfitrião e é responsável por configurar o SO Convidado e comunicar com o Agente Convidado (WindowsAzureGuestAgent) para atualizar a função para um estado de objetivo pretendido e efetuar verificações de heartbeat com o agente Convidado. Se o Agente anfitrião não receber a resposta de heartbeat durante 10 minutos, o Agente anfitrião reinicia o SO Convidado.

C2. O WaAppAgent é responsável por instalar, configurar e atualizar WindowsAzureGuestAgent.exe.

D. O WindowsAzureGuestAgent é responsável pelo seguinte:

  1. Configurar o SO Convidado, incluindo firewall, ACLs, recursos LocalStorage, configuração e pacote de serviço, e certificados.
  2. Configurar o SID para a conta de utilizador na qual a função será executada.
  3. Comunicar o estado da função aos recursos de infraestrutura.
  4. Iniciar o WaHostBootstrapper e monitorizá-lo para garantir que a função está no estado de objetivo.

E. O WaHostBootstrapper é responsável por:

  1. Ler a configuração da função e iniciar todas as tarefas e processos adequados para configurar e executar a função.
  2. Monitorizar todos os processos subordinados.
  3. A elevar o evento StatusCheck no processo de anfitrião de função.

F. O IISConfigurator é executado se a função estiver configurada como uma função Web IIS completa. É responsável por:

  1. Iniciar os serviços IIS padrão
  2. Configurar o módulo de reescrita na configuração da Web
  3. Configurar o AppPool para a função configurada no modelo de serviço
  4. Configurar o registo do IIS para apontar para a pasta DiagnosticStore LocalStorage
  5. Configurar permissões e ACLs
  6. O site reside em %roleroot%:\sitesroot\0 e o AppPool aponta para esta localização para executar o IIS.

G. As tarefas de arranque são definidas pelo modelo de função e iniciadas pelo WaHostBootstrapper. As tarefas de arranque podem ser configuradas para serem executadas em segundo plano de forma assíncrona e o bootstrapper anfitrião iniciará a tarefa de arranque e, em seguida, avançará para outras tarefas de arranque. As tarefas de arranque também podem ser configuradas para serem executadas no modo Simples (predefinição), no qual o bootstrapper anfitrião aguardará que a tarefa de arranque termine e devolva um código de saída com êxito (0) antes de avançar para a próxima tarefa de arranque.

H. Estas tarefas fazem parte do SDK e são definidas como plug-ins na definição de serviço da função (.csdef). Quando expandidos para tarefas de arranque, o DiagnosticsAgent e o RemoteAccessAgent são exclusivos na medida em que cada uma define duas tarefas de arranque, uma regular e outra com um parâmetro /blockStartup . A tarefa de arranque normal é definida como uma tarefa de arranque em segundo plano para que possa ser executada em segundo plano enquanto a própria função está em execução. A tarefa de arranque /blockStartup é definida como uma tarefa de arranque Simples para que o WaHostBootstrapper aguarde que saia antes de continuar. A tarefa /blockStartup aguarda que a tarefa normal termine a inicialização e, em seguida, sai e permite que o bootstrapper anfitrião continue. Isto é feito para que os diagnósticos e o acesso RDP possam ser configurados antes do início dos processos de função (isto é feito através da tarefa /blockStartup). Isto também permite que os diagnósticos e o acesso RDP continuem a ser executados depois de o bootstrapper anfitrião ter concluído as tarefas de arranque (isto é feito através da tarefa Normal).

Eu. O WaWorkerHost é o processo de anfitrião padrão para funções de trabalho normais. Este processo de anfitrião aloja todos os DLLs da função e o código de ponto de entrada, como OnStart e Run.

J. O WaIISHost é o processo de anfitrião do código de ponto de entrada de função para funções Web que utilizam o IIS Completo. Este processo carrega a primeira DLL encontrada que utiliza a classe RoleEntryPoint e executa o código desta classe (OnStart, Run, OnStop). Todos os eventos RoleEnvironment (como StatusCheck e Changed) criados na classe RoleEntryPoint são gerados neste processo.

K. O W3WP é o processo de trabalho IIS padrão que é utilizado se a função estiver configurada para utilizar o IIS Completo. Esta ação executa o AppPool configurado a partir do IISConfigurator. Todos os eventos RoleEnvironment (como StatusCheck e Changed) que são criados aqui são gerados neste processo. Tenha em atenção que os eventos RoleEnvironment serão acionados em ambas as localizações (WaIISHost e w3wp.exe) se subscrever eventos em ambos os processos.

Processos de fluxo de trabalho

  1. Um utilizador faz um pedido, como carregar ficheiros ".cspkg" e ".cscfg", indicar a um recurso para parar ou fazer uma alteração de configuração, etc. Isto pode ser feito através do portal do Azure ou de uma ferramenta que utiliza a API de Gestão de Serviços, como a funcionalidade Publicar do Visual Studio. Este pedido vai para RDFE para fazer todo o trabalho relacionado com a subscrição e, em seguida, comunicar o pedido ao FFE. Os restantes passos do fluxo de trabalho são implementar um novo pacote e iniciá-lo.
  2. O FFE localiza o conjunto de máquinas (com base na entrada do cliente, como o grupo de afinidades ou a localização geográfica e a entrada dos recursos de infraestrutura, como a disponibilidade da máquina) e comunica com o controlador de recursos de infraestrutura mestre nesse conjunto de máquinas.
  3. O controlador de recursos de infraestrutura localiza um anfitrião que tem núcleos de CPU disponíveis (ou cria um novo anfitrião). O pacote de serviço e a configuração são copiados para o anfitrião e o controlador de recursos de infraestrutura comunica com o agente anfitrião no SO anfitrião para implementar o pacote (configurar DIPs, portas, SO convidado, etc.).
  4. O agente anfitrião inicia o SO Convidado e comunica com o agente convidado (WindowsAzureGuestAgent). O anfitrião envia heartbeats ao convidado para se certificar de que a função está a funcionar no seu estado de objetivo.
  5. O WindowsAzureGuestAgent configura o SO convidado (firewall, ACLs, LocalStorage, etc.), copia um novo ficheiro de configuração XML para c:\Config e, em seguida, inicia o processo WaHostBootstrapper.
  6. Para funções Web IIS completas, o WaHostBootstrapper inicia o IISConfigurator e diz-lhe para eliminar quaisquer AppPools existentes para a função Web do IIS.
  7. O WaHostBootstrapper lê as tarefas de Arranque do E:\RoleModel.xml e começa a executar tarefas de arranque. O WaHostBootstrapper aguarda até que todas as tarefas de arranque Simples sejam concluídas e devolva uma mensagem de "êxito".
  8. Para funções Web IIS completas, o WaHostBootstrapper indica ao IISConfigurator para configurar o AppPool do IIS e aponta o site para E:\Sitesroot\<index>, onde <index> é um índice baseado em zero no número de <Sites> elementos definidos para o serviço.
  9. O WaHostBootstrapper iniciará o processo de anfitrião consoante o tipo de função:
    1. Função de Trabalho: WaWorkerHost.exe é iniciada. O WaHostBootstrapper executa o método OnStart(). Após a devolução, o WaHostBootstrapper começa a executar o método Run() e, em seguida, marca simultaneamente a função como Pronto e coloca-a na rotação do balanceador de carga (se os InputEndpoints estiverem definidos). Em seguida, o WaHostBootsrapper entra num ciclo de verificação do estado da função.
    2. Função Web IIS Completa: aIISHost é iniciada. O WaHostBootstrapper executa o método OnStart(). Depois de devolver, começa a executar o método Run() e, em seguida, marca simultaneamente a função como Pronto e coloca-a na rotação do balanceador de carga. Em seguida, o WaHostBootsrapper entra num ciclo de verificação do estado da função.
  10. Os pedidos Web recebidos para uma função Web IIS completa acionam o IIS para iniciar o processo W3WP e servir o pedido, tal como faria num ambiente do IIS no local.

Localizações do Ficheiro de Registo

WindowsAzureGuestAgent

  • C:\Logs\AppAgentRuntime.Log.
    Este registo contém alterações ao serviço, incluindo inícios, paragens e novas configurações. Se o serviço não for alterado, pode esperar ver grandes lacunas de tempo neste ficheiro de registo.
  • C:\Logs\WaAppAgent.Log.
    Este registo contém atualizações de estado e notificações de heartbeat e é atualizado a cada 2 a 3 segundos. Este registo contém uma vista histórica do estado da instância e indicar-lhe-á quando a instância não estava no estado Pronto.

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

Registos do IIS

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

Registos de Eventos do Windows

D:\Windows\System32\Winevt\Logs