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#
- Aceder ao Azure Portal
- Navegar para App Service > Configuration > General Settings
- Ativar Always On = On
- 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#
- Aceder ao Azure Portal
- Navegar para App Service > Health check
- Definir o caminho:
/umbraco/ping(ou criar um endpoint personalizado) - 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#
- Aceder ao Azure Portal
- Navegar para Application Insights > Properties
- Ativar ingestão de dados (Enable)
- Verificar que a connection string está configurada no App Service (Application Settings)
- 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#
- Aceder ao Azure Portal
- Navegar para App Service > Configuration > General Settings
- Ativar HTTP version = 2.0
- 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.