SlideShare uma empresa Scribd logo
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

Mais procurados

Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)
Samanta Cicilia
 
Praticas DevOps Com ZendServer
Praticas DevOps Com ZendServerPraticas DevOps Com ZendServer
Praticas DevOps Com ZendServer
William Felipe
 
Do regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobileDo regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobile
Lucas Carvalho
 
E so mais um campinho na tela
E so mais um campinho na telaE so mais um campinho na tela
E so mais um campinho na tela
Vandre Ramos, MSc, MBA, CSM
 
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Denis Santos
 
Migração SVN para GIT
Migração SVN para GITMigração SVN para GIT
Migração SVN para GIT
Denis Santos
 
Minas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega ContínuaMinas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega Contínua
Samanta Cicilia
 
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubDescomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Marcelo Souza Vieira
 
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-sourceDa Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Raphael Paiva
 
Da Integração à Entrega Contínua
Da Integração à Entrega ContínuaDa Integração à Entrega Contínua
Da Integração à Entrega Contínua
Marlon Bernardes
 
DevOps - Automatic Tests
DevOps - Automatic TestsDevOps - Automatic Tests
DevOps - Automatic Tests
vennecy Sobrenome
 
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
Otávio Calaça Xavier
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testes
Carol Vilas Boas
 
Teste em times ageis
Teste em times ageisTeste em times ageis
Teste em times ageis
Dover H
 
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de IntegraçãoComunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
Denis Santos
 
Desenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidadeDesenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidade
Diogo Augusto Pereira
 
Estratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocdEstratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocd
Walmyr Lima e Silva Filho
 
GXTest Para Dummies
GXTest Para DummiesGXTest Para Dummies
GXTest Para Dummies
GeneXus
 
Agilidade não é para desenvolvedores - Agile Curitiba Conference 2018
Agilidade não é para desenvolvedores - Agile Curitiba Conference 2018Agilidade não é para desenvolvedores - Agile Curitiba Conference 2018
Agilidade não é para desenvolvedores - Agile Curitiba Conference 2018
Agile_Curitiba
 
Workshop ietec Devops Testing
Workshop ietec Devops TestingWorkshop ietec Devops Testing
Workshop ietec Devops Testing
Rodrigo Oliveira, Msc, PMP
 

Mais procurados (20)

Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)
 
Praticas DevOps Com ZendServer
Praticas DevOps Com ZendServerPraticas DevOps Com ZendServer
Praticas DevOps Com ZendServer
 
Do regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobileDo regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobile
 
E so mais um campinho na tela
E so mais um campinho na telaE so mais um campinho na tela
E so mais um campinho na tela
 
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
 
Migração SVN para GIT
Migração SVN para GITMigração SVN para GIT
Migração SVN para GIT
 
Minas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega ContínuaMinas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega Contínua
 
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubDescomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
 
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-sourceDa Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
 
Da Integração à Entrega Contínua
Da Integração à Entrega ContínuaDa Integração à Entrega Contínua
Da Integração à Entrega Contínua
 
DevOps - Automatic Tests
DevOps - Automatic TestsDevOps - Automatic Tests
DevOps - Automatic Tests
 
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
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testes
 
Teste em times ageis
Teste em times ageisTeste em times ageis
Teste em times ageis
 
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de IntegraçãoComunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
 
Desenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidadeDesenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidade
 
Estratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocdEstratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocd
 
GXTest Para Dummies
GXTest Para DummiesGXTest Para Dummies
GXTest Para Dummies
 
Agilidade não é para desenvolvedores - Agile Curitiba Conference 2018
Agilidade não é para desenvolvedores - Agile Curitiba Conference 2018Agilidade não é para desenvolvedores - Agile Curitiba Conference 2018
Agilidade não é para desenvolvedores - Agile Curitiba Conference 2018
 
Workshop ietec Devops Testing
Workshop ietec Devops TestingWorkshop ietec Devops Testing
Workshop ietec Devops Testing
 

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

MIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como CódigoMIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como Código
Caio Candido
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
Graziella Bonizi
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
Ricardo Martins ☁
 
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
Felipe Freire
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
Jackson F. de A. Mafra
 
Webinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros ÁgeisWebinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros Ágeis
Rodrigo R Garcia, PMP
 
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
Edson Celio
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
Rodrigo Russo
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
Kleitor Franklint Correa Araujo
 
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeTDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
André Paulovich
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de Software
Paulo Lacerda
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
Norberto Santos
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
André Abe Vicente
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
Ramon Durães
 
Trabalhando com ALM na nuvem
Trabalhando com ALM na nuvemTrabalhando com ALM na nuvem
Trabalhando com ALM na nuvem
Adriano Bertucci
 
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
Rodrigo Marques Teixeira
 
VSTS de Ponta a Ponta
VSTS de Ponta a PontaVSTS de Ponta a Ponta
VSTS de Ponta a Ponta
Milton Camara Gomes
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deployments
Ricardo Martins ☁
 
Startups e DevOps
Startups e DevOpsStartups e DevOps
Startups e DevOps
José Bringel Filho
 
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Marcus Garcia
 

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

MIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como CódigoMIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como Código
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
 
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
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
Webinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros ÁgeisWebinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros Ágeis
 
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeTDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de Software
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Trabalhando com ALM na nuvem
Trabalhando com ALM na nuvemTrabalhando com ALM na nuvem
Trabalhando com ALM na nuvem
 
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
 
VSTS de Ponta a Ponta
VSTS de Ponta a PontaVSTS de Ponta a Ponta
VSTS de Ponta a Ponta
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deployments
 
Startups e DevOps
Startups e DevOpsStartups e DevOps
Startups e DevOps
 
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
 

Mais de Anderson Silveira

Kanban Brazil 2022
Kanban Brazil 2022Kanban Brazil 2022
Kanban Brazil 2022
Anderson Silveira
 
Manutenção ágil: Um design de processo orientado a eficácia
Manutenção ágil:  Um design de processo orientado a eficáciaManutenção ágil:  Um design de processo orientado a eficácia
Manutenção ágil: Um design de processo orientado a eficácia
Anderson Silveira
 
Conquistando a excelência em um serviço a partir de um design orientado a efi...
Conquistando a excelência em um serviço a partir de um design orientado a efi...Conquistando a excelência em um serviço a partir de um design orientado a efi...
Conquistando a excelência em um serviço a partir de um design orientado a efi...
Anderson Silveira
 
Gestão ágil: gerar valor partir otimização de fluxo
Gestão ágil: gerar valor partir otimização de fluxoGestão ágil: gerar valor partir otimização de fluxo
Gestão ágil: gerar valor partir otimização de fluxo
Anderson Silveira
 
Gestão Ágil: Gerar valor a partir da otimização de fluxo
Gestão Ágil: Gerar valor a partir da otimização de fluxoGestão Ágil: Gerar valor a partir da otimização de fluxo
Gestão Ágil: Gerar valor a partir da otimização de fluxo
Anderson Silveira
 
Produtividade com Eclipse IDE
Produtividade com Eclipse IDEProdutividade com Eclipse IDE
Produtividade com Eclipse IDE
Anderson Silveira
 
Palestra agile brazil
Palestra agile brazilPalestra agile brazil
Palestra agile brazil
Anderson Silveira
 

Mais de Anderson Silveira (7)

Kanban Brazil 2022
Kanban Brazil 2022Kanban Brazil 2022
Kanban Brazil 2022
 
Manutenção ágil: Um design de processo orientado a eficácia
Manutenção ágil:  Um design de processo orientado a eficáciaManutenção ágil:  Um design de processo orientado a eficácia
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...
Conquistando a excelência em um serviço a partir de um design orientado a efi...Conquistando a excelência em um serviço a partir de um design orientado a efi...
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 partir otimização de fluxoGestão ágil: gerar valor partir otimização de fluxo
Gestão ágil: gerar valor partir otimização de fluxo
 
Gestão Ágil: Gerar valor a partir da otimização de fluxo
Gestão Ágil: Gerar valor a partir da otimização de fluxoGestão Ágil: Gerar valor a partir da otimização de fluxo
Gestão Ágil: Gerar valor a partir da otimização de fluxo
 
Produtividade com Eclipse IDE
Produtividade com Eclipse IDEProdutividade com Eclipse IDE
Produtividade com Eclipse IDE
 
Palestra agile brazil
Palestra agile brazilPalestra agile brazil
Palestra agile brazil
 

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
  • 25. https://github.com/tj/git-extras 23 Ex. git effort -- --since='2018-10-01'
  • 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