DevOps: Muito mais do que só automação

Igor Abade V. Leite

  • CEO & Founder, CloudMotion
  • Microsoft Regional Director

Por que falar de DevOps?

DevOps: Muito mais do que só automação

Por que falar de DevOps?

“50% das empresas na Fortune 500 no ano 2000 foram substituídas por organizações que usam tecnologia para entregar valor a seus clientes mais rápido, melhor, e mais barato.

As Fortune 500 de hoje encontrarão o mesmo desafio amanhã”

Innosight | Corporate Longevity: Turbulence Ahead for Large Organizations

Por que falar de DevOps?

O paradoxo da entrega de software: “Velocidade vs. Controle” impede inovação

Muro da Confusão

Muro da Confusão

DevOps pode ajudar

  • Mais valor para seus usuários
  • Mais respeito pelo seu time

O que é DevOps?

DevOps: Muito mais do que só automação

O que é DevOps?

  • “É um cargo”
  • “É automação”
  • “É a colaboração entre desenvolvedores e infra”
  • “É fazer releases menores e mais rápidas”

O que é DevOps?

“DevOps é a união de pessoas, processos e ferramentas a fim de permitir a entrega continua de valor aos usuários finais”

Entrega contínua

  • Construir & Testar
  • Implantar
  • Entrega Contínua
  • Desenvolver
  • Planejar & Acompanhar
  • Operar
  • Monitorar & Aprender

Mitos e Verdades

DevOps: Muito mais do que só automação

“DevOps é ‘modinha’”

“DevOps substitui o Agile”

“DevOps é incompatível com Segurança e Compliance”

“DevOps é eliminar o time de Infraestrutura (‘NoOps’)”

“DevOps é automação, ou ‘Infraestrutura como código’”

“DevOps é só para Startups”

Em busca do DevOps

DevOps: Muito mais do que só automação

A jornada é mais importante que o destino

A jornada é mais importante que o destino: Famoso (e batido) chavão da Internet

Bases de DevOps: CAMS / CALMS

  • Cultura
  • Automação
  • Lean
  • Medição (“Measurement”)
  • Compartilhamento (“Sharing”)

“As Três Maneiras”

  • Systems Thinking
  • Amplify feedback loop
  • Culture of continual experimentation and learning

1 - “Systems Thinking”

  • Entender o fluxo de trabalho (“Understand the flow of work”)
  • Buscar sempre aumentar o fluxo (“Always seek to increase flow”)
  • Nunca passe defeitos conhecidos para a frente (“Never pass known defects downstream”)
  • Nunca permitir que otimização local crie degradação global (“Never allow local optimization to create global degradation”)
  • Alcançar uma compreensão profunda do sistema (“Achieve profound understanding of the system”)

2 - “Amplify feedback loop”

  • Encurtar e amplificar os loops de feedback (“Shorten and amplify feedback loops”)
  • Compreender e atender às necessidades do cliente (“Understand and meet the needs of the customer”)
  • Assegurar-se de que as pessoas têm a informação que precisam (“Make sure that people have the information they need”)

3 - "Continual experimentation/Learning”

  • Cultura de experimentação contínua (“Culture of continual experimentation”)
  • Aprendizagem do fracasso (“Learning of failure”)
  • A repetição é o pré-requisito para o domínio (“Repetition is the prerequisite for mastery”)

Lean Manufacturing

Princípios Lean

  1. Identificar Valor
  2. Mapear o fluxo de valor
  3. Criar o fluxo
  4. Estabelecer sistema puxado
  5. Buscar Perfeição

Lean Software Development

Livro: Implementing Lean Software Development

Mary e Tom Poppendieck

Lean: Sete Princípios

  1. Elimine desperdícios
  2. Inclua qualidade no processo
  3. Crie conhecimento
  4. Adie comprometimento (decisão)
  5. Entregue rápido
  6. Respeite as pessoas
  7. Otimize o todo

Lean: Sete Desperdícios

  1. Trabalho parcialmente concluído
  2. Funcionalidades adicionais
  3. Revisitar decisões
  4. Passagens de serviço (“handoffs”)
  5. Atrasos
  6. Troca de atividades (“task switching”)
  7. Defeitos

As quatro métricas-chave

  • Lead time
  • Deployment frequency
  • Mean time to restore (MTTR)
  • Change fail percentage

https://www.thoughtworks.com/radar/techniques/four-key-metrics

Cultura DevOps

  • DevOpsCulture - https://martinfowler.com/bliki/DevOpsCulture.html
  • The five keys to a successful Google Team - https://rework.withgoogle.com/blog/five-keys-to-a-successful-google-team/

DevOps x SRE

A Engenharia de Confiabilidade do Site (“Site Reliability Engineering”) é uma disciplina híbrida orientada para a produção que combina habilidades profundas de engenharia de software e sistemas. Como especialistas em engenharia de confiabilidade, SREs são normalmente responsáveis por melhorar a disponibilidade de serviços, latência, escalabilidade, desempenho e eficiência. Ambos são complementares; destinados principalmente a quebrar barreiras e fornecer software mais rápido, melhorando a confiabilidade.

A Conversa sobre DevOps

  • Pessoas
    • Colaborar mais
    • Compartilhar metas comuns
    • Focar na melhoria
    • Unir as pessoas
  • Processos
    • Eliminar desperdício
    • Aumentar eficiência
    • Facilitar o feedback
    • Entregar valor mais rápido
  • Ferramentas
    • Melhorar produtividade
    • Permitir colaboração
    • Facilitar experimentação
    • Executar uma estratégia de DevOps

Hábitos e Práticas de DevOps

  • Fluxo de Valor para o Cliente
    • Automated Testing
    • Continuous Integration
    • Continuous Deployment
    • Release Management
  • Autonomia do Time & Alinhamento Corporativo
    • Enterprise Agile
    • Continuous Integration
    • Continuous Deployment
    • Release Management
  • Backlog refinado pelo aprendizado
    • Usage Monitoring
    • Telemetry Collection
    • Testing in Production
    • Stakeholder Feedback
  • Evidência obtida em Produção
    • Testing in Production
    • Usage Monitoring
    • User Telemetry
    • Stakeholder feedback
    • Feature flags
  • Dívida Técnica Gerenciada
    • Code Reviews
    • Automated Testing
    • Continuous Measurement
  • Mindset “Production-first”
    • Application Performance Management
    • Infrastructure as Code
    • Continuous Delivery
    • Release Management
    • Configuration Management
    • Automated Recovery
  • Infraestrutura como recurso flexível
    • Application Performance Management
    • Infrastructure as Code
    • Continuous Deployment
    • Release Management
    • Configuration Management
    • Automated Recovery

Dúvidas?

DevOps: Muito mais do que só automação

CloudMotion

cloudmotion.com.br @cloudmotionbr