https://slides.com/wilcorrea/vivendo-a-cultura-devops/live

Vivendo a cultura devops

/me

William Correa

@wilcorrea

Agenda

  • O que é Devops
  • Como isso pode nos ajudar
  • As três maneiras
  • Integração contínua
  • Entrega contínua
  • Publicação contínua
  • Mão na massa

O que é DevOps

  • Convergência
  • Alcance
  • Organização

Convergência

  • Infrastructure as code (Mark Burgess e Luke Kanies)
  • Infrastructure Agile (Andrew Shafer)
  • Inicialização Lean (Eric Ries)
  • Integração e release contínuos (Jez Humble)
  • June 2009 : O’Reilly Velocity 09 conference
    • 10 Deploys Per Day: Dev and Ops Cooperation at Flickr (John Allspaw, Paul Hammond)
  • October 2009: Devopsdays 2009 Belgium (Patrick Debois, Andrew Shafer)

Convergência

Convergência

  • Empresas de tecnologia
  • Novas demandas
  • A administração tradicional não atende

Alcance

  • Dev: plan, code, build, test
  • Ops: release, deploy, operate, monitor

Organização

  • Simplificar processos
  • Integrar áreas
  • Qualidade nas entregas
  • Reduzir o tempo de resposta ao cliente

VS

Pra levar pra casa

  • Empresas de tecnologia são complexas
  • Processos antigos não funcionam
  • As peças precisam se encaixar

Como isso pode nos ajudar

  • Desenvolvimento
  • Operações
  • Juntando tudo

Desenvolvimento

  • Ambientes para as aplicações
  • Fluxos para construir as aplicações
  • Automatizar testes
  • Monitorar quando a aplicação falha
  • Serviços em geral
  • Disponibilidade e distribuição dos recursos

Operações

  • Implementar scripts
  • Compreender ferramentas
  • Conhecer regras de negócio
  • Entender os processos de homologação

Juntando tudo

  • Criar e destruir ambientes de forma simples
  • Poucos comandos para um deploy
  • Automatização dos testes
  • Reversão de entregas
  • Espiral descendente

Juntando tudo

  • Trabalho colaborativo
  • Automatizar é consequência
  • É possível dimensionar recursos
  • Excelência na comunicação e na agilidade

Para levar pra casa

  • Algumas coisas parecem complexas porque são
  • É possível automatizar sim todos os processos
  • Esforço conjunto e filosofia interna

As três maneiras

  • Fluxo
  • Feedback
  • Aprendizado contínuo
  • Mitos

Fluxo

  • Todo trabalho deve ser visível (kanban e etc)
  • Lotes de trabalho pequenos para cada entrega
  • Mapear os impactos das mudanças
  • Reduzir transferências
  • Identificar e elevar continuamente restrições
  • Remover desperdícios
  • Desempenho de todo o sistema

Fluxo

  • Nunca passar um defeito conhecido para centros de trabalho posteriores no processo
  • Nunca permitir que otimização local crie degradação global
  • Sempre procurar aumentar o fluxo

Fluxo

  • Geralmente o fluxo de trabalho é left-right
  • A relação entre o cliente e o negócio

Feedback

  • Entender e responder a todos os clientes, internos e externos
  • Diminuir e amplificar todos os loops de feedback
  • Integrar conhecimento onde é necessário
  • Aprimorar a comunicação
  • Criar com a possibilidade da mudança

Feedback

  • Aumentar a frequência e os canais
  • Reduzir a distância
  • Tornar o feedback simples e natural

Aprendizado contínuo

  • Alocar tempo para melhorar o trabalho diário
  • Criar rituais que recompensam a equipe por correr riscos
  • Introduzir falhas no sistema para aumentar a resiliência

Aprendizado contínuo

  • Fluxos interativo de aprendizado
  • Wiki e base de conhecimento
  • Toda operação deve ser reproduzível

Mitos

  • DevOps só serve para startups
  • DevOps substitui agile
  • DevOps é incompatível com ITIL
  • DevOps é incompatível com infosec
  • DevOps é o mesmo que NoOps
  • DevOps é apenas Infraestrutura como código
  • DevOps só serve para software open source
  • DevOps é cargo

Para levar para casa

  • As três maneiras ou caminhos são a base do DevOps

        (three ways no original)

  • Agilidade
  • Confiabilidade
  • Segurança

Integração contínua

  • Como funciona
  • Vantagens
  • Ferramentas

Como funciona

  • Integração orgânica
  • Controle de versão

Vantagens

  • Sem intervenção humana
  • Processos simples e fáceis
  • Automatização de rotinas complexas

Ferramentas

  • Jenkins
  • TeamCity
  • Travis CI
  • Go CD
  • Bamboo
  • GitLab CI
  • CircleCI
  • Codeship
  • Codefresh

Ferramentas

Ferramentas

Ferramentas

Ferramentas

Ferramentas

Pra levar pra casa

  • Tudo começa num push
  • Git é hackeável e se integra organicamente ao fluxo
  • Processos bem desenhados
  • Ferramentas configuradas

Entrega contínua

  • Como funciona
  • Vantagens
  • Ferramentas

Como funciona

  • Ambientes de homologação automatizados
  • Testes básicos antes do Test e QA
  • Aplicação descartável

Vantagens

  • É possível ver trabalhos em andamento
  • Há um ambiente propício e estável para Test e QA
  • A aplicação fica estável para uma entrega
  • Não há ruídos e variações

Ferramentas

  • Docker
  • Ansible
  • Terraform
  • Traefik
  • Git

Pra levar pra casa

  • Infraestrutura reproduzível
  • Código testável
  • Scripts, hooks e webhooks

Publicação contínua

  • Como funciona
  • Vantagens
  • Ferramentas

Como funciona

  • Novas versões automatizadas da aplicação
  • Deploy automático
  • Reversibilidade

Vantagens

  • Processos independentes de pessoas
  • Deploy automático
  • Tranquilidade
  • Confiança

Pra levar pra casa

  • Ambiente controlado
  • Fluxo garantido
  • "Teste Depois do Deploy"

Mão na massa

  • Infra as code
  • Scripts & Makefile
  • Métricas
  • Hooks
  • Test

Infra as code

  • Docker / Vagrant
  • Ansible / Terraform
  • Scripts / +Scripts

Infra as code

Infra as code

Infra as code

Scripts & Makefile

  • comandos são base de conhecimento
  • Makefile
  • Bash

Scripts & Makefile

  • Makefile
  • Bash

Métricas

  • Sentry /  Raygun
  • New Relic / Zabbix

Hooks

  • Git hook in 2 minutos

Test

  • PHP Unit
  • Behat
  • Tudo começa de algum lugar

Como colocar isso no projeto?

  • Monorepo
  • Scripts
  • Ambientes

Pra levar pra casa

  • Conhecimento especializado
  • Mudança cultural
  • Senso de propriedade
  • 3 caminhos permeiam as tarefas

Hora das palmas

Perguntas?

Referências

Vivendo a cultura DevOps

By William Correa

Vivendo a cultura DevOps

  • 1,025