Noções Básicas de Implantação
10 exemplos para você começar com Contêineres e Implantação - 7 básicos e 3 intermediários.
Busque em todas as páginas da documentação
10 exemplos para você começar com Contêineres e Implantação - 7 básicos e 3 intermediários.
uv venv && source .venv/bin/activate
uv pip install "fastapi>=0.115" "uvicorn[standard]>=0.34" "gunicorn>=23.0" "flask>=3.1"Flask expõe um callable WSGI consumido pelo Gunicorn.
from flask import Flask
app = Flask(__name__)
@app.get("/health")
def health():
return {"status": "ok"}gunicorn -w 2 -b 0.0.0.0:8000 'app:app'app:app significa módulo app, variável app-w lidam com requisições concorrentes (síncronas)Relacionado: Gunicorn & Uvicorn - ajuste de workers
Aplicativos FastAPI são ASGI - execute com Uvicorn ou worker Gunicorn+Uvicorn.
from fastapi import FastAPI
app = FastAPI()
@app.get("/health")
async def health():
return {"status": "ok"}uvicorn app:app --host 0.0.0.0 --port 80000.0.0.0 em contêineres, não 127.0.0.1Relacionado: Gunicorn & Uvicorn - ASGI em produção
Leia a porta do ambiente para implantações 12-factor.
import os
PORT = int(os.environ.get("PORT", "8000"))PORTuvicorn local sem variável de ambienteint() e falhe rapidamente em valores inválidosRelacionado: Configuração e Segredos em Produção - configuração de ambiente
Entenda quem aceita conexões TCP.
Cliente -> Balanceador de Carga -> Mestre Gunicorn -> processos worker -> seu aplicativo
Relacionado: Dockerizando Python - entrypoint do contêiner
Nunca use os servidores de desenvolvimento integrados do Flask/FastAPI em produção.
# apenas desenvolvimento
flask --app app run --debug
# produção
gunicorn -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 app:app--reload é apenas para iteração localRelacionado: Melhores Práticas de Implantação - checklist de produção
Drene requisições em andamento no SIGTERM de orquestradores.
import signal
def handle_sigterm(signum, frame):
print("desligando graciosamente")
signal.signal(signal.SIGTERM, handle_sigterm)--graceful-timeoutRelacionado: Implantações Sem Interrupção - atualizações rolling
Sirva ativos estáticos de CDN ou proxy reverso, não workers Python.
location /static/ { alias /var/www/static/; }
location / { proxy_pass http://app:8000; }Relacionado: Kubernetes para Aplicativos Python - ingress
Gerencie conexões com o contexto de lifespan ASGI.
from contextlib import asynccontextmanager
from fastapi import FastAPI
@asynccontextmanager
async def lifespan(app: FastAPI):
# inicialização
yield
# limpeza de desligamento
app = FastAPI(lifespan=lifespan)@app.on_event obsoleto por lifespanRelacionado: Saúde e Prontidão - design de probe
Cada worker carrega uma cópia completa do seu aplicativo e modelos.
gunicorn -w 4 app:app
# 4x custo de importação, 4x RAM de modelo ML se carregado na importaçãoRelacionado: Monitoramento de Desempenho (APM) - ajuste de produção
Documente o comando exato de produção no CMD do Dockerfile.
CMD ["gunicorn", "-w", "2", "-k", "uvicorn.workers.UvicornWorker", "-b", "0.0.0.0:8000", "app.main:app"]Relacionado: Dockerizando Python - layout da imagem
Versões da Pilha: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ e uv 0.6+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026