A cultura DevOps é um conjunto de práticas e valores que visa integrar equipes de desenvolvimento (Dev) e operações (Ops) para melhorar a colaboração, automação e entrega de software. Nesta aula, abordaremos os pilares fundamentais dessa cultura, incluindo a colaboração entre as equipes, a responsabilidade compartilhada, a cultura sem culpa e o framework CALMS.

Colaboração Dev+Ops

A colaboração entre desenvolvedores e operações é essencial para quebrar silos organizacionais. Tradicionalmente, essas equipes trabalhavam separadamente, o que gerava conflitos e atrasos. Na cultura DevOps, promove-se a comunicação constante, metas compartilhadas e ferramentas comuns. Exemplos práticos incluem a participação de operações nas reuniões de planejamento e o uso de chats ou kanbans compartilhados.

# Exemplo de pipeline CI/CD que envolve ambas as equipes
# Desenvolvedores escrevem código e criam PRs
# Operações revisam e aprovam mudanças de infraestrutura
name: CI/CD Pipeline
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Build
        run: make build
  deploy:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to production
        run: make deploy

Responsabilidade compartilhada

Na cultura DevOps, todos são responsáveis pelo ciclo de vida do software, desde a concepção até a operação. Isso significa que desenvolvedores cuidam da estabilidade e monitoramento, enquanto operações contribuem para a automação e qualidade do código. Essa responsabilidade compartilhada reduz riscos e acelera a resolução de problemas.

# Exemplo de um runbook compartilhado
# Desenvolvedores e operações mantêm juntos a documentação de incidentes
# runbook.md
## Procedimento para reinicialização do serviço
1. Verificar logs: `journalctl -u myservice -n 50`
2. Reiniciar serviço: `systemctl restart myservice`
3. Verificar health check: `curl http://localhost:8080/health`

Blameless culture

A cultura sem culpa (blameless culture) incentiva a aprendizagem a partir de falhas, em vez de punir indivíduos. Quando ocorre um incidente, o foco é entender as causas raiz e melhorar processos, não apontar culpados. Isso promove transparência e inovação, pois as pessoas se sentem seguras para relatar problemas e experimentar.

# Exemplo de postmortem sem culpa
## Incidente: Queda do banco de dados (2023-10-01)
### Causa raiz: Falha de hardware no servidor primário
### Ações tomadas:
- Adicionado failover automático
- Melhorado monitoramento de hardware
- Revisado procedimento de backup
### Lições aprendidas:
- Necessidade de testes de recuperação mais frequentes
- Comunicação mais rápida com a equipe

CALMS (visão geral)

CALMS é um acrônimo que resume os pilares do DevOps: Cultura, Automação, Lean, Medição e Compartilhamento (Sharing). Cultura refere-se à colaboração e confiança; Automação reduz trabalho manual e erros; Lean foca em eliminar desperdícios; Medição fornece dados para melhoria contínua; e Compartilhamento promove o conhecimento entre equipes.

# Exemplo de métricas compartilhadas (DORA)
- Frequência de deploy: quantas vezes por dia/semana
- Lead time para mudanças: tempo do commit ao deploy
- Tempo médio de recuperação (MTTR): tempo para restaurar serviço após incidente
- Taxa de falha de mudanças: % de deploys que causam incidentes

Referências

Exercícios

  1. Explique com suas palavras por que a colaboração entre Dev e Ops é importante na cultura DevOps.
  2. A colaboração é importante porque quebra silos, reduz conflitos e atrasos, melhora a comunicação e alinha metas, resultando em entregas mais rápidas e software de maior qualidade.
  3. Dê um exemplo de como a responsabilidade compartilhada pode ser aplicada no dia a dia de uma equipe DevOps.
  4. Um exemplo é a criação de um pipeline CI/CD onde desenvolvedores escrevem testes e operações configuram o ambiente de deploy, e ambos monitoram a saúde da aplicação em produção.
  5. Qual a diferença entre uma cultura de culpa e uma cultura sem culpa? Por que a blameless culture é preferível em DevOps?
  6. Na cultura de culpa, as falhas são atribuídas a indivíduos, gerando medo e ocultação de erros. Na blameless culture, o foco é aprender com os erros e melhorar processos, promovendo transparência e inovação. É preferível porque encoraja a experimentação e a melhoria contínua.
  7. Descreva cada letra do acrônimo CALMS e dê um exemplo prático para cada uma.
  8. C: Cultura - promover colaboração e confiança. Ex: reuniões diárias conjuntas. A: Automação - automatizar tarefas repetitivas. Ex: deploy automático. L: Lean - eliminar desperdícios. Ex: reduzir handoffs. M: Medição - medir métricas para melhoria. Ex: monitorar lead time. S: Compartilhamento - compartilhar conhecimento. Ex: documentação colaborativa.
  9. Cite duas métricas do DORA e explique como elas ajudam a medir a eficácia da cultura DevOps.
  10. Duas métricas são: Frequência de deploy (mede quantas vezes o software é implantado) e Lead time para mudanças (tempo do commit ao deploy). Elas ajudam a avaliar a velocidade e eficiência do processo, indicando se a colaboração e automação estão funcionando.