15
Integración Integración Continua Continua AltNetHispano AltNetHispano Vicenç Garcia (@vgaltes) http:// Carlos Peix (@carlospeix) http://carlospeix.com/ Andres Vettori (@andresvettori) http://weblogs.asp.net/andresv Jose F. Romaniello (@jfroma) http:// jfromaniello.blogspot.com/

Integración Continua AltNetHispano Vicenç Garcia (@vgaltes) Carlos Peix (@carlospeix) Andres Vettori

Embed Size (px)

Citation preview

Page 1: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

Integración Integración ContinuaContinuaAltNetHispanoAltNetHispano

Vicenç Garcia (@vgaltes)http://devnettips.blogspot.com/

Carlos Peix (@carlospeix)http://carlospeix.com/Andres Vettori (@andresvettori)http://weblogs.asp.net/andresvJose F. Romaniello (@jfroma)http://jfromaniello.blogspot.com/

Page 2: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

22

AgendaAgenda

Integración automatizadaIntegración automatizada ElementosElementos Políticas de releasePolíticas de release Políticas de branchingPolíticas de branching

Page 3: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

33

Integración automatizadaIntegración automatizada

¿Por qué?¿Por qué?– Reduce riesgosReduce riesgos– Reduce trabajo repetitivoReduce trabajo repetitivo– Evita pérdida de tiempo corriendo Evita pérdida de tiempo corriendo

pruebaspruebas– Facilita tener el software “siempre listo”Facilita tener el software “siempre listo”– Maximiza la visibilidad sin esfuerzoMaximiza la visibilidad sin esfuerzo– Genera confianza en el equipo y el clienteGenera confianza en el equipo y el cliente

Page 4: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

44

Integración automatizadaIntegración automatizada

¿Cómo? ¿Cuándo?¿Cómo? ¿Cuándo?– Al principio del proyectoAl principio del proyecto– Primero lo mas sencillo, luego agregoPrimero lo mas sencillo, luego agrego– Sobre un servidor dedicado (Fuera VS!!!)Sobre un servidor dedicado (Fuera VS!!!)– Todos monitorean (CCTray o similar)Todos monitorean (CCTray o similar)

Page 5: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

55

ElementosElementos

Source controlSource control Build automationBuild automation Build scheduler (CruiseControl.NET, Build scheduler (CruiseControl.NET,

TeamCity, Hudson, TFS)TeamCity, Hudson, TFS) Políticas de branchingPolíticas de branching Practicas relacionadasPracticas relacionadas

Page 6: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

ElementosElementos

66

Page 7: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

77

Source controlSource control

Elegir la herramienta correctaElegir la herramienta correcta– SubversionSubversion– Git o Hg (distribuidos)Git o Hg (distribuidos)– TFSTFS– src-2010-01-03.zip no es source control!src-2010-01-03.zip no es source control!– Source Safe ya dejémoslo tranquilo!Source Safe ya dejémoslo tranquilo!

Elegir una política de branching Elegir una política de branching adecuada a la política de releaseadecuada a la política de release

Page 8: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

88

Build automationBuild automation

Es la parte mas importante!Es la parte mas importante! NAnt, MSBuild, Maven, PowerShell?NAnt, MSBuild, Maven, PowerShell? Todas las herramientas se parecenTodas las herramientas se parecen Todas son extensiblesTodas son extensibles Elijan la que mas les gusteElijan la que mas les guste Ejemplo…Ejemplo…

Page 9: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

99

Build schedulerBuild scheduler

CruiseControl.NET, TFS, TeamCity, HudsonCruiseControl.NET, TFS, TeamCity, Hudson Por lo menos tiene que saber leer el Por lo menos tiene que saber leer el

repositorio y disparar el buildrepositorio y disparar el build Casi todosCasi todos

– muestran estadísticasmuestran estadísticas– muestran el resultado del build bien detalladomuestran el resultado del build bien detallado– avisan cuando algo salió malavisan cuando algo salió mal

Ejemplo…Ejemplo…

Page 10: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

1010

Prácticas relacionadasPrácticas relacionadas

Commits frecuentesCommits frecuentes Colective Code OwnershipColective Code Ownership Commits frecuentesCommits frecuentes Unit testingUnit testing Commits frecuentesCommits frecuentes Test para los bugsTest para los bugs Commits frecuentesCommits frecuentes

Page 11: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

1111

Políticas de branchingPolíticas de branching

Lo tradicional: trunk/tags/branchesLo tradicional: trunk/tags/branches Dependen de la política de releaseDependen de la política de release

– Software que se distribuye: Software que se distribuye: potencialmente se requiere dar soporte a potencialmente se requiere dar soporte a mas de una versiónmas de una versión

– Software que se ofrece como servicio Software que se ofrece como servicio (SaaS): suele mantenerse una única (SaaS): suele mantenerse una única versiónversión

Page 12: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

Un ejemploUn ejemplo

1212

Page 13: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

Otro ejemploOtro ejemplo

1313

Page 14: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

ReferenciasReferencias

http://martinfowler.com/bliki/FeatureBranch.htmlhttp://martinfowler.com/bliki/FeatureBranch.html http://www.cmcrossroads.com/bradapp/acme/branching/branch-policy.htmlhttp://www.cmcrossroads.com/bradapp/acme/branching/branch-policy.html http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m1/index.jsp?topic=/http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m1/index.jsp?topic=/

com.ibm.rational.clearcase.cc_proj.doc/c_bntr_plnbrstrat.htmcom.ibm.rational.clearcase.cc_proj.doc/c_bntr_plnbrstrat.htm http://martinfowler.com/articles/continuousIntegration.htmlhttp://martinfowler.com/articles/continuousIntegration.html http://integratebutton.com/http://integratebutton.com/

1414

Page 15: Integración Continua AltNetHispano Vicenç Garcia (@vgaltes)  Carlos Peix (@carlospeix)  Andres Vettori

1515

PreguntaPreguntass??

Vicenç Garcia (@vgaltes)http://devnettips.blogspot.com/

Carlos Peix (@carlospeix)http://carlospeix.com/Andres Vettori (@andresvettori)http://weblogs.asp.net/andresvJose F. Romaniello (@jfroma)http://jfromaniello.blogspot.com/