Resumo Executivo¶
Situação Atual¶
O website da UNICEF Portugal tem sofrido crashes recorrentes a cada 1-2 dias durante os últimos 6 meses aproximadamente. Este problema afeta a disponibilidade do site para os utilizadores e impede a equipa de gerir conteúdos e redirecionamentos de forma eficaz.
Após uma análise detalhada da infraestrutura Azure e da aplicação Umbraco, foram identificadas as causas raiz do problema.
Causas Identificadas (por ordem de prioridade)¶
1. App Service com "Always On" desativado (CRÍTICO)¶
O App Service está configurado para adormecer quando não recebe pedidos durante ~20 minutos. Quando um utilizador acede ao site após esse período, a aplicação precisa de reiniciar completamente, reconstruindo toda a cache a partir de uma base de dados sobrecarregada. Este processo demora vários minutos, durante os quais o site parece estar em baixo.
2. Tabela de rastreamento de URLs com 1,6 milhões de registos (457 MB)¶
A tabela icUrlTracker contém 1.631.926 registos desnecessários. Um site típico tem menos de 10.000 registos nesta tabela. Este volume anormal contribui para a lentidão geral e torna a gestão de redirecionamentos impossível.
3. Mais de 41.000 versões antigas de conteúdo¶
O Umbraco guarda todas as versões de cada conteúdo editado. Com 47.485 versões acumuladas (41.365 das quais podem ser eliminadas), a base de dados está significativamente sobrecarregada.
4. Monitorização (Application Insights) desativada¶
O recurso Application Insights existe no Azure, mas a ingestão de dados está desativada. Isto significa que não há qualquer telemetria, alertas ou forma de diagnosticar problemas proativamente.
5. Gestão de redirecionamentos inoperacional¶
A tabela icUrlTracker com 1,6 milhões de registos torna o backoffice do Umbraco incapaz de carregar a secção de redirecionamentos. A equipa não consegue adicionar, editar ou remover redirecionamentos há cerca de 1 ano.
Tempo Estimado de Resolução¶
| Tipo de Correção | Tempo Estimado | Risco |
|---|---|---|
| Alterações de configuração (Always On, App Insights, etc.) | Imediato (1-2 horas) | Muito baixo |
| Limpeza da base de dados | 1-2 dias (com testes) | Baixo (se testado em qualidade primeiro) |
Abordagem de Risco¶
Todas as alterações serão testadas primeiro no ambiente de qualidade antes de serem aplicadas em produção. A limpeza da base de dados será precedida de um backup completo. As alterações de configuração do App Service são reversíveis instantaneamente.
Poupança Estimada¶
Foram identificados recursos Azure que aparentam não estar em utilização (VMs, VMSS, MySQL Flexible Server, Bastion, Load Balancer). A desativação destes recursos, após confirmação com a equipa, pode resultar numa poupança mensal estimada de 475 a 585 EUR/mês.
| Categoria | Valor Estimado |
|---|---|
| Recursos necessários (App Service, SQL, Front Door, etc.) | ~517-527 EUR/mês |
| Recursos potencialmente desnecessários | ~775-885 EUR/mês |
| Poupança potencial | ~475-585 EUR/mês |
Próximos Passos¶
- Aplicar correções de configuração imediatas no App Service
- Testar scripts de limpeza da base de dados no ambiente de qualidade
- Executar limpeza em produção numa janela de manutenção
- Ativar monitorização com Application Insights
- Avaliar e desligar recursos não utilizados