SlideShare uma empresa Scribd logo
1 de 41
E se ao invés de Dev e Ops for DevOps?
Uma introdução a cultura DevOps
SECOMP VII 12/12/2018
Sobre
O cenário ideal em um ambiente de TI
“Imagine um mundo onde POs, desenvolvimento, QA, Operações de TI e Infosec
trabalham juntos, não apenas para ajudar uns aos outros, mas também para
garantir o sucesso da organização como um todo. Trabalhando com um objetivo
em comum, eles possibilitam o fluxo rápido do trabalho planejado até a produção
(realizando dezenas, centenas ou milhares de commits por dia), ao passo que
obtém estabilidade, confiabilidade, disponibilidade e segurança de classe
mundial.”
Tradução retirada do livro
The DevOps Handbook
O cenário atual em um ambiente de TI
● Desenvolvimento e Operações não se entendem
● Equipe de segurança e de testes entram em ação apenas no final do projeto
(quando entram em ação)
● Praticamente qualquer atividade crítica requer ações manuais
● Todas as ações são lentas, principalmente deploy em produção
● Cliente insatisfeito e impactos negativos no negócio
O cenário atual em um ambiente de TI
● Incapacidade de implementar mudanças de produção em minutos ou horas,
nem ao menos em um dia
● Implementações de produção não são rotina
● Interrupções, combate a incêndio crônico, heroísmo
Mas o que fazer para se manter em vantagem
em um cenário tão competitivo?
Um pouco de história
2007: Primeiras ponderações feitas por Patrick Debois (sysadmin) sobre o conflito
desenvolvedores vs sysadmins em uma consultoria para a migração de um data
center do governo da Bélgica.
2008: Agile Conference em Toronto, uma sessão “Birds of feather” intitulada
“Agile Infrastructure”, com apenas um participante: Patrick Debois
2009: O’Reilly Velocity 09 conference, apresentação intitulada: “10 Deploys a
Day: Dev and Ops Cooperation at Flickr” ¹
1 : https://www.youtube.com/watch?v=LdOe18KhtT4
Um pouco de história
Outubro 2009: Patrick Debois decide dar nome a conferência que uniria
desenvolvedores e administradores de sistemas: DevOpsDays
Com o intuito de criar uma hashtag memorável para a conferência no twitter,
Debois encurtou o nome para:
#DevOps
Hoje, o DevOpsDays acontece em todo o mundo!
DevOps
Dev Team Ops Team
DevOps
O que é DevOps?
Segundo Gartner¹:
“DevOps represents a change in IT culture, focusing on rapid IT service delivery
through the adoption of agile, lean practices in the context of a system-oriented
approach. DevOps emphasizes people (and culture), and seeks to improve
collaboration between operations and development teams.”
1: https://www.gartner.com/it-glossary/devops
O que é DevOps?
DevOps é um conjunto de melhores práticas que enfatizam a colaboração e a
comunicação de profissionais de TI no ciclo de vida de aplicações e serviços, o
que leva a:
• Integração Contínua: Fácil transferência de controle do Desenvolvimento para Operações
e Suporte
• Implantação Contínua: Deploy contínuo ou tão frequente quanto possível
• Feedback Contínuo: Buscar feedback das partes interessadas durante todas as fases do
ciclo de vida.
O que NÃO é DevOps?
● Um cargo
● Uma ferramenta
Os 3 caminhos do DevOps - The Three Ways
● 1º Caminho: Princípio do Fluxo
● 2º Caminho: Princípio do FeedBack
● 3º Caminho: Princípio da Contínua Experimentação e Aprendizado
Princípio do Fluxo (Entrega Contínua)
● Criar ambientes automatizados e repetitivos para cada estágio do pipeline
● Aplicar teste automatizado em cada estágio do pipeline
● Otimização global acima de otimização local
Princípio do Fluxo (Entrega Contínua)
● Implantação Contínua
○ O processo de implantar uma feature, aplicação ou serviço em produção
● Entrega Contínua
○ O uso de integração contínua para criar artefatos (pacotes) instaláveis que podem ser
implantados
● Integração Contínua
○ O processo de integração de componentes para uma feature, aplicação ou serviço
Princípio do Fluxo (Consistência no Pipeline)
● Controle de Versão em Tudo
○ Histórico de alterações
○ Simplicidade para checar diferença entre versões
○ Habilidade de restaurar e reconstruir todos os elementos
○ Tudo versionado e “taggeado”
○ Alterações visíveis e auditadas por todos
○ Alterações podem ser automatizadas
Princípio do Fluxo (Testes automatizados)
● Test Driven Development - TDD
● Acceptance Test Driven Development - ATDD
● Testes automatizados (Construção e implantação)
● Ferramentas
Princípio do Fluxo (Testes automatizados)
Testes de unidade automatizados
(nível desenvolvedor)
Testes de integração
(nível sistemas)
UI
Pirâmide de testes ágil
Princípio do Feedback
● Objetivos
○ Direita para a esquerda
○ Buscar e corrigir rapidamente
○ Feedback curto e amplificado
○ Correções contínuas
Princípio do Feedback
● Entender e responder a todos os clientes (internos e externos)
● Amplificação do processo de feedback
Princípio da Contínua Experimentação e Aprendizagem
● Baseado em dois princípios principais:
○ Contínua experimentação
○ Prática e repetição são pré-requisitos para a especialização
● Alocação de tempo para melhoria no trabalho diário
● Metodologia de recompensas para o time por aceitar riscos
Pilares do DevOps - CAMS
● Cultura (Culture)
● Automação (Automation)
● Métricas (Measurement)
● Compartilhamento (Sharing)
Cultura
● Colaboração
● Dev e Ops trabalhando juntos para
entregar valor
● Indivíduos e interações mais que
processos e ferramentas
● Metodologias ágeis em geral
● Scrum
● Kanban
● Lean
Automação
● Ferramentas de automação
● Retirar passos manuais da cadeia de valor
● Infraestrutura como Código(Terraform)
● Virtualização
● Gerência de Configuração (Puppet,
Chef)
● Orquestração (Fabric, Ansible)
● Git
● CI/CD(Jenkins, TravisCI)
● Microsservices
● Docker, Kubernetes
● Linguagens Interpretadas(Ruby,
Python, Golang)
● SOs (Linux)
Métricas
● Métricas de todo o ciclo
● Monitoramento/Logs
● Métricas permitem refinar o ciclo de valor
● Ferramentas APM
● Ferramentas de monitoramento
(Nagios/Zabbix)
● Tratamento de logs (ELK)
● Coleta e armazenamento de métricas
(Collectd/Statsd/Graphite/Graphana)
Compartilhamento
● Feedback
● Responsabilidades compartilhadas
● Compartilhar experiências (boas ou ruins)
permitem o aprendizado
● Cultura Blameless
● Compartilhar ferramentas entre todos
os times
● Compartilhar código entre todos os
times
● Compartilhar informações e dados
● Sempre melhorar o processo de
comunicação
● Feedback constante entre os times
Pipeline DevOps
Demo
DevOps na prática
Material disponível em: https://github.com/edsoncelio/demo-secomp2018
Pipeline de uma aplicação em Python
1. Pull para o Github feito pelo desenvolvedor MANUAL
2. Construção da aplicação a partir do código fonte do repositório AUTO
3. Testes unitários automatizados AUTO
4. Testes de cobertura AUTO
5. Análise de performance e qualidade AUTO
6. Aprovação MANUAL
7. Upload do artefato (executável) AUTO
8. Implantação em produção e provisionamento AUTO
Pipeline de uma aplicação em Python
https://xebialabs.com/devops-diagram-generator/
Pipeline de uma aplicação em Python
Pipeline de uma aplicação em Python
Pipeline de uma aplicação em Python
Tabela periodica de ferramentas DevOps
https://xebialabs.com/periodic-table-of-devops-tools/
Recomendações
Recomendações de leitura
The Phoenix Project: A Novel about IT, DevOps,
and Helping Your Business Win
Uma narrativa sobre a introdução de DevOps em uma
empresa fictícia - que em certos momentos farão você
cogitar a possibilidade do Gene Kim ser um espião
trabalhando ao seu lado devido às grandes semelhanças
com qualquer empresa de TI. Será impossível não se
identificar de forma assustadora com os personagens do
livro e dar pequenos sorrisos ao encontrar versões "da
vida real" dos mesmos.
Recomendações de leitura
The DevOps Handbook: How to Create World-
Class Agility, Reliability, and Security in
Technology Organizations
Está com a sensação de que o projeto unicórnio do
Phoenix Project é pura ficção? Não sabe como colocar o
"Three Ways" em prática ou por onde começar? Este livro
vai te ajudar a entender DevOps e ilustrar o case de
grandes organizações completamente transformadas ou
impulsionadas por DevOps, Lean, Agile, TPS e etc.
Recomendações de leitura
Continuous Delivery: Reliable Software Releases
Through Build, Test, and Deployment Automation
Todas as funcionalidades foram implementadas, mas
ainda serão necessárias semanas ou meses para seu
software ser entregue. Como manter meu software
sempre pronto para produção? Quais práticas utilizar?
Quais não utilizar? Quais os benefícios? Embutir
qualidade no processo de desenvolvimento e antecipar
riscos é potencialmente o melhor investimento a ser feito
no seu software!
Recomendações de leitura
Site Reliability Engineering: How Google Runs
Production Systems
Coletânea de artigos do time de SRE do Google,
ilustrando a origem do termo, cultura, princípios e práticas
internas, da formação de time até valiosas lições de como
potencializar o feedback de sistemas em produção para o
desenvolvimento - e sem deixar de lado conceitos como
gerenciamento de mudança, monitoramento,
planejamento de capacidade e resposta a incidentes.
https://landing.google.com/sre/sre-book/toc/index.html
Recomendações de cursos
● DevOps Foundation - Ptbr
○ https://universidade.estabil.is/courses/devops-foundation
● Introduction to DevOps: Transforming and Improving Operations - Eng
○ https://www.edx.org/course/introduction-to-devops-transforming-and-improving-operations
● Intro to DevOps - Eng
○ https://br.udacity.com/course/intro-to-devops--ud611
Perguntas | Comentários?
@tuxpilgrim on Telegram
edsoncelio on Github && Linkedin
Material disponível em: https://edsoncelio.github.io/devops-secompuva2018

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
 
Startups e DevOps
Startups e DevOpsStartups e DevOps
Startups e DevOps
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e devel
 
DevOps - A Origem
DevOps - A OrigemDevOps - A Origem
DevOps - A Origem
 
O que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMO que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBM
 
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia IDevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
 
Discutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoDiscutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo Sato
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014
 
Cultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e develCultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e devel
 
TDC2016SP - Infra ágil: conceito e prática
TDC2016SP - Infra ágil: conceito e práticaTDC2016SP - Infra ágil: conceito e prática
TDC2016SP - Infra ágil: conceito e prática
 
Jenkins workshop
Jenkins workshopJenkins workshop
Jenkins workshop
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
Explicando DevOps
Explicando DevOpsExplicando DevOps
Explicando DevOps
 
O que é DevOps afinal?
O que é DevOps afinal?O que é DevOps afinal?
O que é DevOps afinal?
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começar
 
O Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidadeO Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidade
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de Software
 
DevOps Apresentação Encontro Rational 2013
DevOps Apresentação Encontro Rational 2013DevOps Apresentação Encontro Rational 2013
DevOps Apresentação Encontro Rational 2013
 

Semelhante a E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps

Semelhante a E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps (20)

DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de Software
 
DevOps pela visão de um QA
DevOps pela visão de um QADevOps pela visão de um QA
DevOps pela visão de um QA
 
DevOps
DevOpsDevOps
DevOps
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
Quem e dev ops
Quem e dev opsQuem e dev ops
Quem e dev ops
 
Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook   Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agileday
 
Automatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOpsAutomatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOps
 
Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entrega
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
 
Cultura dev ops
Cultura dev opsCultura dev ops
Cultura dev ops
 
São Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOpsSão Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOps
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
DevOps é SIM uma questão de QA
DevOps é SIM uma questão de QADevOps é SIM uma questão de QA
DevOps é SIM uma questão de QA
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deployments
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps

  • 1. E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps SECOMP VII 12/12/2018
  • 3. O cenário ideal em um ambiente de TI “Imagine um mundo onde POs, desenvolvimento, QA, Operações de TI e Infosec trabalham juntos, não apenas para ajudar uns aos outros, mas também para garantir o sucesso da organização como um todo. Trabalhando com um objetivo em comum, eles possibilitam o fluxo rápido do trabalho planejado até a produção (realizando dezenas, centenas ou milhares de commits por dia), ao passo que obtém estabilidade, confiabilidade, disponibilidade e segurança de classe mundial.” Tradução retirada do livro The DevOps Handbook
  • 4. O cenário atual em um ambiente de TI ● Desenvolvimento e Operações não se entendem ● Equipe de segurança e de testes entram em ação apenas no final do projeto (quando entram em ação) ● Praticamente qualquer atividade crítica requer ações manuais ● Todas as ações são lentas, principalmente deploy em produção ● Cliente insatisfeito e impactos negativos no negócio
  • 5. O cenário atual em um ambiente de TI ● Incapacidade de implementar mudanças de produção em minutos ou horas, nem ao menos em um dia ● Implementações de produção não são rotina ● Interrupções, combate a incêndio crônico, heroísmo
  • 6. Mas o que fazer para se manter em vantagem em um cenário tão competitivo?
  • 7. Um pouco de história 2007: Primeiras ponderações feitas por Patrick Debois (sysadmin) sobre o conflito desenvolvedores vs sysadmins em uma consultoria para a migração de um data center do governo da Bélgica. 2008: Agile Conference em Toronto, uma sessão “Birds of feather” intitulada “Agile Infrastructure”, com apenas um participante: Patrick Debois 2009: O’Reilly Velocity 09 conference, apresentação intitulada: “10 Deploys a Day: Dev and Ops Cooperation at Flickr” ¹ 1 : https://www.youtube.com/watch?v=LdOe18KhtT4
  • 8. Um pouco de história Outubro 2009: Patrick Debois decide dar nome a conferência que uniria desenvolvedores e administradores de sistemas: DevOpsDays Com o intuito de criar uma hashtag memorável para a conferência no twitter, Debois encurtou o nome para: #DevOps Hoje, o DevOpsDays acontece em todo o mundo!
  • 9. DevOps Dev Team Ops Team DevOps
  • 10. O que é DevOps? Segundo Gartner¹: “DevOps represents a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture), and seeks to improve collaboration between operations and development teams.” 1: https://www.gartner.com/it-glossary/devops
  • 11. O que é DevOps? DevOps é um conjunto de melhores práticas que enfatizam a colaboração e a comunicação de profissionais de TI no ciclo de vida de aplicações e serviços, o que leva a: • Integração Contínua: Fácil transferência de controle do Desenvolvimento para Operações e Suporte • Implantação Contínua: Deploy contínuo ou tão frequente quanto possível • Feedback Contínuo: Buscar feedback das partes interessadas durante todas as fases do ciclo de vida.
  • 12. O que NÃO é DevOps? ● Um cargo ● Uma ferramenta
  • 13. Os 3 caminhos do DevOps - The Three Ways ● 1º Caminho: Princípio do Fluxo ● 2º Caminho: Princípio do FeedBack ● 3º Caminho: Princípio da Contínua Experimentação e Aprendizado
  • 14. Princípio do Fluxo (Entrega Contínua) ● Criar ambientes automatizados e repetitivos para cada estágio do pipeline ● Aplicar teste automatizado em cada estágio do pipeline ● Otimização global acima de otimização local
  • 15. Princípio do Fluxo (Entrega Contínua) ● Implantação Contínua ○ O processo de implantar uma feature, aplicação ou serviço em produção ● Entrega Contínua ○ O uso de integração contínua para criar artefatos (pacotes) instaláveis que podem ser implantados ● Integração Contínua ○ O processo de integração de componentes para uma feature, aplicação ou serviço
  • 16. Princípio do Fluxo (Consistência no Pipeline) ● Controle de Versão em Tudo ○ Histórico de alterações ○ Simplicidade para checar diferença entre versões ○ Habilidade de restaurar e reconstruir todos os elementos ○ Tudo versionado e “taggeado” ○ Alterações visíveis e auditadas por todos ○ Alterações podem ser automatizadas
  • 17. Princípio do Fluxo (Testes automatizados) ● Test Driven Development - TDD ● Acceptance Test Driven Development - ATDD ● Testes automatizados (Construção e implantação) ● Ferramentas
  • 18. Princípio do Fluxo (Testes automatizados) Testes de unidade automatizados (nível desenvolvedor) Testes de integração (nível sistemas) UI Pirâmide de testes ágil
  • 19. Princípio do Feedback ● Objetivos ○ Direita para a esquerda ○ Buscar e corrigir rapidamente ○ Feedback curto e amplificado ○ Correções contínuas
  • 20. Princípio do Feedback ● Entender e responder a todos os clientes (internos e externos) ● Amplificação do processo de feedback
  • 21. Princípio da Contínua Experimentação e Aprendizagem ● Baseado em dois princípios principais: ○ Contínua experimentação ○ Prática e repetição são pré-requisitos para a especialização ● Alocação de tempo para melhoria no trabalho diário ● Metodologia de recompensas para o time por aceitar riscos
  • 22. Pilares do DevOps - CAMS ● Cultura (Culture) ● Automação (Automation) ● Métricas (Measurement) ● Compartilhamento (Sharing)
  • 23. Cultura ● Colaboração ● Dev e Ops trabalhando juntos para entregar valor ● Indivíduos e interações mais que processos e ferramentas ● Metodologias ágeis em geral ● Scrum ● Kanban ● Lean
  • 24. Automação ● Ferramentas de automação ● Retirar passos manuais da cadeia de valor ● Infraestrutura como Código(Terraform) ● Virtualização ● Gerência de Configuração (Puppet, Chef) ● Orquestração (Fabric, Ansible) ● Git ● CI/CD(Jenkins, TravisCI) ● Microsservices ● Docker, Kubernetes ● Linguagens Interpretadas(Ruby, Python, Golang) ● SOs (Linux)
  • 25. Métricas ● Métricas de todo o ciclo ● Monitoramento/Logs ● Métricas permitem refinar o ciclo de valor ● Ferramentas APM ● Ferramentas de monitoramento (Nagios/Zabbix) ● Tratamento de logs (ELK) ● Coleta e armazenamento de métricas (Collectd/Statsd/Graphite/Graphana)
  • 26. Compartilhamento ● Feedback ● Responsabilidades compartilhadas ● Compartilhar experiências (boas ou ruins) permitem o aprendizado ● Cultura Blameless ● Compartilhar ferramentas entre todos os times ● Compartilhar código entre todos os times ● Compartilhar informações e dados ● Sempre melhorar o processo de comunicação ● Feedback constante entre os times
  • 28. Demo DevOps na prática Material disponível em: https://github.com/edsoncelio/demo-secomp2018
  • 29. Pipeline de uma aplicação em Python 1. Pull para o Github feito pelo desenvolvedor MANUAL 2. Construção da aplicação a partir do código fonte do repositório AUTO 3. Testes unitários automatizados AUTO 4. Testes de cobertura AUTO 5. Análise de performance e qualidade AUTO 6. Aprovação MANUAL 7. Upload do artefato (executável) AUTO 8. Implantação em produção e provisionamento AUTO
  • 30. Pipeline de uma aplicação em Python https://xebialabs.com/devops-diagram-generator/
  • 31. Pipeline de uma aplicação em Python
  • 32. Pipeline de uma aplicação em Python
  • 33. Pipeline de uma aplicação em Python
  • 34. Tabela periodica de ferramentas DevOps https://xebialabs.com/periodic-table-of-devops-tools/
  • 36. Recomendações de leitura The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win Uma narrativa sobre a introdução de DevOps em uma empresa fictícia - que em certos momentos farão você cogitar a possibilidade do Gene Kim ser um espião trabalhando ao seu lado devido às grandes semelhanças com qualquer empresa de TI. Será impossível não se identificar de forma assustadora com os personagens do livro e dar pequenos sorrisos ao encontrar versões "da vida real" dos mesmos.
  • 37. Recomendações de leitura The DevOps Handbook: How to Create World- Class Agility, Reliability, and Security in Technology Organizations Está com a sensação de que o projeto unicórnio do Phoenix Project é pura ficção? Não sabe como colocar o "Three Ways" em prática ou por onde começar? Este livro vai te ajudar a entender DevOps e ilustrar o case de grandes organizações completamente transformadas ou impulsionadas por DevOps, Lean, Agile, TPS e etc.
  • 38. Recomendações de leitura Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation Todas as funcionalidades foram implementadas, mas ainda serão necessárias semanas ou meses para seu software ser entregue. Como manter meu software sempre pronto para produção? Quais práticas utilizar? Quais não utilizar? Quais os benefícios? Embutir qualidade no processo de desenvolvimento e antecipar riscos é potencialmente o melhor investimento a ser feito no seu software!
  • 39. Recomendações de leitura Site Reliability Engineering: How Google Runs Production Systems Coletânea de artigos do time de SRE do Google, ilustrando a origem do termo, cultura, princípios e práticas internas, da formação de time até valiosas lições de como potencializar o feedback de sistemas em produção para o desenvolvimento - e sem deixar de lado conceitos como gerenciamento de mudança, monitoramento, planejamento de capacidade e resposta a incidentes. https://landing.google.com/sre/sre-book/toc/index.html
  • 40. Recomendações de cursos ● DevOps Foundation - Ptbr ○ https://universidade.estabil.is/courses/devops-foundation ● Introduction to DevOps: Transforming and Improving Operations - Eng ○ https://www.edx.org/course/introduction-to-devops-transforming-and-improving-operations ● Intro to DevOps - Eng ○ https://br.udacity.com/course/intro-to-devops--ud611
  • 41. Perguntas | Comentários? @tuxpilgrim on Telegram edsoncelio on Github && Linkedin Material disponível em: https://edsoncelio.github.io/devops-secompuva2018

Notas do Editor

  1. Fluxo da apresentação: Mostrar o cenário atual, desenvolver a problemática e depois introduzir a cultura devops e como ela se propõe a resolver/minimizar esses problemas
  2. Citar ferramentas de testes: Jenkins, TravisCI, SonarQube
  3. Falar sobre os tipos de testes em cada nível (usar por referência o sre book, cap sobre teste de confiabilidade) e citar a necessidade da criação de ambientes de teste
  4. is about creating the right to left feedback loops. The goal of almost any process improvement initiative is to shorten and amplify feedback loops so necessary corrections can be continually made.
  5. is about creating the right to left feedback loops. The goal of almost any process improvement initiative is to shorten and amplify feedback loops so necessary corrections can be continually made.
  6. The Third Way is about creating a culture that fosters two things: continual experimentation, taking risks and learning from failure; and understanding that repetition and practice is the prerequisite to mastery. We need both of these equally. Experimentation and taking risks are what ensures that we keep pushing to improve, even if it means going deeper into the danger zone than we’ve ever gone. And we need mastery of the skills that can help us retreat out of the danger zone when we’ve gone too far. The outcomes of the Third Way include allocating time for the improvement of daily work, creating rituals that reward the team for taking risks, and introducing faults into the system to increase resilience.
  7. Citar a relação das origens do DevOps vindo do Agile, e um dos pontos chaves é : Indivíduos e interações mais que processos e ferramentas. Citar que mesmo com os melhores times se não houver comunicação entre eles, feedback ou colaboração vai ser uma perda de time e recursos. Citar o Lean, uma das maiores inspirações pra cultura devops (redução de desperdícios para maximizar o produto de valor para o cliente), melhorar apenas partes do pipeline não é suficiente, deve-se maximizar todo o fluxo (citar o exemplo do bus: as pessoas fazem fila para entrar, mas o bus só sai quando todos os lugares reservados estão ocupados) filosofia de gestão inspirada em práticas e resultados do Sistema Toyota. Ao longo das últimas décadas, organizações de praticamente todos os setores têm usado lean como meio fundamental para transformar realidades gerenciais, potencializar resultados e melhor aproveitar o potencial humano.
  8. Blameless: ciclo de culpa Blameless é não culpar as pessoas pelas falhas, mas sim identificar no processo as falhas e corrigi-las. Sem deixar de lados as responsabilidades inerentes da função.“
  9. Explicar como funciona o fluxo do pipeline: plan -> code -> build -> test -> release -> deploy -> operate -> monitor-> volta pro inicio
  10. http://ec2-54-94-221-43.sa-east-1.compute.amazonaws.com:8080/login?from=%2F https://github.com/edsoncelio/demo-secomp2018