Pular para conteúdo

DevOps

Containers

O produto usa Docker Compose v2 com serviços isolados. Em desenvolvimento, publica a web em 8012, PostgreSQL em 5444, Redis em 6386 e RabbitMQ em 5675; o painel de gerenciamento RabbitMQ local usa a porta 15675. Produção mantém a aplicação na porta 8012 e conecta a rede interna do produto à rede externa proxy_net.

Serviço Papel
web Django/Gunicorn, migrations e coleta de estáticos no start de produção.
worker Processa filas Celery, com concorrência 2 em produção.
beat Agenda tarefas usando django_celery_beat DatabaseScheduler.
db PostgreSQL 16, volume persistente isolado.
rabbitmq Broker Celery, com fila padrão.
redis Cache e backend de resultados Celery.

Tarefa agendada

apps.localizacao.tasks.alertar_emprestimos_vencidos executa diariamente às 08h em America/Sao_Paulo. Envia aviso aos responsáveis com endereço de e-mail, registra o processamento e marca o alerta para não repetir. Falha no envio mantém o alerta pendente para tentativa futura.

Rede e arquivos

  • internal isola o tráfego interno dos serviços; em desenvolvimento não é marcada como rede isolada para permitir acesso local aos serviços de apoio.
  • Volumes persistem PostgreSQL, RabbitMQ, arquivos de mídia e estáticos.
  • Dockerfile, docker-compose.yml, docker-compose.prod.yml, scripts/predeploy.sh e scripts/deploy_local.sh definem build e deploy.

Referências