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