Post on 10-Jan-2017
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
20http://darkroom.baltimoresun.com/wp-content/uploads/2014/02/REU-OLYMPICS-FIGURESKATING_3.jpg
Palestrante:
Otávio
Calaça
3ª EDIÇÃO
21
https://upload.wikimedia.org/wikipedia/commons/a/ab/Final_assembly_2.jpg
Palestrante:
Otávio
Calaça
3ª EDIÇÃO
22http://blog.planalto.gov.br/wp-content/uploads/2014/05/Gabinete_ETO8373-Editar-800x451.jpg
Palestrante:
Otávio
Calaça
3ª EDIÇÃO
23https://i1.wp.com/www.extremetech.com/wp-content/uploads/2013/03/Ants-bridge.jpg
Palestrante:
Otávio
Calaça
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
Calaça
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
Calaça
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
Calaça
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
Calaça
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 andReducing 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