Guia de Implantação e Operação
Guia de Implantação e Operação
NexarGrid Documentation • v beta-2.0.1
Este documento descreve os procedimentos para implantar, operar e manter a infraestrutura do NexarGrid. A arquitetura foi projetada para ser agnóstica à nuvem, mas este guia foca na implantação de referência utilizando containers Docker e orquestração via Kubernetes (ou Docker Swarm para ambientes menores).
# Pré-requisitos de Infraestrutura
Para um ambiente de produção mínimo, recomenda-se:
- Cluster Kubernetes: v1.24+ (EKS, AKS, GKE ou On-Premise)
- Banco de Dados: SurrealDB v1.0.0+ (Cluster de 3 nós para HA)
- Message Bus: NATS Server v2.9+ (JetStream habilitado)
- Cache: Redis v6.2+ (Cluster Mode desabilitado para setups simples)
- Ingress Controller: Traefik v2.10+ ou NGINX
# Pipeline de CI/CD
O ciclo de vida de entrega contínua é gerenciado via GitHub Actions (ou similar), seguindo o fluxo:
- Build: Compilação dos microsserviços e do frontend Vue.js.
- Test: Execução de testes unitários (Jest) e de integração.
- Package: Criação de imagens Docker e push para o Registry privado.
- Deploy: Atualização dos manifestos Kubernetes (Helm Charts) no ambiente de destino.
# Estratégia de Deploy do Frontend (GitHub Pages)
A documentação técnica (este site) é gerada estaticamente e hospedada no GitHub Pages.
- Build:
npm run buildgera os arquivos estáticos emdist/. - Deploy: O conteúdo da pasta
dist/é enviado para a branchgh-pages.
# Script de deploy manual para documentação
npm run build
git add dist -f
git commit -m "deploy: update documentation"
git subtree push --prefix dist origin gh-pages
# Monitoramento e Observabilidade
A saúde do sistema deve ser monitorada através das seguintes métricas douradas (Golden Signals):
- Latência: Tempo de resposta dos endpoints críticos (
/api/grid/load,/api/shiftPack/create). - Tráfego: Taxa de requisições por segundo (RPS) no API Gateway.
- Erros: Taxa de respostas 5xx e falhas de processamento de eventos.
- Saturação: Uso de CPU/Memória dos pods e tamanho das filas NATS.
# Logs e Tracing
- Logs: Centralizados via Fluentd/Elasticsearch.
- Tracing: OpenTelemetry integrado ao MoleculerJS para rastreamento distribuído.
# Procedimentos de Backup e Recuperação
# SurrealDB
Backups diários automatizados com retenção de 30 dias.
# Comando de exportação manual
surreal export --conn http://localhost:8000 --user root --pass root --ns nexar --db production > backup_$(date +%F).sql
# Disaster Recovery (DR)
Em caso de falha catastrófica do cluster principal:
- Provisionar novo cluster em região secundária.
- Restaurar backup do SurrealDB.
- Redirecionar DNS (Route53/Cloudflare) para o novo Ingress.
- Tempo estimado de recuperação (RTO): 4 horas.