Visão Geral
Este guia orienta você na implantação do CaseBender no Google Cloud Run usando nossas imagens Docker pré-construídas.
Pré-requisitos
- Conta Google Cloud
- Google Cloud CLI instalado
- Docker instalado
Passo 1: Configuração Inicial
Instalar Google Cloud CLI
Inicializar Projeto
# Definir seu ID de projeto
gcloud config set project SEU_ID_DE_PROJETO
# Habilitar APIs necessárias
gcloud services enable \
cloudbuild.googleapis.com \
run.googleapis.com \
secretmanager.googleapis.com \
cloudresourcemanager.googleapis.com \
artifactregistry.googleapis.com
Passo 2: Configurar Infraestrutura na Nuvem
Criar Bucket do Cloud Storage
# Criar bucket de armazenamento
gsutil mb -l us-central1 gs://casebender-storage
# Criar conta de serviço para armazenamento
gcloud iam service-accounts create casebender-storage \
--display-name "Conta de Serviço de Armazenamento CaseBender"
# Obter o email da conta de serviço
STORAGE_SA_EMAIL=$(gcloud iam service-accounts list \
--filter="displayName:Conta de Serviço de Armazenamento CaseBender" \
--format="value(email)")
# Conceder permissões
gsutil iam ch \
serviceAccount:$STORAGE_SA_EMAIL:objectViewer,objectCreator \
gs://casebender-storage
# Criar e baixar chave da conta de serviço
gcloud iam service-accounts keys create storage-key.json \
--iam-account=$STORAGE_SA_EMAIL
# Criar segredo para credenciais de armazenamento
gcloud secrets create casebender-storage-key \
--replication-policy="automatic"
# Importar a chave da conta de serviço como um segredo
gcloud secrets versions add casebender-storage-key \
--data-file=storage-key.json
Configurar Cloud SQL (PostgreSQL)
# Criar instância PostgreSQL
gcloud sql instances create casebender-db \
--database-version=POSTGRES_14 \
--cpu=2 \
--memory=4GB \
--region=us-central1 \
--root-password="SUA_SENHA_SEGURA"
# Criar banco de dados
gcloud sql databases create casebender \
--instance=casebender-db
# Criar usuário
gcloud sql users create casebender \
--instance=casebender-db \
--password="SUA_SENHA_SEGURA"
Configurar Memorystore (Redis)
# Criar instância Redis
gcloud redis instances create casebender-redis \
--size=2 \
--region=us-central1 \
--redis-version=redis_6_x
Configurar Secret Manager
# Criar e armazenar variáveis de ambiente
cat << EOF | gcloud secrets create casebender-env --data-file=-
AUTH_SECRET=seu-segredo-de-autenticação
AUTH_SALT=seu-salt-de-autenticação
POSTGRES_PRISMA_URL="postgresql://casebender:SUA_SENHA_SEGURA@/casebender?host=/cloudsql/SEU_ID_DE_PROJETO:us-central1:casebender-db"
REDIS_URL="redis://ENDERECO_IP_REDIS:6379"
GOOGLE_STORAGE_BUCKET=casebender-storage
EOF
Passo 3: Baixar e Enviar Imagens Docker
# Criar repositório do Artifact Registry
gcloud artifacts repositories create casebender \
--repository-format=docker \
--location=us-central1
# Configurar Docker para Artifact Registry
gcloud auth configure-docker us-central1-docker.pkg.dev
# Baixar imagens do CaseBender
docker pull casebender/casebender:latest
docker pull casebender/workflow-processor:latest
docker pull casebender/misp-processor:latest
# Marcar imagens para o Google Artifact Registry
docker tag casebender/casebender:latest us-central1-docker.pkg.dev/$PROJECT_ID/casebender/app:latest
docker tag casebender/workflow-processor:latest us-central1-docker.pkg.dev/$PROJECT_ID/casebender/workflow-processor:latest
docker tag casebender/misp-processor:latest us-central1-docker.pkg.dev/$PROJECT_ID/casebender/misp-processor:latest
# Enviar imagens
docker push us-central1-docker.pkg.dev/$PROJECT_ID/casebender/app:latest
docker push us-central1-docker.pkg.dev/$PROJECT_ID/casebender/workflow-processor:latest
docker push us-central1-docker.pkg.dev/$PROJECT_ID/casebender/misp-processor:latest
Passo 4: Implantar Serviços
Implantar Aplicação Principal
# Implantar no Cloud Run
gcloud run deploy casebender \
--image us-central1-docker.pkg.dev/$PROJECT_ID/casebender/app:latest \
--platform managed \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars GOOGLE_STORAGE_BUCKET=casebender-storage \
--set-secrets "/secrets/storage-key=casebender-storage-key:latest" \
--service-account=$STORAGE_SA_EMAIL \
--add-cloudsql-instances $PROJECT_ID:us-central1:casebender-db \
--set-secrets "/app/.env=casebender-env:latest"
Implantar Processador de Fluxo de Trabalho
# Implantar processador de fluxo de trabalho
gcloud run deploy workflow-processor \
--image us-central1-docker.pkg.dev/$PROJECT_ID/casebender/workflow-processor:latest \
--platform managed \
--region us-central1 \
--no-allow-unauthenticated \
--service-account=$STORAGE_SA_EMAIL \
--add-cloudsql-instances $PROJECT_ID:us-central1:casebender-db \
--set-secrets "/app/.env=casebender-env:latest"
Implantar Processador MISP
# Implantar processador MISP
gcloud run deploy misp-processor \
--image us-central1-docker.pkg.dev/$PROJECT_ID/casebender/misp-processor:latest \
--platform managed \
--region us-central1 \
--no-allow-unauthenticated \
--service-account=$STORAGE_SA_EMAIL \
--add-cloudsql-instances $PROJECT_ID:us-central1:casebender-db \
--set-secrets "/app/.env=casebender-env:latest"
Passo 5: Configurar Domínio e SSL
Mapear Domínio Personalizado
# Adicionar mapeamento de domínio
gcloud run domain-mappings create \
--service casebender \
--domain seu-dominio.com \
--region us-central1
Siga as etapas de verificação de DNS no Console do Google Cloud para completar o mapeamento de domínio.
Monitoramento e Manutenção
Configurar Monitoramento
- Navegue até o Cloud Monitoring no Console do Google Cloud
- Crie uma verificação de tempo de atividade para seu serviço
- Configure alertas para:
- Taxas de erro
- Latência
- Contagem de instâncias
- Uso de memória
Visualizar Logs
# Visualizar logs de serviço
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=casebender" --limit 50
# Transmitir logs
gcloud logging tail "resource.type=cloud_run_revision AND resource.labels.service_name=casebender"
Atualizar Aplicação
Para implantar atualizações:
# Construir e implantar nova versão
gcloud builds submit --config cloudbuild.yaml
# Reverter se necessário
gcloud run services rollback casebender \
--to-revision=ID_DA_REVISAO \
--region=us-central1
Otimização de Custos
-
Configuração de Auto-escalonamento
gcloud run services update casebender \
--min-instances=1 \
--max-instances=10 \
--region=us-central1
-
Alocação de Recursos
gcloud run services update casebender \
--memory=1Gi \
--cpu=1 \
--region=us-central1
Solução de Problemas
Problemas Comuns
-
Problemas de Conexão
- Verificar conexão com Cloud SQL
- Verificar conectividade com Redis
- Validar variáveis de ambiente
-
Problemas de Desempenho
- Revisar métricas de instância
- Verificar alocação de recursos
- Analisar padrões de solicitação
-
Falhas de Implantação
- Verificar logs de compilação
- Verificar permissões da conta de serviço
- Revisar configuração de implantação
Próximos Passos
- Configurar pipelines de CI/CD
- Configurar estratégias de backup
- Implementar monitoramento e alertas
- Revisar melhores práticas de segurança