Implementação de Aplicativos Web no App Service

Resumo do App Service Plan, troca de slots de implantação, dimensionamento automático, TLS/SSL e log de diagnóstico.

O App Service e um dos servicos mais importantes no exame AZ-204. Voce precisa entender claramente a estrutura de niveis, os slots de implantacao, o escalonamento automatico, as configuracoes do app e o registro de diagnostico.

 

O que e o App Service?

Pense em um complexo de apartamentos. Todo o complexo e o App Service Plan (infraestrutura) e cada apartamento e uma aplicacao individual. Assim como o tamanho do complexo (nivel) determina o numero de unidades e as comodidades disponiveis, o nivel do App Service Plan determina quais recursos estao disponiveis.

O App Service e uma plataforma totalmente gerenciada (PaaS) que permite executar aplicacoes web, APIs REST e backends moveis sem gerenciar servidores.

 

Niveis do App Service Plan

Um App Service Plan e um grupo de maquinas virtuais nas quais seus apps sao executados. Voce pode hospedar varios apps no mesmo Plan e todos compartilham os mesmos recursos de computacao.

| Nivel | Recursos | Caso de uso | |-------|---------|------------| | Free / Shared | Infraestrutura gratuita ou compartilhada, sem slots de implantacao, dominios personalizados limitados | Aprendizado e experimentacao | | Basic | VMs dedicadas, escalonamento manual, sem slots de implantacao | Apps de pequena escala | | Standard | Escalonamento automatico, 5 slots de implantacao, backup, dominio personalizado + SSL | Producao geral | | Premium | VMs de alto desempenho, 20 slots de implantacao, integracao VNet | Apps de alto trafego | | Isolated (ASE) | Rede virtual dedicada, maxima seguranca, App Service Environment | Financas, saude, conformidade |

Ponto-chave: Os Slots de implantacao e o Escalonamento automatico so estao disponiveis no nivel Standard e acima.

 

Slots de Implantacao (Deployment Slots)

Um slot de implantacao e um recurso que permite executar independentemente varios ambientes (staging, QA, producao, etc.) dentro do mesmo App Service. E semelhante a um "balcao de degustacao" em um restaurante. Antes de servir um novo prato aos clientes, a equipe o experimenta primeiro no balcao de degustacao. Se nao houver problemas, vai para o cardapio principal (producao).

Troca de Slots (Slot Swap)

Apos testes completos no slot de staging, troque-o com producao com um unico clique. Como o app e aquecido antes da conclusao da troca, nao ha tempo de inatividade.

Implantacao sem tempo de inatividade: A versao existente continua servindo trafego ate que a nova versao esteja pronta Reversao (Rollback): Se algo der errado, troque imediatamente para restaurar a versao anterior Troca automatica (Auto Swap): Troca automaticamente com producao quando a implantacao no staging e concluida (util para CI/CD)

Configuracoes Fixas (Sticky Settings)

Algumas configuracoes de slot permanecem fixas no slot e nao se movem quando ocorre uma troca. Por exemplo, se voce configurar uma string de conexao de banco de dados de forma diferente para cada slot e marcar como fixa, o slot de staging sempre usa o banco de dados de teste e a producao sempre usa o banco de dados de producao.

Fixa (Sticky): Configuracoes que permanecem no slot apos uma troca (ex. strings de conexao, configuracoes especificas do app) Nao fixa: Configuracoes que se movem juntas durante uma troca (ex. configuracoes gerais do app)

 

Escalonamento Automatico (Autoscaling)

Assim como um restaurante que designa mais funcionarios durante o almoco movimentado e menos quando esta tranquilo, o App Service aumenta ou diminui automaticamente o numero de instancias com base no trafego.

Metodos de Escalonamento

| Metodo | Descricao | Exemplo | |--------|-----------|---------| | Baseado em regras | Escalar quando uma metrica ultrapassa um limite | Adicionar uma instancia quando a CPU exceder 80% | | Baseado em horario | Pre-escalar em horarios especificos do dia | Escalar para 3 instancias todos os dias as 9h |

Metricas suportadas: uso de CPU, uso de memoria, comprimento da fila HTTP, contagem de solicitacoes Escalar horizontalmente (Scale Out): Aumentar o numero de instancias Escalar verticalmente (Scale Up): Mover para um nivel de VM maior

 

Configuracoes do App (App Settings)

As Configuracoes do App injetam variaveis de ambiente no seu app. Em vez de escrever senhas ou chaves de API diretamente no codigo, voce recebe valores de configuracao de fora. E como nao escrever a combinacao de um cofre no codigo mas inseri-la externamente no proprio cofre.

Configuracoes do App: Pares chave-valor que o codigo le como variaveis de ambiente Strings de conexao (Connection Strings): Informacoes de conexao ao banco de dados (ADO.NET, MySQL, etc.) Referencia ao Key Vault: Le os valores de configuracao diretamente do Azure Key Vault. Os segredos nao sao armazenados no App Service, melhorando a seguranca.

Comportamento das Configuracoes em Slots

Se voce marcar uma configuracao de app como configuracao de slot, ela nao se move durante uma troca. Por outro lado, as configuracoes de app que nao sao configuracoes de slot se movem juntas durante uma troca.

 

Registro de Diagnostico (Diagnostic Logging)

Usado para encontrar a causa quando algo da errado no seu app. Assim como um medico examina os resultados de exames ao diagnosticar um paciente, voce usa o registro de diagnostico para analisar o estado do seu app.

| Tipo de registro | Descricao | SO suportado | |-----------------|-----------|-------------| | Registro de aplicacao | Registros escritos pelo codigo do app (saida de console, etc.) | Windows / Linux | | Registro do servidor web | Registros de solicitacoes/respostas HTTP (logs IIS) | Windows | | Mensagens de erro detalhadas | Salvar paginas de erro HTTP 4xx/5xx | Windows | | Rastreamento de solicitacoes com falha | Rastreamento detalhado do processamento de solicitacoes com falha | Windows |

Destinos de registros: Sistema de arquivos do App Service ou Azure Blob Storage Streaming de registros: Visualize registros ao vivo pelo Portal do Azure ou Azure CLI

 

Pontos-chave do exame

"Nivel minimo que suporta slots de implantacao e escalonamento automatico" -- Standard

"Rede dedicada, maxima seguranca, conformidade" -- Isolated (ASE)

"Mudar staging para producao sem tempo de inatividade" -- Troca de slot (Slot Swap)

"Configuracoes que permanecem em um slot apos uma troca" -- Configuracoes fixas (Sticky Settings)

"Restaurar imediatamente a versao anterior quando algo der errado" -- Reversao com troca de slot

"Escalonar automaticamente instancias com base em CPU / memoria / fila HTTP" -- Escalonamento automatico baseado em regras

"Injetar configuracao sem colocar senhas no codigo" -- Configuracoes do App (App Settings)

"Ler valores de configuracao diretamente do Key Vault" -- Referencia ao Key Vault

"Registros de solicitacoes/respostas HTTP (logs IIS)" -- Registro do servidor web

"Registros escritos diretamente pelo codigo do app" -- Registro de aplicacao

"Scale Out vs Scale Up" -- Out = mais instancias / Up = mover para uma VM maior

Voltar à lista do blog