Pular para conteúdo

C4 · Container

Objetivo

Mostrar de que processos/serviços deployáveis (containers Docker) um produto CoreFlow é composto — nível 2 do C4 Model.


Diagrama — padrão real (CoreFlow CRM como exemplo)

flowchart TD Browser["Navegador"] -->|HTTPS| NPM["Nginx Proxy Manager\n(compartilhado entre produtos)"] NPM -->|proxy para a porta do produto| Web["Container Web\nDjango + Gunicorn"] Web -->|ORM| DB[("Container PostgreSQL")] Web -->|cache/broker| Redis[("Container Redis")] Web -->|enfileira tarefas| MQ[("Container RabbitMQ")] MQ --> Worker["Container Worker\nCelery"] Worker --> DB

Containers reais por produto

Container Tecnologia Responsabilidade
Web Django + Gunicorn (imagem multi-stage, usuário não-root) Serve HTTP, renderiza templates, expõe API quando o produto tem uma
PostgreSQL postgres:16-alpine Persistência — banco isolado por produto
Redis redis:7-alpine Cache e, em alguns produtos, broker do Celery
RabbitMQ rabbitmq:3.13-management-alpine Broker do Celery nos produtos que o adotam (ex.: CRM)
Worker Celery, mesma imagem da app Processamento assíncrono (e-mails, tarefas periódicas)

O Nginx Proxy Manager não é um container por produto — é compartilhado por todos os produtos da VPS, fazendo o roteamento por subdomínio e o SSL (ver Cloud).


Referências