deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
O que ela faz
Este guia ensina como preparar seu código para ser lançado em produção. Ele mostra diferentes formas de fazer isso, como usar contêineres (Docker) e configurar processos automáticos (CI/CD) para garantir que tudo funcione bem.
Quando usar
- ✓Ao configurar o processo automático de lançamento de código (CI/CD).
- ✓Ao empacotar seu aplicativo em um contêiner (Docker).
- ✓Ao planejar como lançar uma nova versão do seu site ou aplicativo.
Exemplo do que pedir para a IA
“Como posso configurar um pipeline de CI/CD para meu projeto Node.js?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele descreve estratégias como 'Rolling', 'Blue-Green' e 'Canary' para lançar novas versões. Também mostra como criar imagens Docker eficientes e seguras, incluindo exemplos para Node.js, Go e Python.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add affaan-m/ECC --skill deployment-patternsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/pi/core/skills/deployment-patterns/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Padrões de Implantação
Fluxos de trabalho de implantação em produção e melhores práticas de CI/CD.
Quando Ativar
- Configuração de pipelines de CI/CD
- Dockerização de uma aplicação
- Planejamento de estratégia de implantação (blue-green, canary, rolling)
- Implementação de verificações de saúde (health checks) e sondas de prontidão (readiness probes)
- Preparação para um lançamento em produção
- Configuração de ajustes específicos para cada ambiente
Estratégias de Implantação
Implantação Contínua (Rolling Deployment - Padrão)
Substitua instâncias gradualmente — versões antiga e nova executam simultaneamente durante a implantação.
Instance 1: v1 → v2 (update first)
Instance 2: v1 (still running v1)
Instance 3: v1 (still running v1)
Instance 1: v2
Instance 2: v1 → v2 (update second)
Instance 3: v1
Instance 1: v2
Instance 2: v2
Instance 3: v1 → v2 (update last)
Prós: Zero tempo de inatividade, implantação gradual Contras: Duas versões executam simultaneamente — requer alterações compatíveis com versões anteriores Use quando: Implantações padrão, alterações compatíveis com versões anteriores
Implantação Blue-Green
Execute dois ambientes idênticos. Alterne o tráfego atomicamente.
Blue (v1) ← traffic
Green (v2) idle, running new version
# After verification:
Blue (v1) idle (becomes standby)
Green (v2) ← traffic
Prós: Rollback instantâneo (volte para o blue), corte limpo Contras: Requer 2x de infraestrutura durante a implantação Use quando: Serviços críticos, tolerância zero a problemas
Implantação Canary
Direcione uma pequena porcentagem do tráfego para a nova versão primeiro.
v1: 95% of traffic
v2: 5% of traffic (canary)
# If metrics look good:
v1: 50% of traffic
v2: 50% of traffic
# Final:
v2: 100% of traffic
Prós: Detecta problemas com tráfego real antes da implantação completa Contras: Requer infraestrutura de divisão de tráfego, monitoramento Use quando: Serviços de alto tráfego, alterações arriscadas, feature flags
Docker
Dockerfile Multi-Estágio (Node.js)
# Stage 1: Install dependencies
FROM node:22-alpine AS deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --production=false
# Stage 2: Build
FROM node:22-alpine AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm run build
RUN npm prune --production
# Stage 3: Production image
FROM node:22-alpine AS runner
WORKDIR /app
RUN addgroup -g 1001 -S appgroup && adduser -S appuser -u 1001
USER appuser
COPY --from=builder --chown=appuser:appgroup /app/node_modules ./node_modules
COPY --from=builder --chown=appuser:appgroup /app/dist ./dist
COPY --from=builder --chown=appuser:appgroup /app/package.json ./
ENV NODE_ENV=production
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1
CMD ["node", "dist/server.js"]
Dockerfile Multi-Estágio (Go)
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /server ./cmd/server
FROM alpine:3.19 AS runner
RUN apk --no-cache add ca-certificates
RUN adduser -D -u 1001 appuser
USER appuser
COPY --from=builder /server /server
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:8080/health || exit 1
CMD ["/server"]
Dockerfile Multi-Estágio (Python/Django)
FROM python:3.12-slim AS builder
WORKDIR /app
RUN pip install --no-cache-dir uv
COPY requirements.txt .
RUN uv pip install --system --no-cache -r requirements.txt
FROM python:3.12-slim AS runner
WORKDIR /app
RUN useradd -r -u 1001 appuser
USER appuser
COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
COPY --from=builder /usr/local/bin /usr/local/bin
COPY . .
ENV PYTHONUNBUFFERED=1
EXPOSE 8000
HEALTHCHECK --interval=30s --timeout=3s CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health/')" || exit 1
CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000", "--workers", "4"]
Melhores Práticas do Docker
# Boas práticas
- Use tags de versão específicas (node:22-alpine, não node:latest)
- Builds multi-estágio para minimizar o tamanho da imagem
- Execute como usuário não-root
- Copie arquivos de dependência primeiro (cache de camadas)
- Use .dockerignore para excluir node_modules, .git, tests
- Adicione a instrução HEALTHCHECK
- Defina limites de recursos no docker-compose ou k8s
# Más práticas
- Executar como root
- Usar tags :latest
- Copiar o repositório inteiro em uma única camada COPY
- Instalar dependências de desenvolvimento na imagem de produção
…
Perguntas frequentes
O que é CI/CD?
CI/CD significa Integração Contínua e Entrega Contínua. É um conjunto de práticas que automatiza as etapas de teste e lançamento de software, tornando o processo mais rápido e confiável.
O que é Docker?
Docker é uma ferramenta que permite empacotar seu aplicativo e suas dependências em um 'contêiner', garantindo que ele funcione da mesma forma em qualquer ambiente.
Qual a diferença entre Rolling, Blue-Green e Canary?
Rolling atualiza um servidor de cada vez. Blue-Green usa dois ambientes idênticos e troca o tráfego. Canary libera a nova versão para uma pequena parte dos usuários primeiro.
Detalhes
Descrição original do autor
Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications. Use when setting up CI/CD, containerizing an app, or checking production readiness before a release.
repo: affaan-m/ECC
Popularidade
- Estrelas no GitHub
- 280 mil
- Posição no ranking
- #40
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC
Skills parecidas
git-workflow-and-versioning
Organiza o trabalho de código usando o Git. Ajuda a salvar o progresso, gerenciar diferentes versões e evitar conflitos ao trabalhar em equipe.
addyosmani/agent-skills
observability-and-instrumentation
Adiciona ferramentas para monitorar o que o código faz em produção. Ajuda a entender se algo deu errado e por quê, facilitando a correção.
addyosmani/agent-skills
github-pr-workflow
Prepara pull requests no GitHub, garantindo a qualidade do código e a documentação.
paperclipai/paperclip