Cas 2011 Integración continua vs controlada
-
Upload
psluaces -
Category
Technology
-
view
3.683 -
download
3
description
Transcript of Cas 2011 Integración continua vs controlada
![Page 1: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/1.jpg)
![Page 2: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/2.jpg)
Integración continua vs controlada
pablo santos luaces
@psluaces
@plasticscm
![Page 3: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/3.jpg)
Sobre mi• Plastic SCM - founder• Coder• Blog writer… (a ratos) ;)
@psluaces
![Page 4: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/4.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/5.jpg)
Hay una guerra ahí fuera
![Page 6: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/6.jpg)
Y hay que elegir un bando
![Page 7: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/7.jpg)
Una guerra ahí fuera
![Page 8: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/8.jpg)
Una guerra … de bandos… ;)
![Page 9: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/9.jpg)
De opciones
![Page 10: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/10.jpg)
Las opciones son• Integración continua
• Integración controlada
![Page 11: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/11.jpg)
Las opciones son• Integración continua (piedra angular de agile)
• Integración controlada
![Page 12: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/12.jpg)
Las opciones son• Integración continua != integración constante (!)
• Integración controlada
![Page 13: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/14.jpg)
Qué es «mainline» development?• Trabajar en una única rama…
![Page 15: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/15.jpg)
Qué es «mainline» development?• Trabajar en una única rama…
• ¿Es bueno?
![Page 16: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/16.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/17.jpg)
¿Cómo reconocer «mainline»?• Fácil… sólo hay una rama…
0
![Page 18: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/18.jpg)
¿Cómo reconocer «mainline»?• Fácil… sólo hay una rama…
![Page 19: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/19.jpg)
¿Cómo reconocer «mainline»?• Fácil… sólo hay una rama…
![Page 20: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/20.jpg)
¿Cómo reconocer «mainline»?• Fácil… sólo hay una rama…
![Page 21: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/21.jpg)
¿Cómo reconocer «mainline»?• Fácil… sólo hay una rama…
![Page 22: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/22.jpg)
¿Cómo reconocer «mainline»?• Si tu desarrollo tiene esta pinta… es lineal,
mainline, no paralelo!
![Page 23: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/23.jpg)
Esto es desarrollo lineal
![Page 24: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/24.jpg)
Y esto es desarrollo paralelo
![Page 25: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/25.jpg)
Si no hay ramas… no es paralelo
![Page 26: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/26.jpg)
Refuerzo positivo…
![Page 27: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/27.jpg)
La batalla entre diferentes visiones
![Page 28: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/28.jpg)
De dónde viene todo esto?
![Page 29: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/29.jpg)
Ventajas del desarrollo paralelo• Romper la dependencia de tareas
![Page 30: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/30.jpg)
Ventajas del desarrollo paralelo• Romper la dependencia de tareas
![Page 31: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/31.jpg)
Ventajas del desarrollo paralelo• Puntos de partida conocidos – do not shoot a moving target!!!
![Page 32: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/32.jpg)
Ventajas del desarrollo paralelo• Puntos de partida conocidos
![Page 33: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/33.jpg)
Ventajas del desarrollo paralelo• Reforzar la creación de baselines estables
![Page 34: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/34.jpg)
Ventajas del desarrollo paralelo• Código siempre bajo control
![Page 35: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/35.jpg)
![Page 36: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/36.jpg)
Ventajas del desarrollo paralelo• Detener la «bug spreading»
![Page 37: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/37.jpg)
Ventajas del desarrollo paralelo• Detener la «bug spreading»
![Page 38: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/38.jpg)
Ventajas del desarrollo paralelo• Trazabilidad mejorada
![Page 39: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/39.jpg)
Ventajas del desarrollo paralelo• Keep the mainline … pristine
![Page 40: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/40.jpg)
![Page 41: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/41.jpg)
Integración continua – mainline glorificado
• The «poorman’s approach»
![Page 42: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/42.jpg)
Refuerzo positivo…
![Page 43: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/43.jpg)
Lo opuesto solía ser «big bang»
![Page 44: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/44.jpg)
Lo opuesto solía ser «big bang»
![Page 45: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/45.jpg)
Y para arreglarlo, integración frecuente
![Page 46: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/46.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/47.jpg)
El futuro de CI
![Page 48: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/48.jpg)
El futuro de CI
![Page 49: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/49.jpg)
![Page 50: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/50.jpg)
![Page 51: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/51.jpg)
Feature branches
![Page 52: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/52.jpg)
¿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](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/53.jpg)
Integración controlada
http://drdobbs.com/architecture-and-design/205917960
![Page 54: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/54.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/55.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/56.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/57.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/58.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/59.jpg)
Distributed branch per task
![Page 60: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/60.jpg)
![Page 61: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/61.jpg)
Conclusión - Alternativas
![Page 62: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/62.jpg)
Conclusión – Que no te limite
tu SCM
![Page 63: Cas 2011 Integración continua vs controlada](https://reader035.fdocuments.es/reader035/viewer/2022062319/5561846ed8b42a71658b45c9/html5/thumbnails/63.jpg)
pablo santos luaces@psluaces
@plasticscm