Fluxo de trabalho da arquitetura clássica de máquina virtual (VM) do Microsoft Azure
Importante
Os Serviços de Nuvem (clássicos) estão obsoletos para todos os clientes desde 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 permanentemente perdidos 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.
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
- 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.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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. - WaHostBootstrapper inicia o processo host dependendo do tipo de função:
- 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.
- 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.
- 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