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¶
internalisola 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.shescripts/deploy_local.shdefinem build e deploy.
Referências¶
- Implantação
- Configuração:
config/settings/base.py.