SlideShare uma empresa Scribd logo
1 de 44
Integração contínua
Rumo a automação e ao DEVOPS
Fabiano Guilherme de Souza
Líder equipe Configuração e Qualidade - SESIS
Sun Certified Enterprise Architect for J2EE Platform I, Microsoft Certified Solution
Developer - MCSD .NET, ITIL Foundation. (SCJP, SCAJ, SCBCD, SCWCD, MCP,
MCP+SB, MCAD)
Especialista em engenharia de software
Analista Judiciário com especialidade em TI no TRT da 3ª Região. Possui mais de 20
anos de experiência na área de TI, atuando em empresas privadas e públicas
como Fiat, Unisys, Unimed-BH e Serpro.
Novembro 2021
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 2
AGENDA
Integração contínua
▪ O que é integração contínua
▪ Como fazer e benefícios
▪ Práticas de integração contínua
▪ CI como um do pilares do DEVOPS
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 3
CONCEITOS
Integração contínua
A Integração contínua originalmente é um conceito que lida com:
● Integração de software
● Repetição automatizada da integração
No conceito do Sommmerville:
“Assim que o trabalho de uma tarefa é concluído, ele é integrado ao sistema
como um todo...”
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 4
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 5
CONCEITOS
Integração contínua
▪ Conceito original do Extreme Programming popularizado pelo Martin Fowler a
partir de 2000
Integração Contínua é uma prática de desenvolvimento
de software onde membros de um time integram seu
trabalho frequentemente, geralmente cada pessoa
integra ao menos diariamente - levando a múltiplas
integrações por dia. Cada integração é verificada por um
build automatizado (incluindo testes) para detectar erros
de integração o mais rápido possível.
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 6
CONCEITOS
Integração contínua
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 7
CONCEITOS
Integração contínua
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 8
CONCEITOS
Integração contínua
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 9
Passos para chegar lá
▪ Código fonte gerenciado e centralizado
● Commits diários para o branch principal
▪ Processo de build automatizado
▪ Suíte de testes automatizada
▪ Melhor versão do sistema e mais completa sempre disponível
▪ Acompanhar (e atuar!!!!) nas métricas geradas pelo build como padrão
de codificação, análise de dependência, complexidade, débitos
técnicos
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 10
Benefícios
▪ Redução de riscos / previsibilidade
▪ Builds reproduzíveis
▪ Detecção rápida de bugs
● Bugs são cumulativos
▪ Deploy frequente
● recursos liberados mais rápidos
● feedback mais rápido
● ajuda na integração usuário / desenvolvimento
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 11
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 12
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 13
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 14
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 15
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 16
Princípios básicos
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 17
Princípios básicos: construir software a cada mudança
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 18
Princípios básicos: construir software a cada mudança
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 19
Continuous Testing
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 20
Continuous Inspection
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 21
Continuous Inspection
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 22
Continuous Inspection
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 23
Continuous Inspection
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 24
Continuous Feedback
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 25
Continuous Feedback
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 26
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 27
Princípios da entrega de software
▪ Criar um processo de liberação de software repetível e confiável
▪ Automatizar (quase) tudo
▪ Mantenha tudo versionado
● Documentos de requisitos
● Scripts de testes
● Casos de testes automatizados
● Scripts de criação de banco de dados
● Bibliotecas
● Documentação técnica
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 28
Como melhorar a entrega
▪ Fuja dos antipatterns
● Deploy manual de software
● Deploy num ambiente similar a produção apenas quando o
desenvolvimento está completo
● Gerência manual das configurações dos ambientes de produção
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 29
Princípios da entrega de software
▪ Se machuca, faça mais frequentemente e antecipe a dor
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 30
Princípios da entrega de software
▪ Pronto significa liberado
▪ Todos são responsáveis pelo processo de Entrega
▪ Melhoria contínua
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 31
Princípios da entrega de software
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 32
Princípios da entrega de software
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 33
Princípios da entrega de software
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 34
Continuous Integration, Delivery and Deployment
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 35
Processo deploy tradicional
Manual
Cópia de arquivos
Ação de vários papéis
Não reproduzível
Baixa rastreabilidade
Rollback manual
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 36
Processo deploy com CI e práticas de Devops
Automatizado
GitOps
Desenvolvedor controla o deploy nos diversos ambientes
Reproduzível
Alta rastreabilidade
Rollback automático
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 37
Segurança
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 38
Segurança
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 39
Segurança
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 40
Segurança
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 41
Tudo é uma jornada (nas estrelas?)
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 42
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 43
Conclusão
▪ Integração contínua:
● Um dos pilares do desenvolvimento de software atual
com Devops
● Facilita e tem sinergia com diversas práticas de
engenharia de software
● Melhora o desempenho da organização e deixa o
desenvolvedor mais feliz
Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade
Novembro/21 44
Referências e perguntas

Mais conteúdo relacionado

Mais procurados

Padrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwarePadrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwareEmanuel Poletto
 
O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408Conviso Application Security
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareMarcelo Fleury
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebEr Galvão Abbott
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informaçãoFernando Gomes Chaves
 
Modelos de ciclo de vida de software
Modelos de ciclo de vida de softwareModelos de ciclo de vida de software
Modelos de ciclo de vida de softwareYuri Garcia
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...Emmanuel Neri
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de softwarediha36
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareEduardo Santos
 
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...Luiz Ladeira
 
Engenharia De Software Baseada Em Componentes
Engenharia De Software Baseada Em ComponentesEngenharia De Software Baseada Em Componentes
Engenharia De Software Baseada Em Componentesigordsm
 
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUM
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUMArtigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUM
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUMBruno Motta Rego
 
Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Alessandro Almeida
 
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...Janynne Gomes
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlabJackson F. de A. Mafra
 

Mais procurados (20)

Entendendo o Ciclo de Desenvolvimento Seguro
Entendendo o Ciclo de Desenvolvimento SeguroEntendendo o Ciclo de Desenvolvimento Seguro
Entendendo o Ciclo de Desenvolvimento Seguro
 
Padrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwarePadrões no Desenvolvimento de Software
Padrões no Desenvolvimento de Software
 
O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de Software
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
 
Segurança nos ciclos de desenvolvimento de softwares
Segurança nos ciclos de desenvolvimento de softwaresSegurança nos ciclos de desenvolvimento de softwares
Segurança nos ciclos de desenvolvimento de softwares
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informação
 
Modelos de ciclo de vida de software
Modelos de ciclo de vida de softwareModelos de ciclo de vida de software
Modelos de ciclo de vida de software
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de Software
 
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
 
Engenharia De Software Baseada Em Componentes
Engenharia De Software Baseada Em ComponentesEngenharia De Software Baseada Em Componentes
Engenharia De Software Baseada Em Componentes
 
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUM
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUMArtigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUM
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUM
 
Dss 3
Dss 3Dss 3
Dss 3
 
Aula01 introducao
Aula01 introducaoAula01 introducao
Aula01 introducao
 
Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)
 
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 

Semelhante a CI automação

[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e AzureJaqueline Ramos
 
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline....Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...iMasters
 
WBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiávelWBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiávelAlan Braz
 
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 SoftwareNorberto Santos
 
DevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsDevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsQaladies
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsJaqueline Ramos
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = ProdutividadeAdriano Bertucci
 
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ódigoCaio Candido
 
GABC 2018 - Hands-On: DevOps, CI e CD
GABC 2018 - Hands-On: DevOps, CI e CDGABC 2018 - Hands-On: DevOps, CI e CD
GABC 2018 - Hands-On: DevOps, CI e CDJaqueline Ramos
 
Avelor JUL2011
Avelor  JUL2011Avelor  JUL2011
Avelor JUL2011Avelor
 
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égiasKleitor Franklint Correa Araujo
 
Sap Comunity Day Brasil 2009 - SAP NWDI
Sap Comunity Day Brasil 2009 - SAP NWDISap Comunity Day Brasil 2009 - SAP NWDI
Sap Comunity Day Brasil 2009 - SAP NWDImarlosimon
 
Modelos de Processo de Software - INCREMENTAL
Modelos de Processo de Software - INCREMENTALModelos de Processo de Software - INCREMENTAL
Modelos de Processo de Software - INCREMENTALVitória Pavan
 
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!Jaqueline Ramos
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftGraziella Bonizi
 

Semelhante a CI automação (20)

[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
 
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline....Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
 
PCI DSS e Metodologias Ágeis
PCI DSS e Metodologias ÁgeisPCI DSS e Metodologias Ágeis
PCI DSS e Metodologias Ágeis
 
WBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiávelWBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiável
 
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
 
Iso 12207
Iso 12207Iso 12207
Iso 12207
 
DevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsDevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps Projects
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps Projects
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
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
 
GABC 2018 - Hands-On: DevOps, CI e CD
GABC 2018 - Hands-On: DevOps, CI e CDGABC 2018 - Hands-On: DevOps, CI e CD
GABC 2018 - Hands-On: DevOps, CI e CD
 
Avelor JUL2011
Avelor  JUL2011Avelor  JUL2011
Avelor JUL2011
 
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
 
Sap Comunity Day Brasil 2009 - SAP NWDI
Sap Comunity Day Brasil 2009 - SAP NWDISap Comunity Day Brasil 2009 - SAP NWDI
Sap Comunity Day Brasil 2009 - SAP NWDI
 
Modelos de Processo de Software - INCREMENTAL
Modelos de Processo de Software - INCREMENTALModelos de Processo de Software - INCREMENTAL
Modelos de Processo de Software - INCREMENTAL
 
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
 
SAPO Session: Continuous Integration
SAPO Session: Continuous IntegrationSAPO Session: Continuous Integration
SAPO Session: Continuous Integration
 
DatabaseCI_ALMSummit2014
DatabaseCI_ALMSummit2014DatabaseCI_ALMSummit2014
DatabaseCI_ALMSummit2014
 

CI automação

  • 1. Integração contínua Rumo a automação e ao DEVOPS Fabiano Guilherme de Souza Líder equipe Configuração e Qualidade - SESIS Sun Certified Enterprise Architect for J2EE Platform I, Microsoft Certified Solution Developer - MCSD .NET, ITIL Foundation. (SCJP, SCAJ, SCBCD, SCWCD, MCP, MCP+SB, MCAD) Especialista em engenharia de software Analista Judiciário com especialidade em TI no TRT da 3ª Região. Possui mais de 20 anos de experiência na área de TI, atuando em empresas privadas e públicas como Fiat, Unisys, Unimed-BH e Serpro. Novembro 2021
  • 2. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 2 AGENDA Integração contínua ▪ O que é integração contínua ▪ Como fazer e benefícios ▪ Práticas de integração contínua ▪ CI como um do pilares do DEVOPS
  • 3. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 3 CONCEITOS Integração contínua A Integração contínua originalmente é um conceito que lida com: ● Integração de software ● Repetição automatizada da integração No conceito do Sommmerville: “Assim que o trabalho de uma tarefa é concluído, ele é integrado ao sistema como um todo...”
  • 4. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 4
  • 5. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 5 CONCEITOS Integração contínua ▪ Conceito original do Extreme Programming popularizado pelo Martin Fowler a partir de 2000 Integração Contínua é uma prática de desenvolvimento de software onde membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra ao menos diariamente - levando a múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível.
  • 6. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 6 CONCEITOS Integração contínua
  • 7. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 7 CONCEITOS Integração contínua
  • 8. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 8 CONCEITOS Integração contínua
  • 9. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 9 Passos para chegar lá ▪ Código fonte gerenciado e centralizado ● Commits diários para o branch principal ▪ Processo de build automatizado ▪ Suíte de testes automatizada ▪ Melhor versão do sistema e mais completa sempre disponível ▪ Acompanhar (e atuar!!!!) nas métricas geradas pelo build como padrão de codificação, análise de dependência, complexidade, débitos técnicos
  • 10. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 10 Benefícios ▪ Redução de riscos / previsibilidade ▪ Builds reproduzíveis ▪ Detecção rápida de bugs ● Bugs são cumulativos ▪ Deploy frequente ● recursos liberados mais rápidos ● feedback mais rápido ● ajuda na integração usuário / desenvolvimento
  • 11. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 11
  • 12. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 12
  • 13. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 13
  • 14. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 14
  • 15. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 15
  • 16. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 16 Princípios básicos
  • 17. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 17 Princípios básicos: construir software a cada mudança
  • 18. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 18 Princípios básicos: construir software a cada mudança
  • 19. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 19 Continuous Testing
  • 20. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 20 Continuous Inspection
  • 21. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 21 Continuous Inspection
  • 22. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 22 Continuous Inspection
  • 23. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 23 Continuous Inspection
  • 24. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 24 Continuous Feedback
  • 25. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 25 Continuous Feedback
  • 26. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 26
  • 27. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 27 Princípios da entrega de software ▪ Criar um processo de liberação de software repetível e confiável ▪ Automatizar (quase) tudo ▪ Mantenha tudo versionado ● Documentos de requisitos ● Scripts de testes ● Casos de testes automatizados ● Scripts de criação de banco de dados ● Bibliotecas ● Documentação técnica
  • 28. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 28 Como melhorar a entrega ▪ Fuja dos antipatterns ● Deploy manual de software ● Deploy num ambiente similar a produção apenas quando o desenvolvimento está completo ● Gerência manual das configurações dos ambientes de produção
  • 29. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 29 Princípios da entrega de software ▪ Se machuca, faça mais frequentemente e antecipe a dor
  • 30. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 30 Princípios da entrega de software ▪ Pronto significa liberado ▪ Todos são responsáveis pelo processo de Entrega ▪ Melhoria contínua
  • 31. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 31 Princípios da entrega de software
  • 32. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 32 Princípios da entrega de software
  • 33. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 33 Princípios da entrega de software
  • 34. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 34 Continuous Integration, Delivery and Deployment
  • 35. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 35 Processo deploy tradicional Manual Cópia de arquivos Ação de vários papéis Não reproduzível Baixa rastreabilidade Rollback manual
  • 36. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 36 Processo deploy com CI e práticas de Devops Automatizado GitOps Desenvolvedor controla o deploy nos diversos ambientes Reproduzível Alta rastreabilidade Rollback automático
  • 37. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 37 Segurança
  • 38. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 38 Segurança
  • 39. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 39 Segurança
  • 40. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 40 Segurança
  • 41. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 41 Tudo é uma jornada (nas estrelas?)
  • 42. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 42
  • 43. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 43 Conclusão ▪ Integração contínua: ● Um dos pilares do desenvolvimento de software atual com Devops ● Facilita e tem sinergia com diversas práticas de engenharia de software ● Melhora o desempenho da organização e deixa o desenvolvedor mais feliz
  • 44. Seção de apoio ao desenvolvimento - SESIS - Configuração e qualidade Novembro/21 44 Referências e perguntas

Notas do Editor

  1. sair de silos
  2. 2007
  3. Jez Humble: levante a mão quem faz integração contínua, a maioria levanta a mão Por favor mantenham as mãos para cima se todos no time fazem commit e pushes para o branch principal diariamente. metade baixam as mãos Então ele pergunta se a cada commit temo um build e testes automatizado. De novo baixam metade das mãos Finalmente ele pergunta se um build falhar, volta ao verde dentro de 10 minutos Apenas algumas mãos ficam levantadas. Esses passaram no teste de certificação.
  4. Avoid getting broken code: sempre trabalhar localmente com código que um build foi concluído com sucesso
  5. Run faster tests first: testes unitários, testes de componentes, testes sistêmicos Make component test repeatable: uso de mocks Limit test cases to one asset: não colocar várias Asserções num único teste
  6. Harold
  7. SAST – Static Application Security Testing - caixa branca
  8. Frequência de deploy Lead time for changes - The amount of time it takes a commit to get into production. MTTR - Mean time to restore service - tempo de reação a uma falha na produção Change failure rate - how often deployment failures occur in production that require immediate remedy (particularity, rollbacks).