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,207