Compartilhar via


Fluxo de trabalho da arquitetura clássica de máquina virtual (VM) do Microsoft Azure

Importante

Os Serviços de Nuvem (clássicos) agora se encontram preteridos para todos os clientes a partir de 1º de setembro de 2024. Todas as implantações em execução existentes serão interrompidas e desligadas pela Microsoft e os dados serão perdidos de forma permanente a partir de outubro de 2024. As novas implantações devem usar o novo modelo de implantação baseado no Azure Resource Manager Serviços de Nuvem do Azure (suporte estendido) .

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

Observação

O Azure tem dois modelos de implantação diferentes para criar e trabalhar com recursos: Gerenciador de Recursos e Clássico. Este artigo aborda o uso do modelo de implantação clássica.

O diagrama a seguir apresenta a arquitetura dos recursos do Azure.

<alt 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 usuário para a malha. RDFE (RedDog Front End) é a API exposta publicamente que é o front-end do Portal de Gerenciamento e da API do modelo de implantação clássico, como Visual Studio, Azure MMC e assim por diante. Todas as solicitações do usuário passam por RDFE. FFE (Front-End da Malha) é a camada que converte solicitações do RDFE em comandos de malha. Todas as solicitações de RDFE percorrem o FFE para alcançar os controladores de malha.

B. O controlador de malha é responsável por manter e monitorar todos os recursos no data center. Ele se comunica com agentes de host de malha no sistema operacional de malha, enviando informações como a versão do sistema operacional convidado, o pacote de serviço, a configuração de serviço e o estado do serviço.

C. O Host Agent reside no sistema operacional host e é responsável por configurar o sistema operacional convidado. Ele também lida com a comunicação com o Agente Convidado (WindowsAzureGuestAgent) para atualizar a função em direção a um estado de meta pretendido e fazer verificações de pulsação com o Agente Convidado. Se o Host Agent não receber resposta de pulsação por 10 minutos, o Host Agent reinicia o sistema operacional convidado.

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

D. WindowsAzureGuestAgent é responsável pelas seguintes tarefas:

  • Configurar o sistema operacional convidado, incluindo Firewall, ACLs, recursos de LocalStorage, pacote de serviço e configuração e certificados.
  • Configurando o SID para a conta de usuário sob a qual a função é executada.
  • Comunicar o status da função à malha.
  • Iniciar o WaHostBootstrapper e monitorando-o para se certificar de que a função está no estado de meta.

E. O WaHostBootstrapper é responsável por:

  • Ler a configuração da função e iniciar todas as tarefas e processos apropriados para configurar e executar a função.
  • Monitorar todos os seus processos filho.
  • Gerar o evento StatusCheck no processo de host da função.

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

  • Iniciar os serviços padrão do IIS
  • Configurar o módulo Rewrite na configuração da Web
  • Configurar o AppPool para a função configurada no modelo de serviço
  • Configurar o log do IIS para apontar para a pasta DiagnosticStore LocalStorage
  • Configurar permissões e ACLs
  • O site reside em %roleroot%:\sitesroot\0, e o AppPool aponta para esse local para executar o IIS.

G. O modelo define as tarefas de inicialização e o WaHostBootstrapper as inicia. As tarefas de inicialização podem ser configuradas para serem executadas em segundo plano de forma assíncrona, e o bootstrapper do host inicia a tarefa de inicialização e depois continua com outras tarefas de inicialização. As tarefas de inicialização também podem ser configuradas para serem executadas no modo Simples (padrão). No modo Simples, o bootstrapper do host aguarda a conclusão da tarefa de inicialização e retorna um código de saída de sucesso (0) antes de continuar para a próxima tarefa de inicialização.

H. Essas tarefas fazem parte do SDK e são definidas como plug-ins na definição de serviço da função (.csdef). Quando expandido para tarefas de inicialização, o DiagnosticsAgent e o RemoteAccessAgent são exclusivos, pois cada um deles define duas tarefas de inicialização, uma regular e outra que tem um parâmetro /blockStartup. A tarefa de inicialização normal é definida como uma Tarefa de inicialização em segundo plano para que possa ser executada em segundo plano enquanto a própria função está em execução. A tarefa de inicialização /blockStartup é definida como uma tarefa de inicialização simples para que o WaHostBootstrapper aguarde sua saída antes de continuar. A tarefa /blockStartup aguarda a conclusão da inicialização da tarefa regular e, em seguida, sai e permite que o bootstrapper do host continue. Esse processo é feito para que o diagnóstico e o acesso RDP possam ser configurados antes do início dos processos de função, o que é feito através da tarefa /blockStartup. Esse processo também permite que o diagnóstico e o acesso RDP continuem em execução após o bootstrapper do host concluir as tarefas de inicialização, o que é feito por meio da tarefa Normal.

I. O WaWorkerHost é o processo de host padrão para funções de trabalho normais. Esse processo de host hospeda todas as DLLs da função e o código de ponto de entrada, como OnStart e Run.

J. O WaIISHost é o processo de host para o código de ponto de entrada de função para funções Web que usam o IIS completo. Esse processo carrega a primeira DLL encontrada que usa a classe RoleEntryPoint e executa o código dessa classe (OnStart, Run, OnStop). Todos os eventos RoleEnvironment (como StatusCheck e Changed) criados na classe RoleEntryPoint são gerados nesse processo.

K. W3WP é o processo de trabalho padrão do IIS usado se a função estiver configurada para usar o IIS completo. Esse processo executa o AppPool configurado no IISConfigurator. Qualquer evento RoleEnvironment (como StatusCheck e Changed) que são criados aqui são gerados nesse processo. Os eventos RoleEnvironment são acionados em ambos os locais (WaIISHost e w3wp.exe) se você assinar eventos em ambos os processos.

Processos de fluxo de trabalho

  1. Um usuário faz uma solicitação, como carregar arquivos ".cspkg" e ".cscfg", informando a um recurso para parar ou fazendo uma alteração de configuração, e assim por diante. As solicitações podem ser feitas por meio do portal do Azure ou de ferramentas que usam a API do modelo de implantação clássico, como o recurso Visual Studio Publish. Essa solicitação vai para RDFE para fazer todo o trabalho relacionado à assinatura e, em seguida, comunicar a solicitação ao FFE. O restante dessas etapas de fluxo de trabalho é implantar um novo pacote e iniciá-lo.
  2. O FFE localiza o pool de computadores correto (com base na entrada do cliente, como grupo de afinidade ou localização geográfica, além de entrada da malha, como disponibilidade do computador) e se comunica com o controlador de malha mestre nesse pool de computadores.
  3. O controlador de malha localiza um host que tem núcleos de CPU disponíveis (ou cria um novo host). O pacote de serviço e a configuração são copiados para o host, e o controlador de malha se comunica com o agente do host no sistema operacional do host para implantar o pacote (configurar DIPs, portas, sistemas operacionais convidado e assim por diante).
  4. O agente de host inicia o sistema operacional convidado e se comunica com o agente convidado (WindowsAzureGuestAgent). O host envia pulsações ao convidado para garantir que a função esteja funcionando em direção ao seu estado desejado.
  5. O WindowsAzureGuestAgent configura o sistema operacional convidado (firewall, ACLs, LocalStorage e assim por diante), copia um novo arquivo de configuração XML para c:\Config e, em seguida, inicia o processo de WaHostBootstrapper.
  6. Para funções Web do IIS completas, o WaHostBootstrapper inicia o IISConfigurator e informa a ele para excluir quaisquer AppPools existentes para a função Web do IIS.
  7. O WaHostBootstrapper lê as tarefas de Inicialização de E:\RoleModel.xml e começa a executar as tarefas de inicialização. WaHostBootstrapper espera até que todas as tarefas de inicialização simples sejam concluídas e retorne uma mensagem de sucesso.
  8. Para funções Web do IIS completas, o WaHostBootstrapper informa ao IISConfigurator para configurar o AppPool do IIS e aponta para o site E:\Sitesroot\<index>, em que <index> é um índice de base zero no número de <Sites> elementos definidos para o serviço.
  9. WaHostBootstrapper inicia o processo host dependendo do tipo de função:
    1. Função de trabalho: O WaWorkerHost.exe é iniciado. O WaHostBootstrapper executa o método OnStart (). Depois de retornar, o WaHostBootstrapper começa a executar o método Run () e, em seguida, marca a função simultaneamente como Pronta e a coloca na rotação do balanceador de carga (se InputEndpoints for definido). Em seguida, o WaHostBootsrapper, entra em um loop de verificação do status da função.
    2. Função Web do IIS completa: o aIISHost foi iniciado. O WaHostBootstrapper executa o método OnStart (). Depois de retornar, ele começa a executar o método Run () e, em seguida, marca a função simultaneamente como Pronta e a coloca na rotação do balanceador de carga. Em seguida, o WaHostBootsrapper, entra em um loop de verificação do status da função.
  10. As solicitações da Web recebidas para uma função da Web Full IIS acionam o IIS para iniciar o processo W3WP e atender a solicitação, da mesma forma que faria em um ambiente IIS local.

Localizações dos Arquivos de log

WindowsAzureGuestAgent

  • C:\Logs\AppAgentRuntime.Log.
    Esse log contém alterações no serviço, incluindo início, interrupções e novas configurações. Se o serviço não alterar, você verá grandes intervalos de tempo nesse arquivo de log.
  • C:\Logs\WaAppAgent.Log.
    Esse log contém as atualizações de status, as notificações de pulsação e é atualizado a cada 2-3 segundos. Esse log contém uma visão histórica do status da instância e informa 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

Logs do IIS

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

Logs de eventos do Windows

D:\Windows\System32\Winevt\Logs