Como aplicar práticas de DevOps em um sistema
monolítico de mais de 15 anos
Trilha DevOps
Anderson Silveira
Agile Coach | KMP | CSM - CPQD
01
Quem somos nós?
anderson.silveira.br /andersonsilveira /andersonsilvra
Gustavo Brandão
Tech Lead - CPQD
gustavobrandao07 /gustavobrandao07 /gustavolbrandao
#SomosCPqD
Transformação
digital
Conecte-se ao
novo
2
O monolítico de mais de 15 anos...
3
No começo...
“Desenvolver um produto para gerenciar a planta de rede externa e interna dos grandes
fornecedores de telecom”
4
❏ ~ 1 Milhão de linhas de código
❏ ~ Tabelas com mais de 10 Milhões de registros
❏ ~ 11 equipes
❏ ~ 150 pessoas envolvidas
❏ ~ Geração de build de aproximadamente 2 horas
5
Departamentalização sem
um propósito comum
SILOS OPERACIONAIS
- Falta de uma meta compartilhada
- Dificuldade de comunicação
- Carência de visão do todo
- Baixa colaboração
- Política social é predominante
- Métricas de vaidade
6
7
Custo de Transação
“Custo de transação pode ser
observado toda vez que encontramos
um esforço de enviar um lote de
trabalho de uma fase para outra”
Don Reinertsen
Fluxo de valor e o custo de transação
Implementação Teste Homologação Produção
Custos de transação
● Geração da build
● Validação da
funcionalidade
● Instalação manual
● Geração da release
● Instalação manual
● Regressão de
testes
● GMUD
8
Identificação do custo de transação
Fase Testes de
Aceitação
Lorem ipsum dolor sit amet,
consectetur adipiscing. Lorem
ipsum dolor sit.
Fase Testes
Sistêmicos em QA
Lorem ipsum dolor sit amet,
consectetur adipiscing. Lorem
ipsum dolor sit.
Fase
Implementação
Lorem ipsum dolor sit amet,
consectetur adipiscing. Lorem
ipsum dolor sit.
Fase
Implementação
Lorem ipsum dolor sit amet,
consectetur adipiscing. Lorem
ipsum dolor sit.
Início dos Testes de
aceitação manual
Instalação manual dos
ambientes de QA
Validação manual em
ambiente local após
geração da versão de teste
do produto
1h /dia
1h /dia
Geração de uma versão
para testar a funcionalidade
Entrega de funcionalidade para as equipes
de teste sofria com um enorme custo entre
o momento de conclusão da
implementação e o início dos testes.
Conclusão da codificação
da funcionalidade
Fase
Implementação
2h /dia
9
10
Dívida técnica é instaurada
11
Sintomas
● Responsividade ineficiente aos clientes
● Aumento nos tempos gerando atraso nas
entregas
● Muitos defeitos, alto acoplamento
● Aumento do custo do desenvolvimento
● Baixa performance do time
● Baixa colaboração entre as áreas de
desenvolvimento e operação
Reviravolta
Adoção das prática devops para otimização do entrega de valor.
12
13
Quebra de silos e otimização de fluxo de valor
14
Definição
“Um conjunto de práticas para integração entre as equipes de
desenvolvimento de softwares e operações com a adoção de processos
automatizados para produção rápida e segura de aplicações e serviços. ”
Fonte: https://www.4linux.com.br/o-que-e-devops
15
“colaboração…automatização…agilidade” ?
MUITAS ferramentas envolvidas...
16
“Todo mundo tem um
plano até tomar o
primeiro soco”
Mike Tyson
17Fonte: https://www.linkedin.com/pulse/devops-toolchain-ferramentas-de-apoio-ti-modo-2-otoniel-ribeiro/
18
Reduzindo o custo de transação...
Reduzindo o custo de transação
19
Fase
Implementação
Conclusão da codificação
da funcionalidade
Fase Testes de
Aceitação
Início dos Testes de
Aceitação
Uso da Pipeline de Entrega para
validação de qualidade e
instalação nos ambientes
Instalação
~25 minutos
20
Pipeline… definindo o conceito
21Fonte: Pipeline de implementação DevOps acelera feedback e reduz conflitos entre os times - Antonio Muniz
(SulAmerica)
22
Como construir o pipeline de um monolito?
23
Em 90% das vezes o
desenvolvimento era em torno de 4
grandes componentes
https://github.com/tj/git-extras 23
Ex. git effort -- --since='2018-10-01'
24
Desconstruindo o monolito...
Componente A
Componente B
Componente C
Dev
Commit
stage
Code
Analysis
Database
validation
Acceptance
Tests
Deploy to
QA
Deploy to
Homolog
Artifact
Testador OperaçãoDev
Promove a build para o
Testador
Arquiva o
artefato
Marca o card com n° da
pipeline
Recorte conceitual
Job full compiler &
get environment
AWS
instance
AWS
instance
Continuous Integration Continuous Delivery
Atualização completa
Infra as code
26
Commit
Dev
Continuous Integration
Continuous Delivery
Inspeção contínua de código (Tratamento de vazamentos)
https://blog.sonarsource.com/water-leak-changes-the-game-for-technical-debt-management/ 27
● Foram selecionados os principais
componentes e módulos, para
inspeção contínua.
● Sem mutirão! A estratégia foi focar
nos novos códigos ou unidades de
código que serão alteradas na
próxima release
● Fazer ajustes frequentes no quality
gate para garantir que o
vazamento seja controlado.
Ganhos com a automation
pipeline
● Redução do custo de transação
95% na liberação para QA e
Homologação
● Redução de recurso em disco ao
disponibilizar no Artifactory
● Promove colaboração e confiança
entre as áreas
● Frequência de entrega 10x maior
28
Custo de transação
por dia
Recurso em
disco
Confiança de
instalação
Frequência
de entrega
por dia
ANTES ~4 horas >2Gb Baixa 1
DEPOIS ~20 min < 2Gb Alta > 10
29
Melhoria da qualidade interna...
30
Dados de Qualidade Interna 2018/2019
Inspeção contínua: Melhoria na qualidade
31
Dados de tratamento de chamados: 2017/2018/2019
Redução de Downtime em produção
RESUMO
Principais ganhos com as práticas DevOps aplicadas nas
equipes
32
REDUÇÃO DE FILAS
Visualização do fluxo
de valor, facilitou a
redução de filas de
trabalho
REDUÇÃO DO CUSTO
DE TRANSAÇÃO
Com uso da pipeline
reduzimos o custo de
transação de 90%
AUMENTO DA
COLABORAÇÃO
Confiança nas entregas
nas entregas geraram
proximidade e empatia
entre as equipes de
desenvolvimento e
operação
GANHOS NA QUALIDADE
DE INTERNA
Diminuição
significativamente dos
chamados em produção
e downtime
33
Obrigado!
Curtiu?

Mais conteúdo relacionado

PDF
Extreme Programming (XP) Metodologia Ágil
PPTX
Workshop Gestão de projetos: Da teoria à pratica
PDF
Apresentacao dev ops
PDF
XP como aliado para conter a complexidade de um monolito de mais de 15 anos
PDF
MIT DevOps IaC - Infra como Código
PDF
DevOps & Docker com a stack Microsoft
PDF
Falando sobre DevOps no azure
PDF
DevOps 101
Extreme Programming (XP) Metodologia Ágil
Workshop Gestão de projetos: Da teoria à pratica
Apresentacao dev ops
XP como aliado para conter a complexidade de um monolito de mais de 15 anos
MIT DevOps IaC - Infra como Código
DevOps & Docker com a stack Microsoft
Falando sobre DevOps no azure
DevOps 101

Semelhante a Como aplicar práticas DevOps em um sistema monólito (20)

PDF
O que é DevOps? Introdução à abordagem pela IBM
PDF
Phprs meetup - deploys automatizados com gitlab
PPTX
Webinar DevOps - Encontros Ágeis
PPTX
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
PDF
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
PDF
Automação de testes - uma introdução sobre estratégias
PDF
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
PDF
DevOps - Entrega Contínua de Software
PPTX
Tendências e Dicas para o Desenvolvimento de Software
PPTX
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
PPTX
Keynote Visual Studio Summit 2016
PPTX
Trabalhando com ALM na nuvem
PPTX
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
PPTX
VSTS de Ponta a Ponta
PPTX
Iac & DevOps no Azure: Automatizando deployments
PPTX
Startups e DevOps
PPTX
Vamos falar de DevOps?
PPTX
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
PPTX
ASP.Net Performance – A pragmatic approach - Luis Paulino
PDF
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
O que é DevOps? Introdução à abordagem pela IBM
Phprs meetup - deploys automatizados com gitlab
Webinar DevOps - Encontros Ágeis
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
Automação de testes - uma introdução sobre estratégias
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
DevOps - Entrega Contínua de Software
Tendências e Dicas para o Desenvolvimento de Software
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
Keynote Visual Studio Summit 2016
Trabalhando com ALM na nuvem
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
VSTS de Ponta a Ponta
Iac & DevOps no Azure: Automatizando deployments
Startups e DevOps
Vamos falar de DevOps?
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
ASP.Net Performance – A pragmatic approach - Luis Paulino
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Anúncio

Mais de Anderson Silveira (7)

PDF
Kanban Brazil 2022
PDF
Manutenção ágil: Um design de processo orientado a eficácia
PDF
Conquistando a excelência em um serviço a partir de um design orientado a efi...
PDF
Gestão ágil: gerar valor partir otimização de fluxo
PDF
Gestão Ágil: Gerar valor a partir da otimização de fluxo
ODP
Produtividade com Eclipse IDE
PDF
Palestra agile brazil
Kanban Brazil 2022
Manutenção ágil: Um design de processo orientado a eficácia
Conquistando a excelência em um serviço a partir de um design orientado a efi...
Gestão ágil: gerar valor partir otimização de fluxo
Gestão Ágil: Gerar valor a partir da otimização de fluxo
Produtividade com Eclipse IDE
Palestra agile brazil
Anúncio

Como aplicar práticas DevOps em um sistema monólito

  • 1. Como aplicar práticas de DevOps em um sistema monolítico de mais de 15 anos Trilha DevOps
  • 2. Anderson Silveira Agile Coach | KMP | CSM - CPQD 01 Quem somos nós? anderson.silveira.br /andersonsilveira /andersonsilvra Gustavo Brandão Tech Lead - CPQD gustavobrandao07 /gustavobrandao07 /gustavolbrandao
  • 4. O monolítico de mais de 15 anos... 3
  • 5. No começo... “Desenvolver um produto para gerenciar a planta de rede externa e interna dos grandes fornecedores de telecom” 4
  • 6. ❏ ~ 1 Milhão de linhas de código ❏ ~ Tabelas com mais de 10 Milhões de registros ❏ ~ 11 equipes ❏ ~ 150 pessoas envolvidas ❏ ~ Geração de build de aproximadamente 2 horas 5
  • 7. Departamentalização sem um propósito comum SILOS OPERACIONAIS - Falta de uma meta compartilhada - Dificuldade de comunicação - Carência de visão do todo - Baixa colaboração - Política social é predominante - Métricas de vaidade 6
  • 8. 7 Custo de Transação “Custo de transação pode ser observado toda vez que encontramos um esforço de enviar um lote de trabalho de uma fase para outra” Don Reinertsen
  • 9. Fluxo de valor e o custo de transação Implementação Teste Homologação Produção Custos de transação ● Geração da build ● Validação da funcionalidade ● Instalação manual ● Geração da release ● Instalação manual ● Regressão de testes ● GMUD 8
  • 10. Identificação do custo de transação Fase Testes de Aceitação Lorem ipsum dolor sit amet, consectetur adipiscing. Lorem ipsum dolor sit. Fase Testes Sistêmicos em QA Lorem ipsum dolor sit amet, consectetur adipiscing. Lorem ipsum dolor sit. Fase Implementação Lorem ipsum dolor sit amet, consectetur adipiscing. Lorem ipsum dolor sit. Fase Implementação Lorem ipsum dolor sit amet, consectetur adipiscing. Lorem ipsum dolor sit. Início dos Testes de aceitação manual Instalação manual dos ambientes de QA Validação manual em ambiente local após geração da versão de teste do produto 1h /dia 1h /dia Geração de uma versão para testar a funcionalidade Entrega de funcionalidade para as equipes de teste sofria com um enorme custo entre o momento de conclusão da implementação e o início dos testes. Conclusão da codificação da funcionalidade Fase Implementação 2h /dia 9
  • 12. 11 Sintomas ● Responsividade ineficiente aos clientes ● Aumento nos tempos gerando atraso nas entregas ● Muitos defeitos, alto acoplamento ● Aumento do custo do desenvolvimento ● Baixa performance do time ● Baixa colaboração entre as áreas de desenvolvimento e operação
  • 13. Reviravolta Adoção das prática devops para otimização do entrega de valor. 12
  • 14. 13 Quebra de silos e otimização de fluxo de valor
  • 15. 14 Definição “Um conjunto de práticas para integração entre as equipes de desenvolvimento de softwares e operações com a adoção de processos automatizados para produção rápida e segura de aplicações e serviços. ” Fonte: https://www.4linux.com.br/o-que-e-devops
  • 17. 16 “Todo mundo tem um plano até tomar o primeiro soco” Mike Tyson
  • 19. 18 Reduzindo o custo de transação...
  • 20. Reduzindo o custo de transação 19 Fase Implementação Conclusão da codificação da funcionalidade Fase Testes de Aceitação Início dos Testes de Aceitação Uso da Pipeline de Entrega para validação de qualidade e instalação nos ambientes Instalação ~25 minutos
  • 22. 21Fonte: Pipeline de implementação DevOps acelera feedback e reduz conflitos entre os times - Antonio Muniz (SulAmerica)
  • 23. 22 Como construir o pipeline de um monolito?
  • 24. 23 Em 90% das vezes o desenvolvimento era em torno de 4 grandes componentes
  • 26. 24 Desconstruindo o monolito... Componente A Componente B Componente C
  • 27. Dev Commit stage Code Analysis Database validation Acceptance Tests Deploy to QA Deploy to Homolog Artifact Testador OperaçãoDev Promove a build para o Testador Arquiva o artefato Marca o card com n° da pipeline Recorte conceitual Job full compiler & get environment AWS instance AWS instance Continuous Integration Continuous Delivery Atualização completa Infra as code
  • 29. Inspeção contínua de código (Tratamento de vazamentos) https://blog.sonarsource.com/water-leak-changes-the-game-for-technical-debt-management/ 27 ● Foram selecionados os principais componentes e módulos, para inspeção contínua. ● Sem mutirão! A estratégia foi focar nos novos códigos ou unidades de código que serão alteradas na próxima release ● Fazer ajustes frequentes no quality gate para garantir que o vazamento seja controlado.
  • 30. Ganhos com a automation pipeline ● Redução do custo de transação 95% na liberação para QA e Homologação ● Redução de recurso em disco ao disponibilizar no Artifactory ● Promove colaboração e confiança entre as áreas ● Frequência de entrega 10x maior 28 Custo de transação por dia Recurso em disco Confiança de instalação Frequência de entrega por dia ANTES ~4 horas >2Gb Baixa 1 DEPOIS ~20 min < 2Gb Alta > 10
  • 32. 30 Dados de Qualidade Interna 2018/2019 Inspeção contínua: Melhoria na qualidade
  • 33. 31 Dados de tratamento de chamados: 2017/2018/2019 Redução de Downtime em produção
  • 34. RESUMO Principais ganhos com as práticas DevOps aplicadas nas equipes 32 REDUÇÃO DE FILAS Visualização do fluxo de valor, facilitou a redução de filas de trabalho REDUÇÃO DO CUSTO DE TRANSAÇÃO Com uso da pipeline reduzimos o custo de transação de 90% AUMENTO DA COLABORAÇÃO Confiança nas entregas nas entregas geraram proximidade e empatia entre as equipes de desenvolvimento e operação GANHOS NA QUALIDADE DE INTERNA Diminuição significativamente dos chamados em produção e downtime