Ir para o conteúdo

Confiabilidade

Compromissos operacionais factuais da TELECOM TOWER POWER. Métricas baseadas no que está implementado e medido em produção, não em aspiração.

Última revisão: 2026-11-03. Status em tempo real: status.telecomtowerpower.com.br.

SLA por tier

Tier Disponibilidade mensal Crédito por violação
Free Best-effort —
Starter 99,5 % (alvo) —
Pro 99,5 % (alvo) —
Business 99,9 % (alvo) —
Enterprise 99,9 % (alvo) / ≥ 99,95 % (contratual) 10 %, 25 % ou 50 %, por faixa (política de reembolso)
Ultra 99,95 % definido no contrato

Do Free ao Business vale o esforço razoável de disponibilidade dos Termos §6.1, sem crédito. A janela de cálculo é o mês civil em UTC. Manutenção programada anunciada com pelo menos 24 h de antecedência (Termos §6.2) não conta como indisponibilidade.

RTO e RPO

O Railway é a região primária única; a estratégia de recuperação é restore a partir de backup, não failover quente entre regiões.

Cenário RTO RPO
Falha de container/instância (Railway) < 5 min (restart automático) 0 (stateless)
Incidente de região/provedor (Railway) horas (depende da recuperação do Railway) ≤ 1 h (backup horário → MinIO na Railway, espelhado na Backblaze B2)
Corrupção lógica de banco ~ 2–4 h (restore do último dump no MinIO da Railway) ≤ 1 h (backup horário); WAL contínuo para restaurar a um ponto no tempo (PITR)
Perda total do projeto Railway ~ 1 dia (restore do dump espelhado na Backblaze B2, conta independente da Railway) ≤ 1 h (backup horário)

Drill semanal automatizado verifica restore de Postgres + assertions de integridade.

Recuperação de desastres

Não há failover quente ativo entre regiões — o Railway hospeda a região primária única. A continuidade é garantida por restore a partir de backup:

  • Backup automatizado do Postgres → MinIO na Railway (backup-railway-postgres.yml, noturno, retenção de 14 dias) como linha de base.
  • Serviço de backup horário (pg-backup, cron nativo do Railway → MinIO na Railway, retenção de 7 dias): RPO ≤ 1 h. As cadeias noturna, horária e PITR passaram no ensaio de restauração de 05/10/2026 (GET /status/reliability).
  • Drill de restore semanal (backup-restore-drill.yml) restaura o último dump em Postgres efêmero e valida integridade.
  • Cada dump é espelhado fora da Railway, na Backblaze B2 (us-east-005, retenção de 30 dias), junto com o arquivamento contínuo de WAL do PITR (pgBackRest): é essa cópia que cobre a perda total do projeto Railway, e o ensaio semanal restaura a partir dela.

Multi-region ativo / failover quente está fora do roadmap atual por custo e pela natureza majoritariamente reconstruível do dado (as torres derivam de fontes públicas ANATEL/OpenCellID).

O runbook operacional é interno; resumo sob pedido em security@telecomtowerpower.com.br.

Observabilidade

  • Métricas: Prometheus + Grafana, 15 dias de retenção
  • Logs: Loki, 30 dias
  • Traces: não são coletados hoje. O serviço Tempo foi aposentado em 12/10/2026: nenhum componente exportava traces para ele
  • Alertas: regras de alerta Prometheus versionadas no repositório → Alertmanager → Slack, um canal por severidade (critical, warning e as demais; send_resolved=true); rota PagerDuty/Opsgenie disponível para tenants Tier-1 com NOC contratado, inerte por padrão
  • Synthetic monitoring: sondas agendadas no GitHub Actions nos endpoints públicos (apex, api, app, www, status, docs, monitoring, prometheus); o agendamento é de melhor esforço, e o número real de sondas aparece na página de status
  • Painel de operação (Grafana, acesso restrito a operadores): monitoring.telecomtowerpower.com.br

Continuidade do negócio (Bus factor)

A empresa é pequena. Tratamos a continuidade como controle de primeira ordem:

Mitigação Aplicável a
Source code escrow (cláusula opcional de contrato; sem agente de escrow contratado hoje) Enterprise, Ultra
Runbook versionado em git (interno; resumo sob pedido) Todos
Backups automatizados + restore drill semanal Todos
Documentação de arquitetura versionada em git (interna) Todos
CI/CD reproduzível (workflows GitHub Actions versionados no repositório) Todos
Infraestrutura como código (railway.json por serviço, Docker Compose on-prem) commitada Todos
Knowledge base de incidentes em git Todos

O escrow é uma cláusula opcional do contrato Enterprise/Ultra e da licença perpétua on-prem (LICENSE-PERPETUAL.md): o cliente recebe o código-fonte completo (exceto dependências de terceiros com licenças incompatíveis) se a empresa deixar de operar. Hoje não há acordo com agente de escrow; agente, gatilhos e custo se negociam nesse contrato.

Histórico de incidentes

Página pública de status: status.telecomtowerpower.com.br.

Pós-mortems internos; resumo sob pedido em security@telecomtowerpower.com.br em até 7 dias úteis após incidentes Sev 1 ou Sev 2.

Manutenção programada

  • Janela preferencial: domingos 04:00–06:00 UTC
  • Anúncio: email para todos os contatos de billing com pelo menos 24 h de antecedência (Termos §6.2)
  • Tipicamente zero downtime (rolling deploy no Railway); janelas anunciadas só se rolling não for possível

Endurecimento recente (2026-Q2)

  • Modelo de cobertura em produção: /coverage/predict responde com a cadeia ITU-R P.1812/P.1411 + resíduo LightGBM, treinada com 124.309 medições reais de drive-test, agregadas em 76.139 pontos (GET /coverage/claim-readiness); a troca de artefato passa por PR e merge humano, e o ridge-v1 ficou só como fallback. Números ao vivo em GET /coverage/claim-readiness; método em Validação do modelo
  • Fila prioritária Enterprise/Ultra: RQ/Redis (fila ttp_priority), SLA 99.95% no Ultra
  • Restore drill semanal: assertions de integridade em towers, api_keys, alembic_version toda segunda 07:15 UTC

Limitações conhecidas

  • Região única: o Railway hospeda a região primária única; não há failover quente entre regiões. A recuperação de desastres é por restore a partir de backup (MinIO na Railway + espelho na Backblaze B2). Multi-region ativo está fora do roadmap atual por custo.
  • Sem auditoria SOC 2 / ISO 27001 externa hoje, e sem certificação. Questionário de segurança sob pedido em security@telecomtowerpower.com.br.
  • Equipe pequena: fora do horário comercial (UTC-3), a cobertura é 12×5 no Business, 24×5 no Enterprise e 24×7 só no Ultra, sob contrato (SLA por tier).