O processo de entrega de software envolve várias etapas e a participação de todas as áreas de uma empresa: do comercial ao desenvolvimento. Com o amadurecimento da entrega contínua de software, surgiu o termo DevOps que destina-se a descrever uma nova cultura para colaboração de todas as equipes na entrega do software. Essa palestra destina-se a abordar os princípios da entrega contínua e as práticas utilizadas em DevOps.
3. 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
4. 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.
6. 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
7. 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.
8. 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
9. 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
10. 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
11. 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
12. 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).
13. 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.
14. 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.
15. 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
25. 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
26. 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
27. 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
28. 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
37. 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