Produto SaaS — gestão de equipes

HeroManager
roda em HeroCtl

Produto irmão da casa rodando no mesmo cluster do site institucional. Comer a própria comida, sem cerimônia.

heromanager.app·6 meses em produção
TL;DR

HeroManager é um SaaS de gestão de equipes do mesmo grupo que mantém o HeroCtl. Em vez de hospedar o produto na Heroku ou Render como qualquer startup faria no dia 1, ele virou job no cluster do próprio orquestrador desde o lançamento. O job hero-manager roda 2 réplicas do app web Node.js, 1 banco Postgres como serviço interno do cluster e 3 contêineres auxiliares (worker de filas, cron, gerador de relatórios). 6 meses em produção, zero downtime documentado, deploy completo em 30 segundos. O custo cabe em uma linha de fatura mensal: o mesmo cluster de R$200 que serve mais 4 sites.

O que existia antes

Antes do HeroCtl, o protótipo do HeroManager rodou 2 meses na Heroku em plano Standard 1X — R$680/mês para 1 dyno + Postgres mini. Cada deploy levava 4 minutos e o build às vezes estourava memória. Migrar pro cluster próprio aconteceu na semana em que o HeroCtl entrou em produção: foi o primeiro job real do cluster, antes mesmo do site institucional. A migração levou 1 manifesto de 40 linhas e 1 tarde para subir o Postgres com volume persistente.

No cluster, hoje

Lista dos serviços que sustentam HeroManager no plano de controle replicado.

jobs do cluster
# App Node.js servindo o painel
job: hero-manager-web
replicas: 2
# Worker de fila (e-mails, exports)
job: hero-manager-worker
replicas: 1
# Tarefas agendadas (cobranças, lembretes)
job: hero-manager-cron
replicas: 1
# Banco principal com volume persistente
job: hero-manager-postgres
replicas: 1
# Cache + fila de jobs
job: hero-manager-redis
replicas: 1

Números medidos em produção

Contêineres ativos
6
Réplicas do app web
2
Tempo médio de deploy
~30s
Downtime últimos 6 meses
Zero documentado
Latência p95 do painel
180 ms
TLS automático
Sim, sem operador externo

Antes versus depois

Critérios que importaram pra HeroManager, lado a lado.

Critério Antes Depois
Custo mensalR$680 (Heroku Standard 1X + Postgres)Compartilha cluster R$200
Tempo de deploy4 min~30s
Downtime em deploy5-10sZero
Banco gerenciadoPostgres mini HerokuPostgres como job do cluster
Lock-inAlto — buildpacks + add-onsManifesto portátil
Suporte em portuguêsNãoSim, mesma equipe

O que ficou aprendido

  1. [01]Rolling deploy em ~30s removeu a aba de "manutenção" do roadmap — sobe versão durante o expediente sem reclamação.
  2. [02]Postgres como job do cluster (com volume persistente) substituiu add-on gerenciado sem dor; backup automático para storage S3-compatible roda como tarefa cron.
  3. [03]Monitoramento veio embutido — não precisou subir Prometheus + Grafana + Loki. Os gráficos do painel administrativo já entregam o que a equipe olhava no Heroku Metrics.
  4. [04]O custo marginal de subir o produto no cluster próprio foi efetivamente zero, porque a infra já existia para o site institucional. A linha "hospedagem" sumiu da planilha.
  5. [05]A operação ficou mais previsível: mesma ferramenta para o site público, para o produto e para os clientes externos.

A linha de custo

Antes
R$680/mês
Heroku Standard 1X + Postgres mini
Depois
R$0 marginal
Quota dentro do cluster compartilhado

R$680/mês liberados — passaram a financiar mais 1 servidor de redundância do cluster.

“Migramos pelo custo, ficamos pela operação simples. Hoje subir versão é menos cerimônia que abrir um pull request.”

— Equipe HeroManager

O cluster por trás

A mesma infraestrutura que serve HeroManager também serve outros 4 sites e produtos.

Servidores
4 nós cloud
Capacidade total
5 vCPU · 10 GB
Contêineres ativos
16 no cluster
Eleição automática
~7s após falha

Mesmo cluster. Próximo workload.

Plano Community gratuito permanente, sem feature gates. Mesma infraestrutura que sustenta HeroManager hoje em produção.