🔍 Análise: Stacks 4c vs fourc
Data: 2025-12-06
Status: ⚠️ Duplicação Identificada
📊 Situação Atual
Stacks Identificados
| Stack | Serviços | Status | Uso |
|---|---|---|---|
4c |
14 serviços | ✅ Ativo | Em uso (29 requisições/24h) |
fourc |
14 serviços | ✅ Ativo | Pouco uso (5 requisições/24h) |
Serviços Duplicados (14)
Ambos os stacks têm exatamente os mesmos serviços:
- ✅ clickhouse
- ✅ decision-api
- ✅ executor
- ✅ feature-service
- ✅ feedback-worker
- ✅ kafka
- ✅ kafka-connect
- ✅ kafka-exporter
- ✅ model-trainer
- ✅ mysqld-exporter
- ✅ redis
- ✅ scoring-service
- ✅ ui
- ✅ zookeeper
🔍 Análise de Uso
Stack 4c (RECOMENDADO MANTER)
Evidências de uso ativo:
- ✅ Rotas Traefik configuradas:
- Host(csuite.internut.com.br) && PathPrefix(/4c/decision)
- Host(csuite.internut.com.br) && PathPrefix(/4c)
- ✅ Tráfego ativo: 29 requisições nas últimas 24h
- ✅ Arquivo de stack: 4c/docker/stack/4c.yml existe e está configurado
- ✅ Integrado ao ecossistema: Rotas no gateway unificado
Stack fourc (CANDIDATO PARA REMOÇÃO)
Evidências de pouco uso:
- ⚠️ Tráfego baixo: Apenas 5 requisições nas últimas 24h (métricas Prometheus)
- ⚠️ Sem rotas Traefik: Não encontrado em configurações do Traefik
- ⚠️ Possível legado: Pode ser uma versão antiga ou de teste
💡 Recomendação
✅ MANTER: Stack 4c
Razões:
1. ✅ Está em uso ativo (rotas Traefik configuradas)
2. ✅ Recebe tráfego real (29 requisições vs 5)
3. ✅ Integrado ao ecossistema (csuite.internut.com.br/4c)
4. ✅ Arquivo de configuração existe e está atualizado
❌ REMOVER: Stack fourc
Razões:
1. ⚠️ Pouco uso (apenas métricas Prometheus)
2. ⚠️ Não está exposto via Traefik
3. ⚠️ Duplicação de recursos (50% de CPU/memória desperdiçada)
4. ⚠️ Complexidade desnecessária (manter 2 stacks idênticos)
🚀 Plano de Ação
Fase 1: Verificação Final (1 hora)
Antes de remover fourc, verificar:
- Verificar dependências internas:
```bash
# Buscar referências a "fourc_" no código
grep -r "fourc_" --include=".py" --include=".yml" .
# Verificar se algum serviço depende de fourc_*
docker service ls | grep -E "depends|links"
```
- Verificar volumes e dados:
```bash
# Verificar volumes exclusivos do fourc
docker volume ls | grep fourc
# Verificar se há dados importantes
docker service inspect fourc_clickhouse --format '{{range .Spec.TaskTemplate.ContainerSpec.Mounts}}{{.Source}} {{end}}'
```
- Verificar logs de erro:
bash # Verificar se há erros relacionados docker service logs fourc_decision-api --tail 100 | grep -i error
Fase 2: Remoção Segura (30 minutos)
Após verificação, remover stack fourc:
# 1. Parar stack fourc
docker stack rm fourc
# 2. Aguardar remoção completa
while docker service ls | grep -q "^fourc_"; do
echo "Aguardando remoção..."
sleep 10
done
# 3. Verificar que 4c continua funcionando
curl https://csuite.internut.com.br/4c/decision/health
# 4. Limpar volumes órfãos (se seguro)
docker volume prune -f
Fase 3: Validação (1 hora)
Após remoção, validar:
-
✅ Health checks funcionando:
bash curl https://csuite.internut.com.br/4c/decision/health curl https://csuite.internut.com.br/4c/decision/docs -
✅ Serviços 4c ativos:
bash docker service ls | grep "^4c_" -
✅ Métricas Prometheus:
- Verificar que métricas continuam sendo coletadas
- Verificar que não há gaps nos dados
⚠️ Riscos e Mitigações
Riscos Identificados
- Serviços internos podem depender de
fourc_* - Mitigação: Busca completa no código antes de remover
-
Rollback: Manter stack
fourcpor 1 semana após remoção (se necessário) -
Dados em volumes exclusivos
- Mitigação: Verificar volumes antes de remover
-
Rollback: Backup de volumes antes de remover
-
Configurações diferentes não identificadas
- Mitigação: Comparar configurações lado a lado
- Rollback: Manter configurações como backup
📋 Checklist de Execução
Pré-Remoção
- [ ] Buscar referências a
fourc_no código - [ ] Verificar volumes exclusivos
- [ ] Comparar configurações (se houver diferenças)
- [ ] Verificar logs de erro
- [ ] Criar backup de configurações
Durante Remoção
- [ ] Parar stack
fourc - [ ] Aguardar remoção completa
- [ ] Verificar que
4ccontinua funcionando - [ ] Monitorar logs de
4cpor erros
Pós-Remoção
- [ ] Validar health checks
- [ ] Validar rotas Traefik
- [ ] Validar métricas Prometheus
- [ ] Monitorar por 24-48 horas
- [ ] Documentar remoção
📊 Benefícios Esperados
Recursos Liberados
- ✅ 50% de redução em CPU/memória para serviços duplicados
- ✅ 14 serviços removidos (simplificação)
- ✅ Redução de complexidade operacional
Operação Simplificada
- ✅ Uma única stack para manter
- ✅ Menos pontos de falha
- ✅ Deploy mais simples
🎯 Conclusão
Recomendação Final:
✅ MANTER 4c (está em uso ativo)
❌ REMOVER fourc (duplicação desnecessária)
Próximo passo: Executar verificação final e remoção segura do stack fourc.
Última atualização: 2025-12-06