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

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

Embed Size (px)

Citation preview

DevOps: princípios e práticas

para a Entrega Contínua.

3ª EDIÇÃO

2

Agenda

Palestrante: Otávio Calaça Xavier

[email protected]

• 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

[email protected]

• 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

[email protected]

• 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

[email protected]

• Palavras chaves:• Automação

• Agilidade

• Frequência

• Colaboração

3ª EDIÇÃO

6

DevOps: elementos essenciais

Palestrante: Otávio Calaça Xavier

[email protected]

“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

[email protected]

• 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

[email protected]

• 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

[email protected]

• 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

[email protected]

“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

[email protected]

• 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

[email protected]

• 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

[email protected]

• 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

[email protected]

• 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

[email protected]

• 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

[email protected]

3ª EDIÇÃO

17https://www.flickr.com/photos/feliperoos/4304276481/

Palestrante:

Otávio

Calaça

3ª EDIÇÃO

18https://www.flickr.com/photos/tjblackwell/7819341478/

Palestrante:

Otávio

Calaça

3ª EDIÇÃO

19Palestrante:

Otávio

Calaça

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

24Palestrante:

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

[email protected]

3ª EDIÇÃO

30

DevOps: ferramentas

• Integração Contínua:• Jenkins, Hudson, Travis CI, etc.

Palestrante: Otávio Calaça Xavier

[email protected]

3ª EDIÇÃO

31

DevOps: ferramentas

• Inspeção automatizada de código:• PMD, JSHint, Checkstype, Findbugs, Sonar.

Palestrante: Otávio Calaça Xavier

[email protected]

3ª EDIÇÃO

32

DevOps: ferramentas

• Automatização de Configuração:• Puppet, Chef, Ansible, Salt, etc.

Palestrante: Otávio Calaça Xavier

[email protected]

3ª EDIÇÃO

33

DevOps: ferramentas

• Provisionamento de Ambientes:• Vagrant, Packer.

Palestrante: Otávio Calaça Xavier

[email protected]

3ª EDIÇÃO

34

DevOps: ferramentas

• Container para aplicações distribuídas:• Docker

Palestrante: Otávio Calaça Xavier

[email protected]

3ª EDIÇÃO

35

DevOps: ferramentas

• Logs em ambiente distribuído:• Logstash, Fluentd, Graylog, etc

Palestrante: Otávio Calaça Xavier

[email protected]

3ª EDIÇÃO

36

DevOps: ferramentas

• Configuração em ambientes distribuídos:• Etcd, confd, etc

Palestrante: Otávio Calaça Xavier

[email protected]

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

[email protected]

3ª EDIÇÃO

38

Obrigado!

• Perguntas?

Otávio Calaça Xavier

[email protected]

Palestrante: Otávio Calaça Xavier

[email protected]