Práticas Devops - Desenvolvimento e Operação (PDDO)
Práticas Devops - Desenvolvimento e Operação (PDDO)
Práticas Devops - Desenvolvimento e Operação (PDDO)
Contexto de negócio.
Muro da confusão.
Espiral da morte.
Débito técnico.
Contexto de Negócio
https://www.applerock.com/blog/post/faster-better-or-cheaper-pick-two
Pressão Organizacional
https://br.freepik.com/vetores-premium/fabrica-urbana-da-cidade-3d-isometrica_5088840.htm
https://www.fermaquinas.com.br/compressor-de-ar-25-pes-250-litros-alta-pressao-onix-trifasico-pressure-on25-250/p
https://www.applerock.com/blog/post/faster-better-or-cheaper-pick-two
Fluxo de Entrega de Soluções
https://www.accenture.com/us-en/blogs/blogs-reshma-shinde-devops-transformations-operations
Perspectivas diferentes em cada silos
Abordagens ágeis
https://www.accenture.com/us-en/blogs/blogs-reshma-shinde-devops-transformations-operations
Objetivos Específicos em Cada Silo
https://www.accenture.com/us-en/blogs/blogs-reshma-shinde-devops-transformations-operations
Muro da Confusão
Objetivo Objetivo
Desenvolvimento Operações
https://www.accenture.com/us-en/blogs/blogs-reshma-shinde-devops-transformations-operations
Espiral da Morte
Pressão por
entregar
funcionalidades
Aumento do Aumento da
tamanho dos fragilidade do
lotes sistema
https://www.blogcmmi.com.br/engenharia/o-preco-das-gambiarras
Espiral da Morte e Débito Técnico - Custos
Horas-extras,
impotência,fadiga U$ bilhões/ano.
burnout, cinismo,
desesperança.
https://santosbancarios.com.br/artigo/burnout-quando-o-esgotamento-profissional-vira-doenca
http://simi.org.br/noticia/Startup-incubada-na-INCIT-ajuda-a-reduzir-desperdicio-de-recurso-publico
E qual a realidade de sua empresa?
[Kim, Behr, Spafford] Kim, Gene; Behr, Kevin; Spafford, George. The
Phoenix Project: a novel about IT, DevOps and helping your business win.
IT Revolution Press, 2013.
[Bass, Weber, Zhu] Bass, Len; Weber, Ingo; Zhu, Liming. DevOps: A
Software Architect’s Perspective. Addison Wesley, 2015.
Obrigado!
[email protected]
DevOps
Junilson Pereira Souza
Conceito de DevOps
Objetivos
Conceito de DevOps.
Modelo CALMS.
Endereçar o
Muro da Confusão e
objetivos entre áreas.
https://www.accenture.com/us-en/blogs/blogs-reshma-shinde-devops-transformations-operations
Por que DevOps?
Endereçar
Espiral da Morte,
Pressão por enfatizando aspectos
entregar não funcionais
funcionalidades
Aumento do Aumento da
tamanho dos fragilidade do
lotes sistema
https://www.blogcmmi.com.br/engenharia/o-preco-das-gambiarras
Por que DevOps?
Forsgren, Nicole; Humble, Jez; Kim; Gene. Accelerate: State of DevOps 2018. Strategies for a New Economy.
O que é DevOps?
[Gene Kim]
Histórico
2008. Agile Conference. “Agile Infrastructure & Operations” (Patrick Debois).
2009. O’Reilly Velocity Conference. “10+ Deploys per Day: Dev and Ops
Cooperation at Flickr” (John Allspaw e Paul Hammond).
2009. 1º DevOpsDays. Termo “DevOps” (Patrick Debois).
2010. DevOpsDays Mountain View. Termo “CAMS” (John Willis e Damon
Edwards).
2010. Continuous Delivery.
2013. Phoenyx Project.
2016. DevOps Handbook.
Hall da Fama DevOps
Damon Edwards
Patrick Debois
John Allspaw Paul Hammond
(*)Termo criado por John Willis e Damon Edwards e incrementado por Jez Humble (L).
https://www.softserveinc.com/en-us/blog/assess-devops-structure-through-calms/
Modelo CALMS
Cultura
Respeito as pessoas
Medição
Ponte entre Dev e Ops Telemetria
Aceitar mudanças Monitoração
Lean Melhorias
Valor para cliente
Lotes pequenos
Fluxo contínuo
Reduzir WIP Sharing
Automação
Colaboração
Integração/liberação contínua Feedback
Infra como código Comunicação
Pipeline de implantação Transparência
Princípios DevOps (Three ways)
Fluxo
(Pensamento sistêmico)
Laços de feedback
Cultura de experimentação e
aprendizagem contínuos
Kim, Gene; Behr, Kevin; Spafford, George. The Phoenix Project: a novel about IT, DevOps and helping your business win. IT Revolution Press: USA
Portland, 2013.
E qual a realidade de sua empresa?
[Humble, Farley] Humble, Jez; Farley, David. Continuous Delivery: Reliable Software
Releases through Build, Test, and Deployment Automation. Addison Wesley, 2010.
[Kim, Behr, Spafford] Kim, Gene; Behr, Kevin; Spafford, George. The Phoenix Project: a
novel about IT, DevOps and helping your business win. IT Revolution Press, 2013.
[Debois] Debois, Patrick. “Agile Infrastructure & Operations”. Agile Conference. 2008.
https://docplayer.net/23874035-Agile-infrastructure-operations.html.
[Allspaw, Hammond] Allspaw, John; Hammond, Paul. O’Reilly Velocity Conference. “10+
Deploys per Day: Dev and Ops Cooperation at Flickr”.
https://www.youtube.com/watch?v=LdOe18KhtT4.
Obrigado!
[email protected]
DevOps
Junilson Pereira Souza
Princípios e Práticas
DevOps (Three ways)
Objetivos
Princípios de Cultura de
Aprendizagem e Experimentação contínuos.
Princípios DevOps (Three ways)
Fluxo
(Pensamento sistêmico)
Laços de feedback
Cultura de experimentação e
aprendizagem contínuos
Kim, Gene; Behr, Kevin; Spafford, George. The Phoenix Project: a novel about IT, DevOps and helping your business win. IT
Revolution Press: USA Portland, 2013.
Princípios de Fluxo
[Kim, Humble, Willis, Debois] Kim, Gene; Humble, Jez; Willis, John;
Debois, Patrick. The DevOps HandBook. IT Revolution Press, 2016.
[email protected]
DevOps - Kanban
Junilson Pereira Souza
Kanban – Visão Geral
Objetivos
A exigência por entregas cada vez melhores, mais
baratas e de maneira antecipada é a norma nos
tempos atuais.
Princípios Kanban.
Métricas e Previsões.
Avaliação de Maturidade.
- definição,
- gerenciamento e
- melhoria
de produtos de software.
Princípios Kanban
Gerenciar fluxo.
[Anderson]
Escalabilidade com Kanban
[Anderson]
https://www.kanbanmaturitymodel.com/
Ajuste ao Propósito do Cliente
https://www.fitterforpurpose.com/
Referências
https://www.kanbanmaturitymodel.com/.
https://www.fitterforpurpose.com/.
Obrigado!
[email protected]
DevOps - Kanban
Junilson Pereira Souza
Visualizar o Fluxo
Objetivos
A exigência por entregas cada vez melhores,
mais baratas e de maneira antecipada
impõe que um gerenciamento efetivo dos
serviços.
Quadro Kanban.
Sistema Kanban.
Itens de trabalho.
- ponto de compromisso;
- ponto de entrega.
Sistema Kanban
Requisição Triagem Preparação Implementação Testes Validação Entrega
Ponto de Ponto de
compromisso entrega
Itens de Trabalho
Exemplos de itens de trabalho que fluem no sistema:
✔ requisito;
✔ funcionalidade;
✔ solicitação de mudança;
✔ defeito;
✔ manutenção;
✔ refactoring;
✔ sugestão de melhoria;
✔ item bloqueante.
Itens de Trabalho
Tipos de item de trabalho tendem a ser definidos por:
- fonte do trabalho,
- fluxo do trabalho, ou
- tamanho do trabalho.
Ponto de Ponto de
compromisso entrega
Métricas Fundamentais Kanban
Work In Progress (WIP)
Trabalho contido entre o ponto de compromisso e o ponto de
entrega.
Lead Time
Período de tempo de um item de trabalho entre os pontos de
compromisso e entrega.
Delivery Rate
Taxa de entrega ou vazão. Razão entre WIP e Lead Time médios.
Métricas Fundamentais Kanban
WIP
Lead time
Delivery Rate
Como é feita a visualização do trabalho
em progresso em sua organização?
[email protected]
DevOps - Kanban
Junilson Pereira Souza
Limitar WIP
Objetivos
A exigência por entregas cada vez melhores,
mais baratas e de maneira antecipada
impõe que um gerenciamento efetivo dos
serviços que.
Ocupação do sistema.
Tamanho das filas e lotes.
Sistema puxado vs empurrado.
Efeitos do WIP elevado.
Lei de Little.
Cumulative Flow Diagram (CFD).
Quadro Kanban com Limite de WIP.
Ocupação do sistema
É uma visão gerencial recorrente focar em maximizar a
utilização de pessoas e recursos tentando garantir que
todos estejam ocupados e com um suprimento de
trabalho pronto de forma a não ocorrer tempo de
ociosidade.
Lead time
Utilização
https://scalingsoftwareagility.wordpress.com/2009/12/14/an-agile-illusion-how-that-nice-backlog-is-actually-decreasing-your-team%E2%80%99s-agility/
Sistema puxado vs empurrado
Introduzir e respeitar limites de WIP muda o sistema de
“empurrado” para “puxado”.
2.a?
2.b?
1
Redução da qualidade.
[Anderson]
Quadro Kanban com Limite de WIP
4 2 2
Requisição Triagem Preparação Implementação Testes Validação Entrega
Aspectos de limitação de WIP
Limites para tarefa/itens de trabalho.
Retenção de gargalos.
Alocação da capacidade.
Qual o comportamento gerencial com
relação a alocação da equipe?
[email protected]
DevOps - Kanban
Junilson Pereira Souza
Gerenciar Fluxo
Objetivos
A exigência por entregas cada vez melhores,
mais baratas e de maneira antecipada
impõe que um gerenciamento efetivo dos
serviços.
Classes de Serviço.
https://www.ontheagilepath.net/2017/03/cost-of-delay-a-key-metric.html
Classes de Serviço
Para tornar efetiva a priorização e o gerenciamento do
fluxo, é importante distinguir os itens de trabalho.
[Anderson]
Classes de Serviço
Sonya Siderova
https://getnave.com/blog/kanban-classes-of-service/
Classe de Serviço Expedição
Demandas típicas da alta gestão, com curto espaço de
tempo e valor estratégico.
[email protected]
DevOps - Kanban
Junilson Pereira Souza
Explicitar Políticas
Objetivos
A exigência por entregas cada vez melhores,
mais baratas e de maneira antecipada
impõe que um gerenciamento efetivo dos
serviços que, por sua vez, inicia-se pela
visualização do trabalho.
Capacidade Alocada.
[email protected]
DevOps - Kanban
Junilson Pereira Souza
Implementar
Laços de feedback
Objetivos
Operations Review.
Risks Review.
Replenishment Meeting.
Kanban Meeting.
Laços de Feedback
Laços de feedback são parte essencial que qualquer
processo gerenciado e são especialmente importantes
para mudanças evolucionárias.
Conjunto para
melhoria
evolucionária
Conjunto para
entrega de
serviços
Cadências do Kanban
Strategy Review
Tem por objetivo realizar a seleção dos serviços a serem
providos e para definir para tais serviços, o conceito de Fit
for Purpose.
[email protected]
DevOps - Kanban
Junilson Pereira Souza
Evoluir experimentalmente
Objetivos
A exigência por entregas cada vez melhores,
mais baratas e de maneira antecipada
impõe um gerenciamento efetivo dos
serviços.
Curva da Mudança.
Oportunidades de Melhoria.
Redução da variabilidade.
Melhoria Incremental vs Radical
Frequentemente, programas de transformação são
iniciados com a meta de mudar processos para
abordagens novas e pré-definidas.
Geralmente aqui,
ocorrem as falhas e
o processo é abortado
https://imasters.com.br/devsecops/voce-conhece-diferenca-entre-o-sistema-kanban-e-o-metodo-kanban
Oportunidades de Melhoria
Teoria das Restrições.
Redução da variabilidade.
Teoria das Restrições (TOC)
Abordagem que foca no tratamento das restrições de um
sistema como forma de evoluí-lo.
https://narendrabhandavasblog.wordpress.com/2017/03/28/critical-chain-project-management-in-toc-way/
TOC - Five Focusing Steps
1. Identifique a restrição.
4. Eleve a restrição.
https://profsilviocvalentini.blogspot.com/2013/10/gestao-da-qualidade-total-para-afinar.html
Fontes de Variabilidade
Fontes internas
Tamanho do Item de Trabalho.
Mesclas de Tipos de Item de Trabalho.
Mesclas de Classes de Serviço.
Fluxo Irregular.
Rework.
Fontes externas
Ambiguidade de Requisitos.
Requisições de Expedição.
Fluxo Irregular.
Disponibilidade do Ambiente.
Dificuldades em Agendar Atividades de Coordenação.
Pensamento Lean para Desperdício
O Pensamento Lean separa as atividades em dois grupos:
Custo de coordenação
Qualquer atividade que envolve
comunicação e agendamento (ex.:
responder e-mails, participar de reuniões
etc.)
Custo de transação
Atividades que não agregam valor e [Anderson]
servem como preparação (ex.:
planejamento de sprint, seleção de
backlog etc.)
Considere o fluxo de trabalho em sua
organização.
[email protected]
Ambiente DevOps
Junilson Pereira Souza
Serviços Externos
Objetivos
Acessar http://aws.com.
Realizar cadastro.
Acessar http://dockerhub.com.
Criar conta.
Acessar http://gitlab.com.
Criar conta.
[email protected]
Ambiente DevOps
Junilson Pereira Souza
Ambiente Local
Atividades
Configurar credenciais.
Pré requisitos:
✔
Docker e Docker Compose instalados.
✔
Git instalado (ou baixar arquivo compactado).
Ambiente Local
$ cd conchayoro/ambiente
$ nano .credenciais
$ ./init-local.sh
Ambiente DevOps
[email protected]
Ambiente DevOps
Junilson Pereira Souza
Ambiente Web
Atividades
Alterar configurações.
Ambiente Local
Acessar http://labs.play-with-docker.com
$ cd conchayoro/ambiente
$ nano .credenciais
$ nano .env
$ nano init-remoto.sh
$ ./init-remoto.sh
Ambiente DevOps
[email protected]
Práticas Técnicas DevOps
Junilson Pereira Souza
Fundação do
Pipeline de Deployment
Objetivos
Prover uma visão do conceito de pipeline.
Tópicos
Princípios de Fluxo.
Práticas.
Deployment pipeline.
Visão Geral do Ambiente.
Ações.
Princípios DevOps (Three ways)
Laços de feedback
Cultura de experimentação
contínua e aprendizagem
Kim, Gene; Behr, Kevin; Spafford, George. The Phoenix Project: a novel about IT, DevOps and helping your business win. IT
Revolution Press: USA Portland, 2013.
Princípios de Fluxo
[Kim, Humble, Willis, Debois] Kim, Gene; Humble, Jez; Willis, John;
Debois, Patrick. The DevOps HandBook. IT Revolution Press, 2016.
[email protected]
Práticas Técnicas DevOps
Junilson Pereira Souza
Controle de versões e
automação de “tudo”
Objetivos
https://techbeacon.com/devops/7-steps-choosing-right-devops-tools
Automatize “tudo”
https://jrebel.com/rebellabs/git-commands-and-best-practices-cheat-sheet/attachment/github-cheat-sheet-graphic-v1/
Automatize “tudo”
https://stackoverflow.com/questions/16205778/what-are-maven-goals-and-phases-and-what-is-their-difference
Automatize “tudo”
https://docs.docker.com/get-started/overview/
Automatize “tudo”
https://thorsten-hans.com/terraform-the-definitive-guide-for-azure-enthusiasts
Automatize “tudo”
https://geekflare.com/ansible-basics/
Quais itens de trabalho são mantidos sob
controle de versões?
[Kim, Humble, Willis, Debois] Kim, Gene; Humble, Jez; Willis, John;
Debois, Patrick. The DevOps HandBook. IT Revolution Press, 2016.
[email protected]
Práticas Técnicas DevOps
Junilson Pereira Souza
Integração Contínua
Objetivos
Integração Contínua.
Ambiente de Integração Contínua.
Maven.
Nexus.
Sonar.
Integração contínua
http://www.martinfowler.com/articles/continuousIntegration.html
Visão Geral do Ambiente
Notificações
workspace
Compile
Build
Unit test
Commit Checkout Quality
Dependências Relatório
Armazenamento
Maven
https://stackoverflow.com/questions/16205778/what-are-maven-goals-and-phases-and-what-is-their-difference
Maven
https://stackoverflow.com/questions/16205778/what-are-maven-goals-and-phases-and-what-is-their-difference
Nexus
Nexus é um gerenciador de repositórios que permite
armazenar e distribuir componentes.
https://www.sonatype.com/product-nexus-repository
Sonar
SonarQube é uma ferramenta para revisão automática de
código para detecção de defeitos, vulnerabilidades e “maus
cheiros” de código.
Sonar
https://docs.sonarqube.org/latest/architecture/architecture-integration/
Existe um processo de integração
contínua em sua organização?
[Kim, Humble, Willis, Debois] Kim, Gene; Humble, Jez; Willis, John;
Debois, Patrick. The DevOps HandBook. IT Revolution Press, 2016.
[email protected]
Práticas Técnicas DevOps
Junilson Pereira Souza
Gerenciamento de
branches
Objetivos
Versionamento semântico.
Trunk-based development.
Release branching.
Versionamento semântico
https://semver.org/
Versionamento Semântico
Dado um número de versão MAJOR.MINOR.PATCH:
https://pt.slideshare.net/DrupalizeMe/semantic-versioning-51928996/5
Versionamento Semântico
https://n8d.at/blog/how-to-version-new-sharepoint-framework-projects/semantic-version
Branching
https://trunkbaseddevelopment.com/
Trunk-based Development
Utilidade de Branching
Release branching
https://www.autorabit.com/branching-strategies-for-salesforce-version-control/
Como é feita a identificação de versões
nos projetos de sua organização?
[Kim, Humble, Willis, Debois] Kim, Gene; Humble, Jez; Willis, John;
Debois, Patrick. The DevOps HandBook. IT Revolution Press, 2016.
[email protected]
Práticas Técnicas DevOps
Junilson Pereira Souza
Testes de Software
Objetivos
Prover uma visão geral dos testes de software.
Tópicos
Definição de Testes de Software.
Objetivos dos Testes de Software.
Princípios de Testes de Software.
Dimensões de Testes de Software.
Pipeline e Testes.
Práticas técnicas de Fluxo
Nível
Momento (quando?)
Técnica
Forma (como?)
Pipeline e Testes de Software
Commit Verificação Sistema Validação Entrega
Nível (quando?)
Tipo (por que?)
Técnica (como?)
Pirâmide de Testes
Maior integração
Mais lentos Testes
Testes Manuais Manuais
Testes de
Testes de
GUI
GUI
Testes de Testes de
integração integração
Testes de
Testes de
unidade
unidade
Maior isolamento
[email protected]
Práticas Técnicas DevOps
Junilson Pereira Souza
Testes de Unidade
Objetivos
Prover uma visão do conceito de testes de unidade.
Tópicos
Contexto dos testes – pontos de falha.
Necessidade de testes de unidade.
Princípios da automação de testes.
Propriedades de um teste de unidade.
XUnit – Características comuns.
Ciclo xUnit.
Padrões xUnit.
Pipeline e Testes de Software
[email protected]
Práticas Técnicas DevOps
Junilson Pereira Souza
Testes de Software
Objetivos
Prover uma visão do conceito de pipeline.
Tópicos
Princípios de Fluxo.
Práticas.
Deployment pipeline.
Visão Geral do Ambiente.
Ações.
Pipeline e Testes de Software
[Kim, Humble, Willis, Debois] Kim, Gene; Humble, Jez; Willis, John;
Debois, Patrick. The DevOps HandBook. IT Revolution Press, 2016.
[email protected]
Práticas Técnicas DevOps
Junilson Pereira Souza
Testes de Software
Objetivos
Prover uma visão do conceito de pipeline.
Tópicos
Princípios de Fluxo.
Práticas.
Deployment pipeline.
Visão Geral do Ambiente.
Ações.
Pipeline e Testes de Software
http://lewandowski.io/2017/02/thre-levels-of-tdd-1/
Características do TDD
• Desenho dever ser orgânico, com código provendo feedback entre as decisões.
• Os desenvolvedores devem escrever seus próprios testes, porque não podem
esperar a disponibilidade de outros.
• O ambiente de desenvolvimento deve prover respostas rápidas para pequenas
mudanças.
• O desenho deve consistir em muitos componentes, altamente coesos e
fracamente acoplados.
TDD e desenho
[Kim, Humble, Willis, Debois] Kim, Gene; Humble, Jez; Willis, John;
Debois, Patrick. The DevOps HandBook. IT Revolution Press, 2016.