Skip to content

Runbook - Restart e Recuperação

Sintomas que indicam necessidade de restart

  • Páginas internas não carregam
  • Menu sem ação (cliques não respondem)
  • Páginas ficam a processar indefinidamente (spinner permanente)
  • API /umbraco/Api/ContentApi/GetData/ nao responde ou demora >30 segundos

Fluxograma de decisão

flowchart TD A[Site com problemas] --> B{Que tipo de problema?} B -->|Paginas nao carregam| C{API responde?} B -->|Lento / timeout| D[Verificar metricas App Service] B -->|Erro 500| E[Verificar logs Application Insights] C -->|Nao| F[Restart do App Service] C -->|Sim mas lento| D D --> G{CPU/Memoria > 80%?} G -->|Sim| F G -->|Nao| H{SQL DTU > 90%?} H -->|Sim| I[Escalar SQL temporariamente] H -->|Nao| F F --> J{Resolveu?} J -->|Sim| K[Monitorizar 30 min] J -->|Nao| N[Escalar App Service Plan] N --> O{Resolveu?} O -->|Sim| K O -->|Nao| P[Contactar equipa Double Shore] E --> F

Procedimento de Restart Imediato

Opção 1: Via Azure Portal

  1. Aceder ao Azure Portal
  2. Navegar para App Servicesuncwebprd
  3. Na página Overview, clicar em Restart
  4. Confirmar o restart
  5. Aguardar 2-3 minutos para o cold start completar

Opção 2: Via Azure CLI

az webapp restart \
  --name uncwebprd \
  --resource-group unc-prd \
  --subscription 2e6c7ed6-c6f8-4058-901c-c3113a4df82a

Verificação após restart

Após o restart, validar os seguintes pontos:

  1. Homepage: Aceder a https://www.unicef.pt — deve carregar em menos de 10 segundos
  2. Backoffice: Aceder a https://www.unicef.pt/umbraco — deve carregar a pagina de login
  3. API: Verificar que a API responde corretamente:
curl -s -o /dev/null -w "%{http_code} %{time_total}s" \
  "https://www.unicef.pt/umbraco/Api/ContentApi/GetData/?url=/"

O resultado esperado e codigo 200 com tempo inferior a 5 segundos.

Procedimento para ambiente de Qualidade

az webapp restart \
  --name uncwebqual \
  --resource-group unc-qual \
  --subscription 2e6c7ed6-c6f8-4058-901c-c3113a4df82a

Verificação:

  • Aceder ao ambiente de qualidade e confirmar que carrega normalmente
  • Testar a API no ambiente de qualidade

Se o restart nao resolver

Se após o restart o problema persistir, seguir estes passos por ordem:

1. Verificar o SQL Server

O SQL pode estar em DTU throttling (sobrecarga de recursos).

# Ver métricas do SQL
az monitor metrics list \
  --resource /subscriptions/2e6c7ed6-c6f8-4058-901c-c3113a4df82a/resourceGroups/unc-prd/providers/Microsoft.Sql/servers/uncsqlsrv-prd/databases/uncdb-prd \
  --metric dtu_consumption_percent \
  --interval PT5M

Se DTU > 90%, considerar escalar temporariamente o tier do SQL.

2. Verificar o Storage Account

Confirmar que o storage account uncstorageprd está acessível e a responder.

az storage account show \
  --name uncstorageprd \
  --resource-group unc-prd \
  --subscription 2e6c7ed6-c6f8-4058-901c-c3113a4df82a

3. Escalar o App Service Plan

Como ultimo recurso, escalar temporariamente o App Service Plan para um tier superior:

# Ver o plano atual
az appservice plan show \
  --name <nome-do-plano> \
  --resource-group unc-prd \
  --subscription 2e6c7ed6-c6f8-4058-901c-c3113a4df82a

# Escalar para um tier superior (exemplo: S2 → S3)
az appservice plan update \
  --name <nome-do-plano> \
  --resource-group unc-prd \
  --sku S3 \
  --subscription 2e6c7ed6-c6f8-4058-901c-c3113a4df82a

Nota

Após resolver o problema, reverter o tier para o original para evitar custos desnecessários.