SlideShare uma empresa Scribd logo
1 de 40
Integração Contínua Giovanni Bassi Consultor Independente | MVP | ScrumDeveloperTrainer | ScrumTrainer giggio@giggio.net | unplugged.giggio.net | giovannibassi.com
Online @ ,[object Object]
.Net ArchitectsGrupo:		www.dotnetarchitects.netPodcast:		podcast.dotnetarchitects.netOnline: 		tinyurl.com/DotNetArchDojo:		dojo.dotnetarchitects.netTwitter: 		#DotNetArchitects@NetArchitects3
Agenda
Dev 1 Dev 2 Trunk (ou mainline)
Dev 1 Dev 2 Trunk (ou mainline)
Dev 1 Dev 2 Trunk (ou mainline)
Dev 1 Dev 2 Trunk (ou mainline)
Dev 1 Dev 2 Trunk (ou mainline)
Dev 1 Dev 2 1,2 3 1 2 1, 2, 3 Build Machine 1, 2, 3 3, 4, 5 Dev 3 Dev 4 4 4 5
Dev 1 Dev 2 Trunk (ou mainline)
Fluxo de trabalho
É uma prática, não uma ferramenta
Algumas práticas
Repositório único de código
Build automatizada
Frequência dos commits
Cada commit gera uma build... ou não?
O commit só termina quando o build é aceito Outro dev
Pending Head DelayedCommit GatedCheckin
Build Manual?
Máquina de build
Build deve ser rápida
Use testes de fumaça
Build de 2 estágios
Teste em ambiente equivalente ao de produção
Acesso fácil ao resultado da build
Informações devem irradiar
Colocando em produção
Vai ter permitir ser mais ágil ...
... e ter mais qualidade
Demo
Obrigado!

Mais conteúdo relacionado

Semelhante a Integração Contínua

Agile não é pra todo mundo: os desafios não técnicos
Agile não é pra todo mundo: os desafios não técnicosAgile não é pra todo mundo: os desafios não técnicos
Agile não é pra todo mundo: os desafios não técnicosThiago Ghisi
 
Angular + jwt + .net core
Angular + jwt + .net core Angular + jwt + .net core
Angular + jwt + .net core MVP Microsoft
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com pythonBruno Rocha
 
Kinect e Natural Users Interfaces
Kinect e Natural Users InterfacesKinect e Natural Users Interfaces
Kinect e Natural Users InterfacesMauricio Alegretti
 
Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011Mauricio Alegretti
 
Bridge e Group Task Analysis - Arquitetura de Informação
Bridge e Group Task Analysis - Arquitetura de InformaçãoBridge e Group Task Analysis - Arquitetura de Informação
Bridge e Group Task Analysis - Arquitetura de InformaçãoLuiz Agner
 
Bridge e Análise da Tarefa em equipe
Bridge e Análise da Tarefa em equipeBridge e Análise da Tarefa em equipe
Bridge e Análise da Tarefa em equipeLuiz Agner
 
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...tdc-globalcode
 
Scrum em 15 minutos
Scrum em 15 minutosScrum em 15 minutos
Scrum em 15 minutosSerge Rehem
 
Git: O que eu preciso saber para entrar no mercado? - - Marcos Echevarria - ...
Git: O que eu preciso saber para entrar no mercado? -  - Marcos Echevarria - ...Git: O que eu preciso saber para entrar no mercado? -  - Marcos Echevarria - ...
Git: O que eu preciso saber para entrar no mercado? - - Marcos Echevarria - ...Tchelinux
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsAndré Paulovich
 
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquiteturaTDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquiteturaEric Lemes
 
Apresentação CIMAC Évora 15 de abril 2021
Apresentação CIMAC Évora 15 de abril 2021Apresentação CIMAC Évora 15 de abril 2021
Apresentação CIMAC Évora 15 de abril 2021João Torres
 
Palestra Transformação Ágil - CBGPL 2019
Palestra Transformação Ágil - CBGPL 2019Palestra Transformação Ágil - CBGPL 2019
Palestra Transformação Ágil - CBGPL 2019Adriano Tavares
 
Ferramentas de Gerenciamento de Projetos
Ferramentas de Gerenciamento de ProjetosFerramentas de Gerenciamento de Projetos
Ferramentas de Gerenciamento de ProjetosVMayfair
 
Engenharia De Software e O Software Livre
Engenharia De Software e O Software LivreEngenharia De Software e O Software Livre
Engenharia De Software e O Software LivreFabio Sperotto
 
Metodologias ágeis interativas
Metodologias ágeis interativasMetodologias ágeis interativas
Metodologias ágeis interativasElton Minetto
 

Semelhante a Integração Contínua (20)

Agile não é pra todo mundo: os desafios não técnicos
Agile não é pra todo mundo: os desafios não técnicosAgile não é pra todo mundo: os desafios não técnicos
Agile não é pra todo mundo: os desafios não técnicos
 
Angular + jwt + .net core
Angular + jwt + .net core Angular + jwt + .net core
Angular + jwt + .net core
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com python
 
Scrum Experience
Scrum ExperienceScrum Experience
Scrum Experience
 
Kinect e Natural Users Interfaces
Kinect e Natural Users InterfacesKinect e Natural Users Interfaces
Kinect e Natural Users Interfaces
 
Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011
 
Bridge e Group Task Analysis - Arquitetura de Informação
Bridge e Group Task Analysis - Arquitetura de InformaçãoBridge e Group Task Analysis - Arquitetura de Informação
Bridge e Group Task Analysis - Arquitetura de Informação
 
[qCon Rio 2015] Arquitetura Incremental
[qCon Rio 2015] Arquitetura Incremental[qCon Rio 2015] Arquitetura Incremental
[qCon Rio 2015] Arquitetura Incremental
 
Bridge e Análise da Tarefa em equipe
Bridge e Análise da Tarefa em equipeBridge e Análise da Tarefa em equipe
Bridge e Análise da Tarefa em equipe
 
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...
 
Scrum em 15 minutos
Scrum em 15 minutosScrum em 15 minutos
Scrum em 15 minutos
 
Git: O que eu preciso saber para entrar no mercado? - - Marcos Echevarria - ...
Git: O que eu preciso saber para entrar no mercado? -  - Marcos Echevarria - ...Git: O que eu preciso saber para entrar no mercado? -  - Marcos Echevarria - ...
Git: O que eu preciso saber para entrar no mercado? - - Marcos Echevarria - ...
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature Flags
 
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquiteturaTDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
 
Apresentação CIMAC Évora 15 de abril 2021
Apresentação CIMAC Évora 15 de abril 2021Apresentação CIMAC Évora 15 de abril 2021
Apresentação CIMAC Évora 15 de abril 2021
 
Palestra Transformação Ágil - CBGPL 2019
Palestra Transformação Ágil - CBGPL 2019Palestra Transformação Ágil - CBGPL 2019
Palestra Transformação Ágil - CBGPL 2019
 
Ferramentas de Gerenciamento de Projetos
Ferramentas de Gerenciamento de ProjetosFerramentas de Gerenciamento de Projetos
Ferramentas de Gerenciamento de Projetos
 
Entregando Software com Valor
Entregando Software com ValorEntregando Software com Valor
Entregando Software com Valor
 
Engenharia De Software e O Software Livre
Engenharia De Software e O Software LivreEngenharia De Software e O Software Livre
Engenharia De Software e O Software Livre
 
Metodologias ágeis interativas
Metodologias ágeis interativasMetodologias ágeis interativas
Metodologias ágeis interativas
 

Mais de Giovanni Bassi

O que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosO que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosGiovanni Bassi
 
Analisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETAnalisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETGiovanni Bassi
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraGiovanni Bassi
 
Conhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetesConhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetesGiovanni Bassi
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8Giovanni Bassi
 
Engenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployEngenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployGiovanni Bassi
 
Entrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresEntrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresGiovanni Bassi
 
.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2Giovanni Bassi
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e LinuxGiovanni Bassi
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraGiovanni Bassi
 
Compartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsCompartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsGiovanni Bassi
 
Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsGiovanni Bassi
 
Um mergulho nos containers windows
Um mergulho nos containers windowsUm mergulho nos containers windows
Um mergulho nos containers windowsGiovanni Bassi
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET CoreGiovanni Bassi
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com dockerGiovanni Bassi
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Giovanni Bassi
 

Mais de Giovanni Bassi (20)

O que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosO que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviços
 
Sendo ágil com git
Sendo ágil com gitSendo ágil com git
Sendo ágil com git
 
Analisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETAnalisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NET
 
Novidades do c# 7 e 8
Novidades do c# 7 e 8Novidades do c# 7 e 8
Novidades do c# 7 e 8
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
 
Conhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetesConhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetes
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8
 
Engenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployEngenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deploy
 
Entrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresEntrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineres
 
.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
 
Compartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsCompartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.js
 
Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.js
 
O Futuro do C#: C#8
O Futuro do C#: C#8O Futuro do C#: C#8
O Futuro do C#: C#8
 
Um mergulho nos containers windows
Um mergulho nos containers windowsUm mergulho nos containers windows
Um mergulho nos containers windows
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET Core
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com docker
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
 

Integração Contínua

Notas do Editor

  1. Integração no finalHá ilusão de impedir merges bloqueando alteração do mesmo arquivo fonteMerges de comportamento são também comuns
  2. Atualização do trunk constante, mas integração no final
  3. Integração mais frequente
  4. Integração frequente
  5. Integração contínua
  6. Integração contínua com DCVS
  7. Aliás, não precisamos de ferramentas
  8. Único? E DCVS?Inclua tudoMáquina nova funciona de imediatoDiretórios de biblioteca são anti-patterns
  9. ANT, NANT, MSBuild, Make, RakePartial buildsTeste a build automaticamentePartialtests
  10. Diário no mínimoPor história?Por tarefa?Com DCVS o commit é local e é frequente.
  11. Um build pode ser feito de múltiplos commits com DCVS
  12. Pode?Pode!
  13. Ambiente padronizadoPossui o básico para compilarLembre-se que no repositório único de código está tudo“Servidor de integração contínua”?
  14. XP: build de dez minutos
  15. Virtualização ajudaMantenha o ambiente sincronizado
  16. Sistema desktop: binários em local conhecidoWeb:deploy em máquina de homologação conhecida
  17. Visual Studio
  18. TeamCity
  19. Exemplo do Juan Lopes
  20. Assim é mais fácil
  21. Rollback quando necessário
  22. Quality...