As perguntas da entrevista de CI/CD testam sua compreensão sobre integração contínua, pipelines de implantação, estratégias de teste e padrões de liberação de produção. Este guia aborda as perguntas mais comuns sobre CI/CD para engenheiros de DevOps e desenvolvedores seniores em 2026.
Conceitos Básicos de CI/CD
1. Qual é a diferença entre integração, entrega e implantação contínuas?
- Integração Contínua (CI): os desenvolvedores mesclam o código com frequência (diariamente). Cada mesclagem aciona testes automatizados.
- Entrega Contínua (CD): o código está sempre em um estado implantável. A implantação na produção é manual (um clique).
- Implantação Contínua: cada build aprovado é implantado automaticamente na produção. Não é necessária aprovação manual.
2. O que um pipeline de CI deve incluir?
# Ideal CI pipeline stages (GitHub Actions example)
name: CI Pipeline
on: [push, pull_request]
jobs:
# Stage 1: Fast feedback (< 2 min)
fast-checks:
steps:
- lint # code style
- type-check # TypeScript/mypy
- security-scan # pip-audit, npm audit, SAST
- build # compile/bundle
# Stage 2: Tests (< 10 min)
test:
needs: fast-checks
steps:
- unit-tests # fast, isolated
- integration-tests # with real DB
# Stage 3: Quality gates
quality:
needs: test
steps:
- coverage-check # fail if < 80%
- performance-test # detect regressions
# Stage 4: Build artifact
build-image:
needs: quality
steps:
- docker-build
- docker-push # push to registry
- container-scan # Trivy vulnerability scan
3. Explique a implantação azul-verde
Blue-Green Deployment:
Blue environment: current production (v1.0)
Green environment: new version (v1.1)
Steps:
1. Deploy v1.1 to green (separate environment)
2. Run smoke tests on green
3. Switch load balancer to point to green
4. Blue is now idle (keep for rollback)
5. If issues: switch back to blue instantly
Benefits:
- Zero downtime deployment
- Instant rollback (flip load balancer back)
- Can run full tests on green before switching
Drawback:
- Requires 2x infrastructure cost
- DB schema changes are tricky (must be backward compatible)
4. O que é implantação canário?
Canary Deployment: gradually shift traffic to new version
10% users → new version
Monitor error rates, latency, business metrics
If OK: increase to 25%, 50%, 100%
If bad: route 100% back to old version
Tools:
- Kubernetes: traffic splitting via Ingress/Istio
- AWS: Application Load Balancer weighted target groups
- Cloudflare: percentage-based routing
Canary vs Blue-Green:
Canary: gradual rollout, real user testing, slower
Blue-Green: instant switch, all-or-nothing
5. Como você implementa sinalizadores de recursos em CI/CD?
# Feature flags decouple deployment from release
# Deploy code → behind flag → enable for subset of users
# Simple feature flag
ENABLE_NEW_CHECKOUT = os.getenv("ENABLE_NEW_CHECKOUT", "false") == "true"
if ENABLE_NEW_CHECKOUT:
return new_checkout_flow()
else:
return legacy_checkout()
# Advanced: Unleash or LaunchDarkly
from unleash_client import UnleashClient
client = UnleashClient(url="https://unleash.mycompany.com")
client.initialize_client()
# Gradual rollout to % of users
if client.is_enabled("new-dashboard", context={"userId": user_id}):
return new_dashboard()
else:
return old_dashboard()
# Benefits:
# - Separate deployment from release
# - A/B testing built-in
# - Instant kill switch if issues
# - Roll out to % of users
6. O que é o teste shift-left?
Shift-esquerda: mova os testes para o início do ciclo de desenvolvimento.
- Tradicional: escrever código → testes da equipe de controle de qualidade → encontrar bugs tarde = caro
- Shift-esquerda: escrever testes primeiro (TDD), testes unitários em CI, automatizados em cada PR
- Benefícios: bugs encontrados no desenvolvimento custam 10x menos para serem corrigidos do que bugs encontrados na produção
7. Explique estratégias de implantação para migrações de banco de dados
Database migrations are the hardest part of zero-downtime deployments.
Pattern: Expand and Contract (3-phase deployment)
Phase 1: Expand (add new column, keep old)
ALTER TABLE users ADD COLUMN email_v2 VARCHAR(255);
Application writes to BOTH old and new column
Phase 2: Backfill
UPDATE users SET email_v2 = email WHERE email_v2 IS NULL;
Phase 3: Contract (remove old column)
Application reads from new column only
ALTER TABLE users DROP COLUMN email;
Why not just ALTER TABLE in one step?
- Large tables lock for minutes/hours
- pg_repack or pt-online-schema-change for zero-downtime ALTER
- Requires coordination with application deployment
Sucesso na entrevista de CI/CD: conheça a diferença entre CI, CD (entrega) e CD (implantação), explique claramente o azul-verde versus canário com compensações, discuta sinalizadores de recursos para redução de risco e demonstre conhecimento de estratégias de migração de banco de dados para implantações com tempo de inatividade zero. As funções seniores concentram-se em métricas de confiabilidade (métricas DORA: frequência de implantação, prazo de entrega, MTTR, taxa de falha de alteração).
🔗 Share this article
✍️ Leave a Comment