implementando entrega contínua- parte 2

19
Como implementar Entrega Contínua? Parte 2: Gerenciamento de Código

Upload: thoughtworks

Post on 03-Jul-2015

867 views

Category:

Technology


3 download

DESCRIPTION

Gerenciamento de Código.

TRANSCRIPT

Page 1: Implementando Entrega Contínua- Parte 2

Como implementar Entrega Contínua?

Parte 2: Gerenciamento de Código

Page 2: Implementando Entrega Contínua- Parte 2

Como gerenciar

meu Codebase?

Page 3: Implementando Entrega Contínua- Parte 2

Como gerenciar meu Codebase?

Trunk

Time Laranja

Time Verde

Como os diferentes fluxos de desenvolvimento…

Page 4: Implementando Entrega Contínua- Parte 2

Trunk

1 1

2

1

2

3

1

4

2

3

4

5

1

2

3

1 1 1 1

2 2 2

3 3

4

Como os diferentes fluxos de desenvolvimento… podem se integrar…

Branch onde o Time Laranja faz seus merges

Branch onde o Time Verde faz seus merges

Como gerenciar meu Codebase?

Page 5: Implementando Entrega Contínua- Parte 2

Trunk

1 1

2

1

2

3

1

4

2

3

4

5

1

2

3

1 1 1 1

2 2 2

3 3

4

1 2

3 4 4 3

5 1 2

…sem provocar conflitos de merge típicos de Feature-branching? Como gerenciar

meu Codebase?

Page 6: Implementando Entrega Contínua- Parte 2

Trunk

1

2

3 4 5

1 2 3 4

Com Integração Contínua

1 2 1 3

2 2

4 3 4 5

Como gerenciar meu Codebase?

Page 7: Implementando Entrega Contínua- Parte 2

Algumas práticas de Integação Contínua:

Todos fazem commits para o trunk pelo menos uma vez por dia

Evitar criação de branches

Testes Automatizados são executados para cada commit

http://martinfowler.com/articles/continuousIntegration.html

Como gerenciar meu Codebase?

Page 8: Implementando Entrega Contínua- Parte 2

O que se faz com Codebases grandes? Como gerenciar meu Codebase?

Page 9: Implementando Entrega Contínua- Parte 2

O que se faz com Codebases grandes? Como gerenciar meu Codebase? Modularização Micro-Serviços

Page 10: Implementando Entrega Contínua- Parte 2

Como eu

entrego

trabalho

incompleto?

Page 11: Implementando Entrega Contínua- Parte 2

Usando Feature Toggles

[featureToggles]wobblyFoobars: trueflightyForkHandles: false <toggle name=wobblyFoobars>

... various UI elements</toggle>

forkHandle = (featureConfig.isOn(‘flightlyForkHandles)) ? new FlightyForkHander(aCandle) : new ForkHandler(aCandle)

Config File some.jsp

other.java

Como eu entrego trabalho incompleto?

Page 12: Implementando Entrega Contínua- Parte 2

Diretrizes para Feature Toggles

Só use quando necessário

Preferencialmente, a funcionalidade deve ser escondida pelo toggle

Remova os toggles quando a funcionalidade estiver ativa e estável

Como eu entrego trabalho incompleto?

Page 13: Implementando Entrega Contínua- Parte 2

Use Branches por abstração Como eu entrego trabalho incompleto?

Aplicação

Biblioteca

Nova Biblioteca

http://paulhammant.com/blog/branch_by_abstraction.html/

Page 14: Implementando Entrega Contínua- Parte 2

Como eu entrego trabalho incompleto?

Aplicação

Interface

Bliblioteca

Nova Biblioteca

implementa

Use Branches por abstração

Page 15: Implementando Entrega Contínua- Parte 2

Como eu entrego trabalho incompleto?

Aplicação Interface

Biblioteca

Nova Biblioteca

implementa

Use Branches por abstração

Page 16: Implementando Entrega Contínua- Parte 2

Como eu entrego trabalho incompleto?

Aplicação

Interface

Nova Biblioteca

implementa

Use Branches por abstração

Page 17: Implementando Entrega Contínua- Parte 2

Como eu entrego trabalho incompleto?

Aplicação

Nova Biblioteca

Use Branches por abstração

Page 18: Implementando Entrega Contínua- Parte 2

Tudo sobre Pipelines…

Fique ligado na Parte 3…

Page 19: Implementando Entrega Contínua- Parte 2

Implemente um ótimo produto mais rapidamente. Go automatiza e simplifica o ciclo build-test-release do seu produto para entrega contínua sem preocupação.

Saiba Mais Veja como Go pode ajudar na sua jornada de Entrega Contínua

goContinuous Delivery