Gerenciar um ambiente do Serviço de Aplicativo

Importante

Este artigo é sobre o Ambiente do Serviço de Aplicativo v2, que é usado com os planos do Serviço de Aplicativo Isolado. O Ambiente do Serviço de Aplicativo v2 será desativado em 31 de agosto de 2024. Há uma nova versão do Ambiente do Serviço de Aplicativo que é mais fácil de usar e é executada em uma infraestrutura mais poderosa. Para saber mais sobre a nova versão, comece com a Introdução ao Ambiente do Serviço de Aplicativo. Se você estiver usando o Ambiente do Serviço de Aplicativo v2, siga as etapas neste artigo para migrar para a nova versão.

A partir de 29 de janeiro de 2024, você não poderá mais criar novos recursos do Ambiente do Serviço de Aplicativo v2 usando qualquer um dos métodos disponíveis, incluindo modelos ARM/Bicep, Portal do Azure, CLI do Azure ou API REST. Você deve migrar para o Ambiente do Serviço de Aplicativo v3 antes de 31 de agosto de 2024 para evitar a exclusão de recursos e a perda de dados.

Um Ambiente do Serviço de Aplicativo (ASE) é uma implantação do Serviço de Aplicativo do Azure em uma sub-rede na instância da Rede Virtual do Azure de um cliente. Um equipamento auxiliar de direção consiste no seguinte:

  • Front-ends: onde HTTP ou HTTPS termina em um Ambiente do Serviço de Aplicativo
  • Trabalhadores: os recursos que hospedam seus aplicativos
  • Banco de dados: contém informações que definem o ambiente
  • Armazenamento: usado para hospedar os aplicativos publicados pelo cliente

Você pode implantar um ASE com um IP virtual (VIP) externo ou interno para acesso ao aplicativo. Uma implantação com um VIP externo é comumente chamada de ASE externo. Uma implantação com um VIP interno é chamada de ILB ASE porque usa um ILB (balanceador de carga interno). Para saber mais sobre o ILB ASE, consulte Criar e usar um ILB ASE.

Criar um aplicativo em um ASE

Para criar um aplicativo em um ASE, você usa o mesmo processo de quando normalmente cria um aplicativo, mas com algumas pequenas diferenças. Quando você cria um novo plano do Serviço de Aplicativo:

  • Em vez de escolher um local geográfico para implantar seu aplicativo, você escolhe um ASE como seu local.
  • Todos os planos do Serviço de Aplicativo criados em um ASE só podem estar em uma camada de preço Isolada.

Se você não tiver um ASE, poderá criar um seguindo as instruções em Criar um ambiente do Serviço de Aplicativo.

Para criar um aplicativo em um ASE:

  1. Selecione Criar um recurso>Web + Mobile>Web App.

  2. Introduzir um nome para a aplicação. Se você já selecionou um plano do Serviço de Aplicativo em um ASE, o nome de domínio do aplicativo reflete o nome de domínio do ASE:

    App name selection

  3. Selecione uma subscrição.

  4. Insira um nome para um novo grupo de recursos ou selecione Usar existente e selecione um na lista suspensa.

  5. Selecione o seu SO.

  6. Selecione um plano do Serviço de Aplicativo existente em seu ASE ou crie um novo seguindo estas etapas:

    a. No menu do lado esquerdo do portal do Azure, selecione Criar um aplicativo Web de recurso>.

    b. Selecione uma subscrição.

    c. Selecione ou crie o grupo de recursos.

    d. Introduza o nome da sua aplicação Web.

    e. Selecione Code ou DockerContainer.

    f. Selecione uma pilha de tempo de execução.

    g. Selecione Linux ou Windows.

    h. Selecione seu ASE na lista suspensa Região .

    i. Selecione ou crie um novo plano do Serviço de Aplicativo. Se estiver criando um novo plano do Serviço de Aplicativo, selecione o tamanho apropriado da SKU Isolada .

    Isolated pricing tiers

    Nota

    Os aplicativos Linux e os aplicativos do Windows não podem estar no mesmo plano do Serviço de Aplicativo, mas podem estar no mesmo Ambiente do Serviço de Aplicativo.

  7. Selecione Rever + criar, certifique-se de que as informações estão corretas e, em seguida, selecione Criar.

Como funciona a escala

Cada aplicativo do Serviço de Aplicativo é executado em um plano do Serviço de Aplicativo. Os Ambientes do Serviço de Aplicativo mantêm os planos do Serviço de Aplicativo e os planos do Serviço de Aplicativo mantêm os aplicativos. Ao dimensionar um aplicativo, você também dimensiona o plano do Serviço de Aplicativo e todos os aplicativos desse mesmo plano.

Quando você dimensiona um plano do Serviço de Aplicativo, a infraestrutura necessária é adicionada automaticamente. Há um atraso de tempo para dimensionar as operações enquanto a infraestrutura está sendo adicionada. Se você fizer várias operações de escala em sequência, a primeira solicitação de escala de infraestrutura será executada e as outras serão enfileiradas. Quando a primeira operação de escala termina, as outras solicitações de infraestrutura operam todas juntas. E quando a infraestrutura é adicionada, os planos do Serviço de Aplicativo são atribuídos conforme apropriado. A criação de um novo plano do Serviço de Aplicativo é, em si, uma operação de escala porque solicita hardware adicional. Uma operação em escala geralmente leva de 30 a 60 minutos para ser concluída.

No Serviço de Aplicativo multilocatário, o dimensionamento é imediato porque um pool de recursos está prontamente disponível para dar suporte a ele. Em um ASE, não há esse buffer e os recursos são alocados com base na necessidade.

Em um ASE, você pode dimensionar um plano do Serviço de Aplicativo até 100 instâncias. Um ASE pode ter até 201 instâncias totais em todos os planos do Serviço de Aplicativo nesse ASE.

Endereços IP

O Serviço de Aplicativo pode alocar um endereço IP dedicado a um aplicativo. Esse recurso está disponível depois que você configura uma associação TLS/SSL baseada em IP, conforme descrito em Vincular um certificado TLS/SSL personalizado existente ao Serviço de Aplicativo do Azure. Em um ILB ASE, não é possível adicionar mais endereços IP a serem usados para a ligação TLS/SSL baseada em IP.

Com um ASE externo, você pode configurar uma associação TLS/SSL baseada em IP para seu aplicativo da mesma forma que no Serviço de Aplicativo multilocatário. Há sempre um endereço sobressalente no ASE, até 30 endereços IP. Cada vez que você usa um, outro é adicionado para que um endereço esteja sempre prontamente disponível. É necessário um atraso de tempo para alocar outro endereço IP. Esse atraso impede a adição de endereços IP em rápida sucessão.

Dimensionamento front-end

Quando você expande seus planos do Serviço de Aplicativo, os trabalhadores são adicionados automaticamente para dar suporte a eles. Cada ASE é criado com dois front-ends. Os front-ends são dimensionados automaticamente a uma taxa de um front-end para cada conjunto de 15 instâncias do plano do Serviço de Aplicativo. Por exemplo, se você tiver três planos do Serviço de Aplicativo com cinco instâncias cada, terá um total de 15 instâncias e três front-ends. Se você dimensionar para um total de 30 instâncias, terá quatro front-ends. Esse padrão continua à medida que você expande.

O número de front-ends alocados por padrão é bom para uma carga moderada. Você pode reduzir a proporção para apenas um front-end para cada cinco instâncias. Você também pode alterar o tamanho dos front-ends. Por padrão, eles são de núcleo único. No portal do Azure, você pode alterar seu tamanho para dois ou quatro núcleos.

Há uma taxa para alterar a proporção ou os tamanhos de front-end. Para obter mais informações, consulte Preços do Serviço de Aplicativo do Azure. Se você quiser melhorar a capacidade de carga do seu ASE, obterá mais melhorias primeiro dimensionando para front-ends de dois núcleos antes de ajustar a taxa de escala. Alterar o tamanho do núcleo dos seus front-ends causará uma atualização do seu ASE e deve ser feito fora do horário comercial normal.

Os recursos front-end são o ponto de extremidade HTTP/HTTPS para o ASE. Com a configuração de front-end padrão, o uso de memória por front-end é consistentemente em torno de 60%. A principal razão para dimensionar seus front-ends é o uso da CPU, que é impulsionado principalmente pelo tráfego HTTPS.

Acesso da aplicação

Em um ASE externo, o sufixo de domínio usado para a criação de aplicativos é .<asename.p.azurewebsites.net>. Se o ASE for chamado external-ase e você hospedar um aplicativo chamado contoso nesse ASE, você o alcançará nestas URLs:

  • contoso.external-ase.p.azurewebsites.net
  • contoso.scm.external-ase.p.azurewebsites.net

Para obter informações sobre como criar um ASE externo, consulte Criar um ambiente do Serviço de Aplicativo.

Em um ILB ASE, o sufixo de domínio usado para a criação de aplicativos é .<asename.appserviceenvironment.net>. Se o ASE for chamado ilb-ase e você hospedar um aplicativo chamado contoso nesse ASE, você o alcançará nestes URLs:

  • contoso.ilb-ase.appserviceenvironment.net
  • contoso.scm.ilb-ase.appserviceenvironment.net

Para obter informações sobre como criar um ILB ASE, consulte Criar e usar um ILB ASE.

A URL SCM é usada para acessar o console do Kudu ou para publicar seu aplicativo usando o Web Deploy. O console Kudu oferece uma interface do usuário da web para depuração, upload de arquivos, edição de arquivos e muito mais.

Configuração do DNS

Quando você usa um ASE externo, os aplicativos criados em seu ASE são registrados no DNS do Azure. Não há etapas adicionais em um ASE externo para que seus aplicativos estejam disponíveis publicamente. Com um ASE do ILB, tem de gerir o seu próprio DNS. Você pode fazer isso em seu próprio servidor DNS ou com zonas privadas do DNS do Azure.

Para configurar o DNS em seu próprio servidor DNS com seu ILB ASE:

  1. criar uma zona para <o nome> ASE.appserviceenvironment.net
  2. criar um registro A nessa zona que aponte * para o endereço IP ILB
  3. criar um registro A nessa zona que aponte @ para o endereço IP do ILB
  4. criar uma zona no <nome> ASE.appserviceenvironment.net chamada scm
  5. criar um registro A na zona scm que aponte * para o endereço IP ILB

Para configurar o DNS em zonas privadas do DNS do Azure:

  1. crie uma zona privada do DNS do Azure chamada <nome> ASE.appserviceenvironment.net
  2. criar um registro A nessa zona que aponte * para o endereço IP ILB
  3. criar um registro A nessa zona que aponte @ para o endereço IP do ILB
  4. criar um registro A nessa zona que aponte *.scm para o endereço IP ILB

As configurações de DNS para o sufixo de domínio padrão ASE não restringem seus aplicativos a serem acessíveis apenas por esses nomes. Você pode definir um nome de domínio personalizado sem qualquer validação em seus aplicativos em um ILB ASE. Se você quiser criar uma zona chamada contoso.net, poderá fazê-lo e apontá-la para o endereço IP ILB. O nome de domínio personalizado funciona para solicitações de aplicativo, mas não para o site do scm. O site do scm só está disponível em <appname.scm.<>asename.appserviceenvironment.net>.

A zona denominada .<asename.appserviceenvironment.net> é globalmente único. Antes de maio de 2019, os clientes podiam especificar o sufixo de domínio do ILB ASE. Se você quisesse usar .contoso.com para o sufixo de domínio, você poderia fazê-lo e isso incluiria o site scm. Havia desafios com esse modelo, incluindo; gerenciando o certificado TLS/SSL padrão, a falta de logon único com o site do scm e o requisito de usar um certificado curinga. O processo de atualização do certificado padrão do ILB ASE também causou interrupções e causou reinicializações de aplicativos. Para resolver esses problemas, o comportamento do ILB ASE foi alterado para usar um sufixo de domínio baseado no nome do ASE e com um sufixo de propriedade da Microsoft. A alteração no comportamento do ILB ASE afeta apenas os ASE ILB feitos após maio de 2019. Os ASEs ILB pré-existentes ainda devem gerenciar o certificado padrão do ASE e sua configuração DNS. Se o ILB ASE V2 tiver sido criado após maio de 2019, não será necessário gerenciar o certificado padrão do ILB, pois ele é gerenciado pela Microsoft.

Em publicação

Em um ASE, como no Serviço de Aplicativo multilocatário, você pode publicar pelos seguintes métodos:

  • Implementação na Web
  • FTP
  • Integração contínua (CI)
  • Arraste e solte no console do Kudu
  • Um IDE, como Visual Studio, Eclipse ou IntelliJ IDEA

Com um ASE externo, todas essas opções de publicação funcionam da mesma maneira. Para obter mais informações, consulte Implantação no Serviço de Aplicativo do Azure.

Com um ILB ASE, os parâmetros de avaliação final de publicação só estão disponíveis através do ILB. O ILB está em um IP privado na sub-rede ASE na rede virtual. Se você não tiver acesso de rede ao ILB, não poderá publicar nenhum aplicativo nesse ASE. Conforme observado em Criar e usar um ILB ASE, você deve configurar o DNS para os aplicativos no sistema. Esse requisito inclui o ponto de extremidade SCM. Se os pontos de extremidade não estiverem definidos corretamente, você não poderá publicar. Seus IDEs também devem ter acesso de rede ao ILB para publicar diretamente nele.

Sem alterações adicionais, os sistemas de CI baseados na Internet, como o GitHub e o Azure DevOps, não funcionam com um ILB ASE porque o ponto de extremidade de publicação não está acessível pela Internet. Você pode habilitar a publicação em um ILB ASE do Azure DevOps instalando um agente de liberação auto-hospedado na rede virtual que contém o ILB ASE. Como alternativa, você também pode usar um sistema de CI que usa um modelo pull, como o Dropbox.

Os pontos finais de publicação para aplicações num ASE de ILB utilizam o domínio com o qual o ASE de ILB foi criado. Você pode vê-lo no perfil de publicação do aplicativo e no painel do portal do aplicativo (em Visão geral>do Essentials e também em Propriedades).

Armazenamento

Um ASE tem 1 TB de armazenamento para todos os aplicativos no ASE. Um plano do Serviço de Aplicativo na SKU de preço Isolado tem um limite de 250 GB. Em um ASE, 250 GB de armazenamento são adicionados por plano do Serviço de Aplicativo até o limite de 1 TB. Você pode ter mais planos do Serviço de Aplicativo do que apenas quatro, mas não há mais armazenamento adicionado além do limite de 1 TB.

Monitorização

Como cliente, você deve monitorar os planos do Serviço de Aplicativo e os aplicativos individuais em execução e tomar as ações apropriadas. Para o Ambiente do Serviço de Aplicativo v2, você também deve prestar atenção às métricas em torno da infraestrutura da plataforma. Essas métricas fornecerão informações sobre o desempenho da infraestrutura da plataforma e dos servidores front-end (multiRole), e você poderá agir se eles forem muito utilizados e você não estiver obtendo a taxa de transferência máxima.

Por meio do portal do Azure e da CLI, você pode configurar a proporção de escala de seus servidores front-end entre 5 e 15 (padrão 15) instâncias do plano do Serviço de Aplicativo por servidor front-end. Um Ambiente do Serviço de Aplicativo sempre terá um mínimo de dois servidores front-end. Você também pode aumentar o tamanho dos servidores frontend.

O escopo de métricas usado para monitorar a infraestrutura da plataforma é chamado Microsoft.Web/hostingEnvironments/multiRolePoolsde .

Você verá um escopo chamado Microsoft.Web/hostingEnvironments/workerPools. As métricas aqui são aplicáveis apenas ao Ambiente do Serviço de Aplicativo v1.

Registo

Você pode integrar seu ASE ao Azure Monitor para enviar logs sobre o ASE para o Armazenamento do Azure, Hubs de Eventos do Azure ou Análise de Log. Estes itens são registrados hoje:

Situação Mensagem
O ASE não é saudável O ASE especificado não está íntegro devido a uma configuração de rede virtual inválida. O ASE será suspenso se o estado insalubre continuar. Certifique-se de que as diretrizes definidas aqui sejam seguidas: Considerações de rede para um ambiente do Serviço de Aplicativo.
A sub-rede ASE está quase sem espaço O ASE especificado está em uma sub-rede que está quase sem espaço. Há {0} endereços restantes. Uma vez esgotados esses endereços, o ASE não poderá escalar.
O ASE está se aproximando do limite total de instâncias O ASE especificado está se aproximando do limite total de instâncias do ASE. Atualmente, ele contém {0} instâncias do Plano do Serviço de Aplicativo de um máximo de 201 instâncias.
ASE é incapaz de alcançar uma dependência O ASE especificado não é capaz de alcançar {0}. Certifique-se de que as diretrizes definidas aqui sejam seguidas: Considerações de rede para um ambiente do Serviço de Aplicativo.
ASE é suspenso O ASE especificado é suspenso. A suspensão do ASE pode ser devido a uma falha na conta ou a uma configuração de rede virtual inválida. Resolva a causa raiz e retome o ASE para continuar a servir o tráfego.
A atualização do ASE já foi iniciada Foi iniciada uma atualização da plataforma para o ASE especificado. Espere atrasos nas operações de dimensionamento.
A atualização do ASE foi concluída Uma atualização de plataforma para o ASE especificado foi concluída.
As operações de escala foram iniciadas Um plano do Serviço de Aplicativo ({0}) começou a ser dimensionado. Estado desejado: {1} Eu{2} trabalhadores.
As operações de escala foram concluídas Um plano do Serviço de Aplicativo ({0}) terminou o dimensionamento. Estado atual: {1} I{2} trabalhadores.
As operações de escala falharam Um plano do Serviço de Aplicativo ({0}) falhou ao ser dimensionado. Estado atual: {1} I{2} trabalhadores.

Para ativar o registo no seu ASE:

  1. No portal, vá para Configurações de diagnóstico.
  2. Selecione Adicionar definição de diagnóstico.
  3. Forneça um nome para a integração de log.
  4. Selecione e configure os destinos de log desejados.
  5. Selecione AppServiceEnvironmentPlatformLogs.

ASE diagnostic log settings

Se você se integrar ao Log Analytics, poderá ver os logs selecionando Logs no portal ASE e criando uma consulta em AppServiceEnvironmentPlatformLogs. Os logs só são emitidos quando o ASE tem um evento que irá acioná-lo. Se o seu ASE não tiver esse evento, não haverá registros. Para ver rapidamente um exemplo de logs em seu espaço de trabalho do Log Analytics, execute uma operação de dimensionamento com um dos planos do Serviço de Aplicativo em seu ASE. Em seguida, você pode executar uma consulta em AppServiceEnvironmentPlatformLogs para ver esses logs.

Criar um alerta

Para criar um alerta em relação aos seus logs, siga as instruções em Criar, exibir e gerenciar alertas de log usando o Azure Monitor. Em resumo:

  • Abra a página Alertas no portal ASE
  • Selecione Nova regra de alerta
  • Selecione seu recurso para ser seu espaço de trabalho do Log Analytics
  • Defina sua condição com uma pesquisa de log personalizada para usar uma consulta como "AppServiceEnvironmentPlatformLogs | onde ResultDescription contém "começou a dimensionar" ou o que você quiser. Defina o limite conforme apropriado.
  • Adicione ou crie um grupo de ações conforme desejado. O grupo de ação é onde você define a resposta ao alerta, como o envio de um e-mail ou uma mensagem SMS
  • Atribua um nome ao seu alerta e guarde-o.

Preferência de atualização

Se você tiver vários ASEs, talvez queira que alguns ASEs sejam atualizados antes de outros. Este comportamento pode ser ativado através do seu portal ASE. Em Configuração , você tem a opção de definir a preferência de atualização. Os três valores possíveis são:

  • Nenhum: o Azure atualizará seu ASE em nenhum lote específico. Este valor é a predefinição.
  • Antecipado: seu ASE será atualizado na primeira metade das atualizações do Serviço de Aplicativo.
  • Atrasado: seu ASE será atualizado na segunda metade das atualizações do Serviço de Aplicativo.

Selecione o valor desejado e selecione Salvar. O padrão para qualquer ASE é Nenhum.

ASE configuration portal

O recurso upgradePreferences faz mais sentido quando você tem vários ASEs porque seus ASEs "Antecipados" serão atualizados antes de seus ASEs "Tardios". Quando tiver vários ASEs, você deve definir seus ASEs de desenvolvimento e teste como "Antecipados" e seus ASEs de produção como "Tardios".

Preços

O SKU de preço chamado Isolado é para uso apenas com ASEs. Todos os planos do Serviço de Aplicativo hospedados no ASE estão na SKU de preço Isolado. As tarifas isoladas para planos do Serviço de Aplicativo podem variar de acordo com a região.

Além do preço dos seus planos do Serviço de Aplicativo, há uma taxa fixa para o próprio ASE. A taxa fixa não muda com o tamanho do seu ASE. Ele paga pela infraestrutura ASE a uma taxa de escala padrão de um front-end adicional para cada 15 instâncias do plano do Serviço de Aplicativo.

Se a taxa de escala padrão de um front-end para cada 15 instâncias do plano do Serviço de Aplicativo não for rápida o suficiente, você poderá ajustar a proporção na qual os front-ends são adicionados ou o tamanho dos front-ends. Ao ajustar a proporção ou o tamanho, você paga pelos núcleos front-end que não seriam adicionados por padrão.

Por exemplo, se você ajustar a taxa de escala para 10, um front-end será adicionado para cada 10 instâncias em seus planos do Serviço de Aplicativo. A taxa fixa cobre uma taxa de escala de um front-end para cada 15 instâncias. Com uma proporção de escala de 10, você paga uma taxa pelo terceiro front-end adicionado para as 10 instâncias do plano do Serviço de Aplicativo. Você não precisa pagar por ele quando atingir 15 instâncias, porque ele foi adicionado automaticamente.

Se você ajustar o tamanho dos front-ends para dois núcleos, mas não ajustar a proporção, pagará pelos núcleos extras. Um ASE é criado com dois front-ends, portanto, mesmo abaixo do limite de dimensionamento automático, você pagaria por dois núcleos extras se aumentasse o tamanho para front-ends de dois núcleos.

Para obter mais informações, consulte Preços do Serviço de Aplicativo do Azure.

Excluir um ASE

Para excluir um ASE:

  1. Selecione Excluir na parte superior do painel Ambiente do Serviço de Aplicativo.

  2. Introduza o nome do seu ASE para confirmar que pretende eliminá-lo. Ao excluir um ASE, você também exclui todo o conteúdo dentro dele.

    ASE deletion

  3. Selecione OK.

ASE CLI

Há recursos de linha de comando para administrar a um ASE. Os comandos da CLI do Azure são observados abaixo.

C:\>az appservice ase --help

Group
    az appservice ase : Manage App Service Environments v2.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    create         : Create app service environment.
    delete         : Delete app service environment.
    list           : List app service environments.
    list-addresses : List VIPs associated with an app service environment.
    list-plans     : List app service plans associated with an app service environment.
    show           : Show details of an app service environment.
    update         : Update app service environment.

For more specific examples, use: az find "az appservice ase"