Skip to content

Configurações Incorretas#

Resumo das Configurações Problemáticas#

flowchart TD
    subgraph CRITICO["CRITICO"]
        A["Always On = FALSE"]
    end

    subgraph IMPORTANTE["IMPORTANTE"]
        C["Auto Heal = FALSE"]
        D["Health Check = Nenhum"]
        E["App Insights = Desativado"]
    end

    subgraph MENOR["MENOR"]
        F["HTTP/2 = FALSE"]
    end

    A --> G["Site adormece e demora minutos a reiniciar"]
    C --> I["Sem recuperacao automatica"]
    D --> J["Azure nao sabe se o site esta saudavel"]
    E --> K["Zero visibilidade sobre problemas"]
    F --> L["Performance de rede subotima"]

    style CRITICO fill:#ff4444,color:#fff
    style IMPORTANTE fill:#ff8800,color:#fff
    style MENOR fill:#ffcc00,color:#000

1. Always On = FALSE (CRITICO)#

O que é#

Quando o App Service não recebe pedidos durante aproximadamente 20 minutos, o Azure descarrega a aplicação da memória. O próximo pedido desencadeia um cold start completo.

Impacto#

O Umbraco 7, durante um cold start, reconstrói a cache XML completa a partir da base de dados. Com 11.503 nós de conteúdo e tabelas sobrecarregadas (~1.2M linhas em cmsPropertyData, ~8M em icUrlTracker), este processo demora vários minutos. Durante este tempo, o site parece estar completamente em baixo.

Correção#

  1. Aceder ao Azure Portal
  2. Navegar para App Service > Configuration > General Settings
  3. Ativar Always On = On
  4. Guardar e aguardar o reinício

Custo#

Nenhum custo adicional. O Always On está incluído no plano Standard S2 (e em todos os planos pagos).


2. Auto Heal = FALSE#

O que é#

O Auto Heal é uma funcionalidade do Azure App Service que permite reiniciar automaticamente a aplicação quando determinadas condições são detetadas (erros, uso excessivo de memória, pedidos lentos).

Impacto#

Sem Auto Heal, quando a aplicação entra num estado degradado, permanece nesse estado até que alguém reinicie manualmente o App Service.

Correção#

Ativar Auto Heal com as seguintes regras recomendadas:

Condição Ação Valor
Memória > 80% durante 5 minutos Reiniciar memoryThreshold: 80%
Fila de pedidos > 100 Reiniciar requestQueue: 100
Pedidos lentos (> 30s) Registar + Reiniciar slowRequests: 30s
Status HTTP 500 > 10 em 2 min Reiniciar statusCodes: 500

Custo#

Nenhum.


3. Health Check = Nenhum#

O que é#

O Azure App Service pode ser configurado para verificar periodicamente se a aplicação está saudável, enviando pedidos HTTP para um endpoint específico. Atualmente não está configurado nenhum endpoint de Health Check.

Impacto#

O Azure não tem forma de saber se a aplicação está a responder corretamente. Instâncias não saudáveis continuam a receber tráfego, resultando em erros para os utilizadores.

Correção#

  1. Aceder ao Azure Portal
  2. Navegar para App Service > Health check
  3. Definir o caminho: /umbraco/ping (ou criar um endpoint personalizado)
  4. Ativar

Custo#

Nenhum.


4. Application Insights - Ingestão Desativada#

O que é#

O recurso Application Insights existe no Azure, mas a ingestão de dados está desativada. Isto significa que o recurso foi criado mas nunca configurado para recolher dados, ou foi desativado em algum momento. O resultado é zero telemetria: não há registo de pedidos, erros, tempos de resposta ou métricas de performance.

Impacto#

  • Impossível diagnosticar problemas de forma proativa
  • Sem alertas quando o site está lento ou em baixo
  • Sem histórico de pedidos ou erros para análise
  • Sem métricas de utilização para tomar decisões informadas

Correção#

  1. Aceder ao Azure Portal
  2. Navegar para Application Insights > Properties
  3. Ativar ingestão de dados (Enable)
  4. Verificar que a connection string está configurada no App Service (Application Settings)
  5. Configurar alertas básicos:
    • Tempo de resposta > 10 segundos
    • Taxa de erros > 5%
    • Disponibilidade < 99%

Custo#

O Application Insights tem um tier gratuito de 5 GB/mês de ingestão de dados. Para um site deste tamanho, é provável que fique dentro do limite gratuito ou tenha um custo mínimo (~5-10 EUR/mês).


5. HTTP/2 = FALSE#

O que é#

O HTTP/2 é o protocolo moderno de comunicação web que oferece multiplexing, compressão de headers e server push. O App Service está a usar HTTP/1.1.

Impacto#

Impacto menor, mas o HTTP/2 melhora a performance geral do carregamento de páginas, especialmente em ligações com latência elevada.

Correção#

  1. Aceder ao Azure Portal
  2. Navegar para App Service > Configuration > General Settings
  3. Ativar HTTP version = 2.0
  4. Guardar

Custo#

Nenhum.


Resumo das Correções#

Configuração Estado Atual Estado Recomendado Prioridade Custo Tempo
Always On OFF ON CRÍTICO 0 EUR 1 minuto
Auto Heal OFF ON Importante 0 EUR 10 minutos
Health Check Nenhum Configurado Importante 0 EUR 5 minutos
App Insights Ingestion Desativado Ativado Importante 0-10 EUR/mês 10 minutos
HTTP/2 OFF ON Menor 0 EUR 1 minuto

Todas estas correções podem ser aplicadas em menos de 1 hora, sem risco para a aplicação.