cas 2011 integración continua vs controlada

63

Upload: psluaces

Post on 24-May-2015

3.682 views

Category:

Technology


3 download

DESCRIPTION

Integración continua vs controlada. Los pros y contras de por qué usar CI y por qué "feature branches" (branch per task) es el futuro de la integración continua. Presentada en CAS2011 en Castellón.

TRANSCRIPT

Page 1: Cas 2011 Integración continua vs controlada
Page 2: Cas 2011 Integración continua vs controlada

Integración continua vs controlada

pablo santos luaces

@psluaces

@plasticscm

Page 3: Cas 2011 Integración continua vs controlada

Sobre mi• Plastic SCM - founder• Coder• Blog writer… (a ratos) ;)

@psluaces

Page 4: Cas 2011 Integración continua vs controlada

En el show de hoy…• La guerra de la integración

• Qué método es más «agile»?

Page 5: Cas 2011 Integración continua vs controlada

Hay una guerra ahí fuera

Page 6: Cas 2011 Integración continua vs controlada

Y hay que elegir un bando

Page 7: Cas 2011 Integración continua vs controlada

Una guerra ahí fuera

Page 8: Cas 2011 Integración continua vs controlada

Una guerra … de bandos… ;)

Page 9: Cas 2011 Integración continua vs controlada

De opciones

Page 10: Cas 2011 Integración continua vs controlada

Las opciones son• Integración continua

• Integración controlada

Page 11: Cas 2011 Integración continua vs controlada

Las opciones son• Integración continua (piedra angular de agile)

• Integración controlada

Page 12: Cas 2011 Integración continua vs controlada

Las opciones son• Integración continua != integración constante (!)

• Integración controlada

Page 13: Cas 2011 Integración continua vs controlada

Pero antes un paso atrás…

SCM es importante en «agile» porque:• Collective code ownership• Continuous Integration• Mapeo entre tareas y código• Coordinación del equipo

Page 14: Cas 2011 Integración continua vs controlada

Qué es «mainline» development?• Trabajar en una única rama…

Page 15: Cas 2011 Integración continua vs controlada

Qué es «mainline» development?• Trabajar en una única rama…

• ¿Es bueno?

Page 16: Cas 2011 Integración continua vs controlada

Qué es «mainline» development?• Trabajar en una única rama…

• ¿Es bueno?

• Sí, si no hay otra opción … :P

Page 17: Cas 2011 Integración continua vs controlada

¿Cómo reconocer «mainline»?• Fácil… sólo hay una rama…

0

Page 18: Cas 2011 Integración continua vs controlada

¿Cómo reconocer «mainline»?• Fácil… sólo hay una rama…

Page 19: Cas 2011 Integración continua vs controlada

¿Cómo reconocer «mainline»?• Fácil… sólo hay una rama…

Page 20: Cas 2011 Integración continua vs controlada

¿Cómo reconocer «mainline»?• Fácil… sólo hay una rama…

Page 21: Cas 2011 Integración continua vs controlada

¿Cómo reconocer «mainline»?• Fácil… sólo hay una rama…

Page 22: Cas 2011 Integración continua vs controlada

¿Cómo reconocer «mainline»?• Si tu desarrollo tiene esta pinta… es lineal,

mainline, no paralelo!

Page 23: Cas 2011 Integración continua vs controlada

Esto es desarrollo lineal

Page 24: Cas 2011 Integración continua vs controlada

Y esto es desarrollo paralelo

Page 25: Cas 2011 Integración continua vs controlada

Si no hay ramas… no es paralelo

Page 26: Cas 2011 Integración continua vs controlada

Refuerzo positivo…

Page 27: Cas 2011 Integración continua vs controlada

La batalla entre diferentes visiones

Page 28: Cas 2011 Integración continua vs controlada

De dónde viene todo esto?

Page 29: Cas 2011 Integración continua vs controlada

Ventajas del desarrollo paralelo• Romper la dependencia de tareas

Page 30: Cas 2011 Integración continua vs controlada

Ventajas del desarrollo paralelo• Romper la dependencia de tareas

Page 31: Cas 2011 Integración continua vs controlada

Ventajas del desarrollo paralelo• Puntos de partida conocidos – do not shoot a moving target!!!

Page 32: Cas 2011 Integración continua vs controlada

Ventajas del desarrollo paralelo• Puntos de partida conocidos

Page 33: Cas 2011 Integración continua vs controlada

Ventajas del desarrollo paralelo• Reforzar la creación de baselines estables

Page 34: Cas 2011 Integración continua vs controlada

Ventajas del desarrollo paralelo• Código siempre bajo control

Page 35: Cas 2011 Integración continua vs controlada
Page 36: Cas 2011 Integración continua vs controlada

Ventajas del desarrollo paralelo• Detener la «bug spreading»

Page 37: Cas 2011 Integración continua vs controlada

Ventajas del desarrollo paralelo• Detener la «bug spreading»

Page 38: Cas 2011 Integración continua vs controlada

Ventajas del desarrollo paralelo• Trazabilidad mejorada

Page 39: Cas 2011 Integración continua vs controlada

Ventajas del desarrollo paralelo• Keep the mainline … pristine

Page 40: Cas 2011 Integración continua vs controlada
Page 41: Cas 2011 Integración continua vs controlada

Integración continua – mainline glorificado

• The «poorman’s approach»

Page 42: Cas 2011 Integración continua vs controlada

Refuerzo positivo…

Page 43: Cas 2011 Integración continua vs controlada

Lo opuesto solía ser «big bang»

Page 44: Cas 2011 Integración continua vs controlada

Lo opuesto solía ser «big bang»

Page 45: Cas 2011 Integración continua vs controlada

Y para arreglarlo, integración frecuente

Page 46: Cas 2011 Integración continua vs controlada

El futuro de CI• How can builds get faster?

• How can broken builds be prevented?

http://codicesoftware.blogspot.com/2008/03/continuous-integration-future.html

Page 47: Cas 2011 Integración continua vs controlada

El futuro de CI

Page 48: Cas 2011 Integración continua vs controlada

El futuro de CI

Page 49: Cas 2011 Integración continua vs controlada
Page 50: Cas 2011 Integración continua vs controlada
Page 51: Cas 2011 Integración continua vs controlada

Feature branches

Page 52: Cas 2011 Integración continua vs controlada

¿Qué es una tarea?• ¿Usáis un issue tracker?• Cada entrada en el issue tracker

Nota: las tareas son cortas…http://www.plasticscm.com/infocenter/quick-start/intro-task-driven-development.aspx

Page 53: Cas 2011 Integración continua vs controlada

Integración controlada

http://drdobbs.com/architecture-and-design/205917960

Page 54: Cas 2011 Integración continua vs controlada

main line

task 1140

task 1120

task 1121

baseline

Developer

baseline

Developer

task 1129

rebased

ReleaseEngineer

ReleaseEngineer

Integration Server For each taskto check whether it isvalid or not

Alternativas de integración

• El integrador hace merge• El integrador ejecuta tests• El integrador empaqueta y etiqueta

Page 55: Cas 2011 Integración continua vs controlada

main line

task 1140

task 1120

task 1121

baseline

Developer

baseline

Developer

task 1129

rebased

ReleaseEngineer

Integration Server

Integration is just labelling and packing and running specific integration tests

Alternativas• Los desarrolladores hacen merge y ejecutan tests• El integrador empaqueta y etiqueta…• Evita mini-big-bangs• Recorta tiempos de compilación

Page 56: Cas 2011 Integración continua vs controlada

main line

task 1140

task 1120

task 1121

baseline

Developer

baseline

Developer

task 1129

rebased

ReleaseEngineer

Integration Server

Integration is just promoting, labelling and packing and running specific integration tests

integration linePr

omot

e to

the

mai

nlin

e

Alternativas de integración

• Desarrolladores hacen merge y ejecutan tests• La línea principal se mantiene limpia

Page 57: Cas 2011 Integración continua vs controlada

En el mundo distribuido – integration manager workflow

1. The project maintainer pushes to their public repository.

2. A contributor clones that repository and makes changes.

3. The contributor pushes to their own public copy.

4. The contributor sends the maintainer an e-mail asking them to pull changes.

5. The maintainer adds the contributor’s repo as a remote and merges locally.

6. The maintainer pushes merged changes to the main repository.

Page 58: Cas 2011 Integración continua vs controlada

Dictator…

1. Regular developers work on their topic branch and rebase their work on top of master. The master branch is that of the dictator.

2. Lieutenants merge the developers’ topic branches into their master branch.

3. The dictator merges the lieutenants’ master branches into the dictator’s master branch.

4. The dictator pushes their master to the reference repository so the other developers can rebase on it.

Page 59: Cas 2011 Integración continua vs controlada

Distributed branch per task

Page 60: Cas 2011 Integración continua vs controlada
Page 61: Cas 2011 Integración continua vs controlada

Conclusión - Alternativas

Page 62: Cas 2011 Integración continua vs controlada

Conclusión – Que no te limite

tu SCM

Page 63: Cas 2011 Integración continua vs controlada

pablo santos luaces@psluaces

@plasticscm