Introdução a DevOps e Continuous delivery agileday

Preview:

Citation preview

Introdução a DevOps e Continuous Delivery

Carlos Felippe Cardoso (CFC)

cfc@k21.com.br@carlosfelippe

slideshare.net/cfelippek21.com.br

Do que vamos falar?

1. Conceito de DevOps2. Disfunções comuns 3. Por que adotarmos?4. Infra as Code5. Continuous Delivery

Pra começar, o que é DevOps?

Como falam por aí:“DevOps é um método para desenvolvimento de Software que enfatiza a comunicação, colaboração, integração, automação e o uso de métricas.”

Patrick Debois

“DevOps é um método para desenvolvimento de Software que enfatiza a comunicação, colaboração, integração, automação e o uso de métricas.”

Patrick Debois

https://blog.newrelic.com/2014/05/16/devops-name/https://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr

Um bom livro pra entender a relação entre DevOps, Agile etc?

Workshop em 2011"E se jogarmos nosso servidor de produção pela janela?"

"Quanto tempo para colocar o sistema novamente no ar?"

"Continuous Delivery for DevOps"

Jez Humble / Agosto - 2011

Rio de Janeiro

Você já viu isso acontecer?

“O principal objetivo é aumentar a

colaboração entre os envolvidos no

processo de entrega de software,

de um modo que possamos entregar valor

mais rápido e de modo mais confiável”

Patrick Debois

E por que isso faz tanto sentido?

(Lead time = tempo total) > 30 dias!!!!A gente pode esperar?

Enquanto isso...

DevOps não resolve só os problemas técnicos.

Resolve os de negócio!

Pontos-chave para adotarmos

1) Diminuir “Time-to-market”

2) Melhoria na qualidade

3) Aumentar resiliência

“Mas CFC, aqui na empresa é diferente…”

1) Produz vários documentos para mandar para outro setor, afinal tudo deve ser bem documentado para servir de “evidência”?2) Nas “salas de guerra”, é comum haver trocas de acusações constantes?3) Alguém sempre diz que não pode ser feito porque a lei SOX não permite, o ITIL não deixa etc?4) Você convida com constância os membros de outras “especialidades” para ajudar no seu trabalho?5) Somos preocupados com o Kaizen, sempre estamos reunindo os vários times envolvidos no projeto para levantarmos pontos de melhoria?

Vamos ver como estamos no teste do “Wall of Confusion”:

livremente inspirado de http://itrevolution.com/devops-culture-part-2/

Beleza! Só derrubarmos as barreiras então!

“You can’t directly change culture. But you can change behavior, and behavior becomes culture”

Lloyd Taylor

Cavernas (silos) de conhecimento...

Mito do herói!

Na prática, é o famoso funcionário

que perdeu o direito de morrer! :(

A transição entre DevOps como prática / cultura leva tempo...

E por onde começar?

Pilares e práticas para DevOps

May Xu

Infra as Code (Puppet, chef, Docker etc)

Perfil profissional diferente!

Infra as Code (Puppet, chef, Docker etc)

Gerência de configuração “automatizada"

● Infrastructure as Code: Track, Test, Deploy, Reproduce, Scale

● Qualquer alteração de código gera log e histórico de mudança na

infraestrutura

● Setups "repetitíveis": Do once, repeat forever

● Escalabilidade mais rápida: Uma instância configurada é o mesmo custo

que configurar várias

● Coerência e consistência nos setups dos vários servidores

● Ambientes consistentes: Dev, QA, Homolog, ProdAlternativas ao Puppet: Chef, Salt, Ansible

Infra as Code (Puppet, chef, Docker etc)

Inclusive para Windows!

E como é código...

Integração Contínua!

Infra as code

Puppet Script

CloudProvisionaMáquina emStaging

Scripting Tudo OK?(testing)

Dashboards!Nem sempre está verde! =(

Dashboards!

E pode ir até produção!

E o deploy automatizado? Que tal " tão" simples quanto o apertar de um botão?

Fabric

E o deploy automatizado? Que tal " tão" simples quanto o apertar de um botão?

Continuous Integration -> Continuous Delivery

Pipeline de Build

Continuous Delivery

Build -> Fase de Integração contínua

Deploy -> Ferramentas Infra as Code

Test -> Smoke Tests, sondas automatizadas de monitoramento

Release -> Processo automatizado de release para usuários (ler sobre feature flags, canary releasing, blue green deployment)

De onde surgiram as idéias do CD?

● Idéias vindas do artigo

○ The Deployment Production Line

■ Jez Humble, Chris Read, Dan North

■ AGILE '06 proceedings of the conference - IEEE

Computer Society , Pages 113 - 118

"The Problems of delivering Software"

● Deploy manual

● Deploy em homologação

● Configuração manual do ambiente de produção

● Feedback de pequenos grupos de usuários

● "Done Means Released" (Jez Humble)

● Controle de versão● Gerenciamento de dependências

● Gerenciamento de configuração do software● Ferramentas para automatizar e gerenciar qualquer

aspecto relacionado ao software!○ DDL/DML do Banco de dados○ Máquinas virtuais

■ Servidores de aplicação○ Infraestrutura de rede○ Load-Balancing "elástico"

■ Behavior-Driven Monitoring○ Deploy da aplicação

Vamos sonhar alto?

Continuous Delivery & DevOps

PERGUNTAS?cfc@k21.com.br

@carlosfelippeslideshare.net/cfelippe

k21.com.br/treinamentos/

Recommended