DevOps: princípios e práticas
para a Entrega Contínua.
3ªEDIÇÃO
2
Agenda
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• Contextualização e Histórico
• Princípios DevOps
• A Entrega Contínua
• Práticas e Ferramentas
3ªEDIÇÃO
3
DevOps
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• Origem em torno de 2009.
• Convergência de vários movimentos:
• Velocity Conference (10+ Deploys per Day)
• Agile Infrastructure – Andrew Shafer
• Infraestrutura como Código – Mark Burgess e Luke Kanies
• Entrega Contínua – Jez Humble
• Startup Lean – Eric Ries
• Fomentado pela popularização de tecnologias
PaaS
3ªEDIÇÃO
4
DevOps
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• Movimento profissional emergente que
defende uma colaboração maior entre
desenvolvimento e operações de TI.
3ªEDIÇÃO
5
DevOps
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• Palavras chaves:
• Automação
• Agilidade
• Frequência
• Colaboração
3ªEDIÇÃO
6
DevOps: elementos essenciais
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
“Integração contínua é uma
prática em desenvolvimento de
software em que os membros do
time integram seu trabalho
frequentemente, usualmente cada
pessoa integra pelo menos uma vez
ao dia – levando a múltiplas
integrações por dia.”
Martin Fowler, Paul M. Duvall
3ªEDIÇÃO
7
DevOps: elementos essenciais
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• Integração Contínua:
• Construir o software a cada mudança.
• Construir envolve compilação, empacotamento,
testes, inspeção, etc.
• Requer um processo ágil de desenvolvimento.
3ªEDIÇÃO
8
DevOps: elementos essenciais
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• Fluxo da IC
Pegue o
código fonte
mais recente
Desenvolva
sua atividade
Faça uma
construção na
sua máquina
Rode os testes
automatizados
Commit seu
código
Faça uma
construção na
máquina de
integração
3ªEDIÇÃO
9
DevOps: elementos essenciais
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• Implantação Contínua:
• A cada mudança, construir e implantar o software
em ambiente parecido com o de produção.
• Requer: Integração Contínua
3ªEDIÇÃO
10
DevOps: elementos essenciais
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
“Entrega Contínua é uma
disciplina de desenvolvimento na
qual software é construído de tal
maneira que o mesmo pode ser
colocado em produção a qualquer
momento.”
Jez Humble
3ªEDIÇÃO
11
DevOps: elementos essenciais
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• Entrega Contínua:
• Qualquer mudança pode ser colocada em
produção a qualquer momento.
• Requer:
Integração Contínua
Implantação Contínua
3ªEDIÇÃO
12
DevOps: princípios
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• The Phoenix Project: três caminhos.
• Primeiro Caminho: desempenho da organização
• Foco em todos os fluxos de valor de negócio que a TI
permite.
• Nunca passar um problema conhecido para a próxima
equipe.
• Não deixar que otimização local crie degradação global.
• Procurar sempre agilidade (sem perda de qualidade).
3ªEDIÇÃO
13
DevOps: princípios
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• Segundo Caminho: Ampliar loops de feedback
• Foco em melhoria do processo.
• Entender e responder a todos os clientes, internos e
externos.
• Integrar conhecimento onde for necessário.
• Receber feedback e agir o quanto antes.
3ªEDIÇÃO
14
DevOps: princípios
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• Terceiro Caminho: Cultura da experimentação e
aprendizado contínuo
• Correr riscos, sair da zona de conforto.
• Alocar tempo para melhorar o trabalho diário.
• Criar rituais que recompensem a equipe por correr riscos
(inovação) mantando qualidade (confiabilidade).
• Receber feedback e agir o quanto antes.
• Promover a resiliência pela introdução de falhas no
processo.
3ªEDIÇÃO
15
DevOps: a entrega contínua
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
• DevOps: cultura, colaboração.
• Entrega Contínua: processo, confiabilidade.
• Para se ter a qualidade e confiabilidade que a entrega
contínua requer, é necessário a colaboração de
DevOps.
“Qualidade significa fazer certo
quando ninguém está olhando.”
Henry Ford
3ªEDIÇÃO
16
Entrega Contínua: princípios
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
3ªEDIÇÃO
17
https://www.flickr.com/photos/feliperoos/4304276481/
Palestrante:
Otávio
3ªEDIÇÃO
18
https://www.flickr.com/photos/tjblackwell/7819341478/
Palestrante:
Otávio
3ªEDIÇÃO
19Palestrante:
Otávio
3ªEDIÇÃO
20
http://darkroom.baltimoresun.com/wp-content/uploads/2014/02/REU-OLYMPICS-FIGURESKATING_3.jpg
Palestrante:
Otávio
3ªEDIÇÃO
21Palestrante:
Otávio
3ªEDIÇÃO
22
http://blog.planalto.gov.br/wp-content/uploads/2014/05/Gabinete_ETO8373-Editar-800x451.jpg
Palestrante:
Otávio
3ªEDIÇÃO
23
https://i1.wp.com/www.extremetech.com/wp-content/uploads/2013/03/Ants-bridge.jpg
Palestrante:
Otávio
3ªEDIÇÃO
24Palestrante:
Otávio
3ªEDIÇÃO
25
Como começar? (Integração)
• Frequência:
• Estabelecer processo ágil de desenvolvimento
(baseado em planejamento de pequenas sprints).
• Integrar todos os dias => garantir que tudo esteja
commitado ao final do dia (e funcionando).
• Pequenos entregáveis => preocupe-se com a
qualidade.
• Evite builds quebrados => só vá embora quando tiver
certeza de que o que você integrou não quebrou nada.
• Escreva testes automatizados de unidade e integração.
Palestrante:
Otávio
3ªEDIÇÃO
26
Como começar? (Implantação)
• Automatização:
• Automatize o roteiro de implantação.
• Coloque todas as configurações em controle de versão.
• Utilize ferramentas de provisionamento de ambientes
(Vagrant, Puppet, Chef, etc.).
• Implante a cada mudança.
• Escreva testes automatizados de integração e sistema.
Palestrante:
Otávio
3ªEDIÇÃO
27
Como começar? (Entrega)
• Qualidade:
• Automatize o processo de liberação de release
• Escreva testes funcionais e não funcionais
automatizados
• Garanta a qualidade do produto com automação de
testes em todos os níveis (unitários, integração,
sistema, de estrutura e funcionais)
Você consegue entrega contínua quando a cobertura
de testes automatizados é suficientemente confiável
e a implantação completamente automatizada.
Palestrante:
Otávio
3ªEDIÇÃO
28
Como começar? (DevOps)
• Colaboração:
• Garanta que as entregas ao cliente estão alinhadas
com a liberação de releases.
• Certifique-se de que existe feedback entre as equipes
e que há ação decorrente disso.
• Utilize práticas que reduzem o impacto de mudanças
(blue-green deployment, toggle features, abstract
branches, implantação canário, servidores phoenix ou
imutáveis, etc).
• Tenha especificações executáveis tanto quanto forem
possíveis.
Palestrante:
Otávio
3ªEDIÇÃO
29
DevOps: ferramentas
• Gerencia de Configuração:
• SVN, Git, Maven, Gradle, NPM, etc.
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
3ªEDIÇÃO
30
DevOps: ferramentas
• Integração Contínua:
• Jenkins, Hudson, Travis CI, etc.
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
3ªEDIÇÃO
31
DevOps: ferramentas
• Inspeção automatizada de código:
• PMD, JSHint, Checkstype, Findbugs, Sonar.
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
3ªEDIÇÃO
32
DevOps: ferramentas
• Automatização de Configuração:
• Puppet, Chef, Ansible, Salt, etc.
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
3ªEDIÇÃO
33
DevOps: ferramentas
• Provisionamento de Ambientes:
• Vagrant, Packer.
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
3ªEDIÇÃO
34
DevOps: ferramentas
• Container para aplicações distribuídas:
• Docker
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
3ªEDIÇÃO
35
DevOps: ferramentas
• Logs em ambiente distribuído:
• Logstash, Fluentd, Graylog, etc
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
3ªEDIÇÃO
36
DevOps: ferramentas
• Configuração em ambientes distribuídos:
• Etcd, confd, etc
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
3ªEDIÇÃO
37
Referências
• Continuous Delivery: Reliable Software Releases through Build,
Test, and Deployment Automation by Jez Humble , David Farley
• Continuous Integration: Improving Software Quality and
Reducing Risk by Paul M. Duvall , Steve Matyas, Andrew Glover
• Padrões de deploy para DevOps e entrega contínua by Danilo
Sato
• DevOps distilled, Part 1: The three underlying principles by Gene
Kim
• The Phoenix Project: A Novel About IT, DevOps, and Helping
Your Business Win by Gene Kim, Kevin Behr, George Spafford
• The convergence of DevOps by John Willis
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com
3ªEDIÇÃO
38
Obrigado!
• Perguntas?
Otávio Calaça Xavier
otaviocx@gmail.com
Palestrante: Otávio Calaça Xavier
otaviocx@gmail.com

DevOps: princípios e práticas para a Entrega Contínua