TRILHA 5

🚀 DevOps e Operações

Do commit ao deploy em minutos — CI/CD, infraestrutura como código, monitoramento, segurança e resposta a incidentes

5
Módulos
35
Tópicos
~3h
Duração
Avançado
Nível

Navegação Rápida

5.1

🚢 CI/CD e Deploy Automatizado

Do commit ao deploy em minutos, não dias

5.2

🏗️ Infraestrutura como Código

Servidores como código: versionados, testáveis, reproduzíveis

5.3

📊 Monitoramento e Observabilidade

Logs, métricas e traces — os 3 pilares

5.4

🔐 Segurança e Compliance

Proteger sem paralisar — segurança prática

5.5

🔥 Incident Response e SRE

Quando o sistema cai — e ele VAI cair

Conteúdo Detalhado
5.1 ~35 min

🚢 CI/CD e Deploy Automatizado

Do commit ao deploy em minutos, não dias

O que é:

CI: cada commit é buildado e testado automaticamente. CD: código que passa nos testes vai para produção automaticamente (ou com um clique).

Por que aprender:

Sem CI/CD, deploy é manual, arriscado e infrequente. Ex: O Amazon deploya a cada 11.7 segundos. O Etsy faz 50+ deploys/dia. Só é possível porque cada deploy é testado, automatizado e reversível.

Conceitos-chave:
Continuous Integration Continuous Delivery vs. Deployment Build-test-deploy pipeline Trunk-based development
O que é:

Plataforma de CI/CD do GitHub: workflows definidos em YAML, triggers por push/PR/schedule, runners Linux/macOS/Windows, marketplace de actions.

Por que aprender:

Integrado ao GitHub onde o código já vive. Free para repos públicos, generoso para privados. Ex: Workflow: push → lint (ESLint) → test (Jest) → build → deploy (Vercel). 5 minutos para configurar, roda para sempre.

Conceitos-chave:
Workflow YAML Triggers (push, pull_request, schedule) Jobs e steps Secrets Caching Matrix builds
O que é:

Containers que empacotam aplicação + dependências em uma imagem reproduzível. Mesmo ambiente em dev, CI e produção.

Por que aprender:

"Funciona na minha máquina" mata produtividade. Ex: Sem Docker: "instala Python 3.11, pip install requirements.txt, configura PostgreSQL 15, Redis 7...". Com Docker: `docker compose up`. Pronto em 30 segundos, idêntico para todos.

Conceitos-chave:
Dockerfile Docker Compose Images vs. containers Multi-stage builds Volume mounts Docker Hub
O que é:

Estratégias para atualizar produção sem interrupção: blue-green (dois ambientes), canary (percentual gradual), rolling (instância por instância).

Por que aprender:

Deploy sem estratégia = downtime. Ex: O Netflix usa canary deployment para cada mudança — 1% dos servidores recebem a nova versão. Se error rate sobe, auto-rollback em <2 minutos. Os outros 99% nunca são afetados.

Conceitos-chave:
Blue-green deployment Canary releases Rolling updates Feature flags Rollback procedures Zero-downtime deployment
O que é:

Ambientes isolados para cada fase: dev (local), staging (réplica de prod), production (real). Cada um com sua config, dados e infra.

Por que aprender:

Testar em produção é negligência. Testar sem staging é risco. Ex: O Knight Capital perdeu US$440M em 45 minutos porque deployaram código de teste em produção sem staging. O código de teste comprou ações aleatoriamente. Irreversível.

Conceitos-chave:
Environment parity .env management Feature parity dev/staging/prod Database seeding Staging as prod mirror
O que é:

Capacidade de reverter rapidamente para a versão anterior. Pode ser: redeploy da versão antiga, feature flag off, ou database rollback.

Por que aprender:

Se deploy sempre dá certo, você não precisa de rollback. Na realidade, 10-15% dos deploys têm problemas. Ex: O GitLab tem rollback automático: se health checks falham após deploy, reverte para a versão anterior em <1 minuto. Sem intervenção humana.

Conceitos-chave:
Immutable deployments Version tagging Database rollback Feature flag as rollback Health check validation MTTR (Mean Time To Recovery)
O que é:

4 métricas DORA: deployment frequency, lead time for changes, change failure rate, mean time to recovery. Medem a saúde do processo de entrega.

Por que aprender:

Medir é o primeiro passo para melhorar. Ex: Times "elite" (Google, Amazon, Netflix): deploy múltiplas vezes/dia, lead time <1h, failure rate <15%, MTTR <1h. Times "low performers": deploy mensal, lead time >6 meses, failure rate >46%, MTTR >1 semana.

Conceitos-chave:
DORA metrics Accelerate (livro) Elite vs. low performers Measurement tools Improvement strategies
5.2 ~35 min

🏗️ Infraestrutura como Código

Servidores como código: versionados, testáveis, reproduzíveis

O que é:

Definir infraestrutura em arquivos de código (Terraform, Pulumi, CloudFormation). Versionado no git, revisável em PR, reproduzível.

Por que aprender:

Infra clicada no console é irreproducivel e indocumentada. Ex: "Quem criou este security group? Com que regras? Por quê?" — com IaC, a resposta está no git blame. Sem IaC, ninguém sabe.

Conceitos-chave:
Declarative vs. imperative Terraform Pulumi State management Plan before apply Idempotency
O que é:

Ferramenta HashiCorp que provisiona infra em qualquer cloud (AWS, GCP, Azure, Cloudflare) com linguagem declarativa (HCL).

Por que aprender:

Multi-cloud e extensível. Maior ecossistema de providers. Ex: 20 linhas de Terraform criam: VPC + subnet + security group + EC2 + RDS PostgreSQL + load balancer. Reproduzível em qualquer conta AWS.

Conceitos-chave:
Providers Resources Modules State file terraform plan/apply Workspaces Remote state (S3 + DynamoDB)
O que é:

docker-compose.yml define todos os serviços do projeto: app, banco, cache, queue. `docker compose up` inicia tudo.

Por que aprender:

Elimina "works on my machine" para sempre. Ex: docker-compose.yml: PostgreSQL 15 + Redis 7 + n8n + app Node.js. Novo dev: clone repo → `docker compose up` → trabalhando em 2 minutos. Sem instalar nada.

Conceitos-chave:
docker-compose.yml Services Networks Volumes Environment variables Health checks Profiles
O que é:

Orquestrador de containers para escala. Gerencia deploys, scaling, self-healing, service discovery. É complexo — só use quando realmente precisa.

Por que aprender:

Kubernetes é poderoso mas tem overhead enorme. Ex: Uma startup com 3 devs rodando K8s gasta 40% do tempo em infra. A mesma startup com Vercel + Supabase gasta 5%. K8s faz sentido com 50+ serviços e time de platform engineering dedicado.

Conceitos-chave:
Pods Services Deployments Ingress Helm charts When K8s is overkill Managed K8s (EKS, GKE) Alternatives (Fly.io, Railway)
O que é:

Gerenciamento seguro de API keys, senhas, tokens: environment variables, vaults (HashiCorp Vault, AWS Secrets Manager), .env (nunca commitado).

Por que aprender:

Credencial no código é brecha garantida. Ex: Em 2023, bots no GitHub escaneiam commits em <1 segundo procurando API keys expostas. AWS keys expostas geram instâncias de crypto mining em minutos — conta de US$50k overnight.

Conceitos-chave:
Environment variables .env + .gitignore HashiCorp Vault AWS Secrets Manager GitHub secrets Key rotation
O que é:

Content Delivery Network distribui conteúdo estático em servers globais. Edge computing processa lógica perto do usuário.

Por que aprender:

CDN reduz latência drasticamente — serve de um datacenter a 50ms de distância em vez de 500ms. Ex: Cloudflare tem 300+ PoPs globais. Seu HTML estático é servido do PoP mais próximo do usuário. São Paulo? Serve de São Paulo. Lisboa? Serve de Lisboa.

Conceitos-chave:
Cloudflare AWS CloudFront Edge functions (Workers, Lambda@Edge) Cache headers Purge strategies Static-first
O que é:

Monitoramento e otimização de custos de cloud: right-sizing, reserved instances, spot instances, auto-scaling, tag-based cost allocation.

Por que aprender:

Cloud sem controle gasta 30-40% mais que necessário (Flexera). Ex: AWS Cost Explorer mostra: 60% do custo é em EC2 instances oversized (t3.xlarge rodando app que cabe em t3.small). Right-sizing economiza 50% instantaneamente.

Conceitos-chave:
FinOps framework Cost allocation tags Reserved vs. on-demand vs. spot Right-sizing Budget alerts Savings plans
5.3 ~35 min

📊 Monitoramento e Observabilidade

Logs, métricas e traces — os 3 pilares

O que é:

Logs em formato JSON com campos padronizados: timestamp, level, service, trace_id, message. Pesquisáveis e filtráveis.

Por que aprender:

`console.log("deu erro")` não ajuda em produção. Ex: Log estruturado: `{"timestamp": "2024-01-15T10:30:00Z", "level": "error", "service": "payments", "trace_id": "abc123", "error": "timeout", "duration_ms": 5000}`. Filtrável, correlacionável, alertável.

Conceitos-chave:
JSON logging Log levels (debug/info/warn/error) Correlation IDs ELK Stack (Elasticsearch + Logstash + Kibana) Loki + Grafana
O que é:

Dados numéricos ao longo do tempo: request rate, error rate, latency, CPU, memory, queue depth. Prometheus + Grafana é o stack mais popular.

Por que aprender:

Métricas mostram tendências que logs não mostram. Ex: Latência P99 subindo gradualmente de 100ms para 500ms ao longo de 2 semanas — logs não mostram isso, métricas sim. Detecta problema antes de virar incidente.

Conceitos-chave:
RED metrics (Rate, Errors, Duration) USE metrics (Utilization, Saturation, Errors) Prometheus Grafana Counters vs. gauges vs. histograms
O que é:

Rastreia uma request do início ao fim em sistema distribuído. Cada serviço adiciona um span ao trace. Mostra onde o tempo é gasto.

Por que aprender:

Em microsserviços, "a request está lenta" não diz nada. Tracing mostra exatamente qual serviço é o gargalo. Ex: O Jaeger mostra: user-service (5ms) → order-service (10ms) → payment-service (2000ms) → notification (5ms). O bottleneck é payments. Sem tracing, levaria horas para descobrir.

Conceitos-chave:
OpenTelemetry Jaeger Zipkin Spans e traces Context propagation Sampling strategies
O que é:

Regras que disparam notificações quando métricas ultrapassam thresholds: error rate > 5%, latency P99 > 1s, CPU > 80%.

Por que aprender:

Sem alertas, você descobre problemas pelo Twitter. Ex: PagerDuty + Grafana: alert rota para o oncall via SMS/call. Escala automaticamente se não for atendido em 5 minutos. Time médio para saber de um problema: <2 minutos.

Conceitos-chave:
Alert rules Severity levels On-call rotation Escalation policies Alert fatigue PagerDuty/OpsGenie
O que é:

Painéis visuais com métricas-chave do sistema. Dashboards por serviço, por endpoint, por infra.

Por que aprender:

Dashboard bom = troubleshooting em minutos. Dashboard ruim = 50 gráficos que ninguém olha. Ex: O "golden signals" dashboard: request rate, error rate, latency, saturation. 4 gráficos que dizem 90% do que precisa saber. Menos é mais.

Conceitos-chave:
Golden signals RED/USE dashboards Grafana Business metrics dashboards SLO dashboards Dashboard as code
O que é:

Endpoints que reportam saúde: /health (live?), /ready (aceitando requests?). Usados por load balancers e orchestrators para routing e restart.

Por que aprender:

Sem health check, load balancer envia tráfego para instância morta. Ex: Kubernetes liveness probe: se /health retorna 503 3x seguidas, mata o pod e cria novo. Readiness probe: se /ready retorna 503, remove do service (para de receber tráfego).

Conceitos-chave:
Liveness vs. readiness probes Deep vs. shallow health checks Dependency health Health check endpoints Graceful shutdown
O que é:

SLI (indicator): métrica real (latência P99 = 150ms). SLO (objective): meta interna (P99 < 200ms). SLA (agreement): compromisso com cliente (99.9% uptime).

Por que aprender:

Sem SLOs, "o sistema está lento" é subjetivo. Com SLOs, é mensurável. Ex: O Google define SLOs para cada serviço interno. Se error budget está sendo consumido rápido, congelam features e focam em confiabilidade. SLOs guiam priorização.

Conceitos-chave:
SLI/SLO/SLA hierarchy Error budget Burn rate alerts SLO-based prioritization Toil budget
5.4 ~35 min

🔐 Segurança e Compliance

Proteger sem paralisar — segurança prática

O que é:

Lista atualizada dos 10 riscos mais críticos em aplicações web: injection, broken auth, sensitive data exposure, XSS, etc.

Por que aprender:

Conhecer os 10 previne a maioria dos ataques. Ex: SQL Injection ainda é o #3 em 2024. Um simples `SELECT * FROM users WHERE id = ${input}` sem sanitização expõe todo o banco. Prepared statements resolvem em 1 linha.

Conceitos-chave:
Injection Broken Authentication Sensitive Data Exposure XXE Broken Access Control Security Misconfiguration XSS Insecure Deserialization Known Vulnerabilities Insufficient Logging
O que é:

Evolução de auth: passwords → MFA → passwordless (magic links, passkeys, biometrics). OAuth2/OIDC para social login e SSO.

Por que aprender:

80% dos breaches envolvem credenciais comprometidas (Verizon DBIR). Ex: Passkeys (WebAuthn) eliminam phishing — a autenticação é bound ao domínio. Não funciona em site falso. Apple, Google e Microsoft suportam nativamente.

Conceitos-chave:
OAuth2/OIDC JWT Passkeys/WebAuthn Magic links MFA Social login SSO Supabase Auth
O que é:

TLS encripta comunicação entre client e server. HTTPS = HTTP + TLS. Let's Encrypt oferece certificados gratuitos. Cloudflare oferece TLS automático.

Por que aprender:

HTTP sem TLS expõe dados em trânsito. Browsers marcam sites HTTP como "Not Secure". Google penaliza no SEO. Ex: Let's Encrypt automatiza: certbot renova certificados a cada 90 dias. Cloudflare: zero config, TLS automático para qualquer domínio.

Conceitos-chave:
TLS 1.3 Let's Encrypt Cloudflare SSL HSTS Certificate pinning mTLS for service-to-service
O que é:

Modelo de segurança onde nada é confiável por padrão — nem a rede interna. Cada request é autenticada, autorizada e encriptada.

Por que aprender:

Modelo de "perímetro seguro" (firewall) falha quando o atacante está dentro. Ex: O breach da SolarWinds (2020) — atacantes dentro da rede por 9 meses porque a rede interna era "trusted". Zero Trust teria exigido autenticação em cada lateral movement.

Conceitos-chave:
Identity-based access Micro-segmentation Least privilege Continuous verification BeyondCorp (Google) mTLS
O que é:

Lei Geral de Proteção de Dados: consentimento, minimização de dados, direito de exclusão, portabilidade, notificação de breach.

Por que aprender:

Multa de até 2% do faturamento. Ex: Implementar "right to be forgotten": DELETE de todos os dados do usuário em todas as tabelas, caches, backups, logs e terceiros. Sem arquitetura planejada para isso, é impossível.

Conceitos-chave:
Consentimento Minimização de dados Right to be forgotten Data encryption at rest Audit trail DPO (Data Protection Officer)
O que é:

Scanning automático de vulnerabilidades em dependências: Dependabot, Snyk, npm audit. CVEs em libs desatualizadas são o vetor mais comum de ataque.

Por que aprender:

Log4Shell (2021) afetou 35k+ pacotes Java. Se você não monitora dependências, não sabe se está vulnerável. Ex: Dependabot no GitHub abre PR automático quando encontra CVE em suas deps. Merge = seguro. Ignore = risco.

Conceitos-chave:
Dependabot Snyk npm audit CVE database SCA (Software Composition Analysis) License compliance SBOM
O que é:

SAST (análise estática do código), DAST (teste da aplicação rodando), pentest (hacker ético atacando). Automatizar SAST/DAST na CI, pentest periodicamente.

Por que aprender:

Bugs de segurança pegos em review custam 10x menos que em produção, e 100x menos que após um breach. Ex: GitHub Code Scanning (CodeQL) roda SAST em cada PR — encontra SQL injection, XSS, path traversal automaticamente. Gratuito para repos públicos.

Conceitos-chave:
SAST (Semgrep, CodeQL) DAST (OWASP ZAP, Burp Suite) Penetration testing Bug bounty programs Security headers
5.5 ~30 min

🔥 Incident Response e SRE

Quando o sistema cai — e ele VAI cair

O que é:

Processo estruturado para responder a incidentes: detectar, comunicar, diagnosticar, mitigar, resolver, post-mortem.

Por que aprender:

Pânico em incidente piora tudo. Processo claro reduz MTTR. Ex: O PagerDuty tem runbooks para cada tipo de incidente — "se error rate > 10%: 1. Check dashboard X, 2. Verify deployment Y, 3. Rollback if needed". Seguir runbook em vez de improvisar.

Conceitos-chave:
Incident commander Communication channels Severity levels (SEV1-4) War room Status page Runbooks
O que é:

Documento após incidente: timeline, root cause, impacto, ações corretivas. Blameless: foca no sistema, não na pessoa.

Por que aprender:

Sem post-mortem, o mesmo incidente acontece de novo. Ex: O Google publica post-mortems internos para todos aprenderem. Template: "O que aconteceu" → "Por que aconteceu" → "O que vamos mudar" → "Action items com owners e deadlines".

Conceitos-chave:
Blameless culture 5 Whys Timeline reconstruction Action items Follow-up tracking Learning from incidents
O que é:

Documentação passo-a-passo para cenários comuns: "banco lento", "serviço não responde", "disco cheio", "certificado expirado".

Por que aprender:

Em uma emergência às 3h da manhã, ninguém lembra o procedimento. O runbook é o GPS. Ex: Runbook "DB lento": 1. Checar pg_stat_activity (queries ativas), 2. Kill queries > 30s, 3. Check locks, 4. Verify disk space, 5. Check for missing indexes. Seguir sequencialmente.

Conceitos-chave:
Runbook templates Decision trees Escalation procedures Automation of runbooks Living documentation
O que é:

Introduzir falhas deliberadas em produção para testar resiliência: matar instâncias, injetar latência, simular partition.

Por que aprender:

Você descobre fraquezas antes dos usuários. Ex: O Netflix Chaos Monkey mata instâncias EC2 aleatórias em produção. Se o sistema sobrevive, está resiliente. Se não, o time corrige antes que uma falha real aconteça.

Conceitos-chave:
Chaos Monkey (Netflix) Gremlin Litmus Game days Blast radius control Steady state hypothesis
O que é:

Disciplina do Google que aplica engenharia de software a problemas de operações. Foco em automação, SLOs, error budgets e redução de toil.

Por que aprender:

SRE é o framework que permite operar sistemas confiáveis sem inflar o time. Ex: O Google define: se o error budget está OK (dentro do SLO), priorize features. Se o error budget está baixo, congele features e melhore confiabilidade. Objetivos alinhados automaticamente.

Conceitos-chave:
SRE principles Error budgets Toil budget On-call practices Automation over process Blameless culture
O que é:

Rotação de pessoas responsáveis por responder a incidentes fora do horário. Boas práticas: compensação, rotação justa, ferramentas adequadas.

Por que aprender:

On-call mal feito causa burnout e turnover. Ex: O PagerDuty recomenda: rotação semanal, máximo 1 incidente/noite (se mais, os alertas estão errados), compensação em folga ou $, runbooks para cada alerta. Se o oncall é acordado toda noite, o problema é a engenharia, não a pessoa.

Conceitos-chave:
On-call rotation Compensation Alert quality Escalation policies PagerDuty/OpsGenie Secondary on-call
O que é:

Padrões para construir sistemas resilientes: circuit breaker (para de chamar serviço falho), retry (tenta de novo com backoff), bulkhead (isola falhas), timeout (não espera para sempre).

Por que aprender:

Sem esses padrões, uma falha cascateia pelo sistema inteiro. Ex: Sem circuit breaker: serviço de pagamento cai → serviço de pedido espera → timeout → pool de conexões esgota → serviço de pedido cai → catálogo cai → tudo cai. Com circuit breaker: pagamento cai → circuit abre → pedido retorna "tente mais tarde" → sistema continua funcionando.

Conceitos-chave:
Circuit breaker (open/half-open/closed) Retry with exponential backoff Bulkhead pattern Timeout budgets Fallback responses Graceful degradation
← Construindo na Prática Próxima: Escalando e Evoluindo →