Continuous Delivery that doesn't hurt
madrid-rb@madridrb
Sergio Gil@porras
A [git] workflow
DISCLAIMER I
Esto va más de workflow que de git. Aceptamos mercurial como animal de compañía
DISCLAIMER II + RETO
Intentar no citar explicitamente un comando de git en toda la charla
yo / nosotros
Hacemos productos
Hacemos productosy los productos duran para siempre
Nuestros productos son complejos
Nuestros productos son complejos
Nos encanta el TDD
Nuestros productos son complejos
Nos encanta el TDDNos encanta el feedback temprano
Nuestros productos son complejos
Nos encanta el TDDNos encanta el feedback temprano
Siempre probamos en un entorno de staging
“Máquina de convertir café
en código”
“Máquina de convertir café
en código”hamburguesas
“Máquina de convertir café
en código”features
hamburguesas
“Máquina de convertir café
en código”featuresútiles
hamburguesas
“Máquina de convertir café
en código”featuresútiles
en producción
hamburguesas
“Máquina de convertir café
en código”featuresútiles
en producción
hamburguesas
idea implícita: tiempo
T
U
Feature A en una semana
Feature A en un mes
Featu
re A
hoy
Featu
re A
en 1
mes
Feature A hoy
Feature A hoy
Feature A + B en un mes
Feature A hoy
Feature A + B en un mes
Feature A hoy + Feature B en un mes
KANBAN
WIP (≤ X)
master
Feature A Task 1/3
master
Feature A Task 1/3
Feature B Task 1/2
master
Feature A Task 1/3
Feature B Task 1/2
Feature A Task 2/3
master
Feature A Task 1/3
Feature B Task 1/2
Feature A Task 2/3
Feature B Task 2/2
master
Feature A Task 1/3
Feature B Task 1/2
Feature A Task 2/3
Feature B Task 2/2B ya está, ¡a desplegar!
master
Feature A Task 1/3
Feature B Task 1/2
Feature A Task 2/3
Feature B Task 2/2B ya está, ¡a desplegar!
¡NEGATIVO, Señor!A no está lista
master
Problema del despliegue retrasado que retrasa el despliegue
Problema del despliegue retrasado que retrasa el despliegue
o
Problema del despliegue retrasado que retrasa el despliegue
oEspiral de mierda
Si mientras esperamos que A esté lista empezamos C, ¡el problema
puede durar para siempre!
Problema del despliegue retrasado que retrasa el despliegue
oEspiral de mierda
¡OK, usemos ramas!
master
master
feat_a
master
feat_afeat_b
master
feat_afeat_b
master
feat_afeat_b
master
feat_afeat_b
➜ staging
master
feat_afeat_b
➜ staging OK
master
feat_afeat_b
➜ staging OK ➜ producción
master
feat_afeat_b
➜ staging OK ➜ producción
master
feat_afeat_b
➜ staging OK ➜ producción
master
feat_afeat_b
➜ staging OK
➜ staging
➜ producción
master
feat_afeat_b
➜ staging OK
➜ staging OK
➜ producción
master
feat_afeat_b
➜ staging OK
➜ staging OK
➜ producción
➜ producción
master
master
feat_a
master
feat_afeat_b
master
feat_afeat_b
master
feat_afeat_b
master
feat_afeat_b
➜ staging
master
feat_afeat_b
➜ staging FAIL
master
feat_afeat_b
➜ staging FAIL
master
feat_afeat_b
➜ staging FAIL
master
feat_afeat_b
➜ staging FAIL
master
feat_afeat_b
➜ staging FAIL
➜ staging
master
feat_afeat_b
➜ staging FAIL
➜ staging OK
master
feat_afeat_b
➜ staging FAIL
➜ staging OK ➜ producción
master
feat_afeat_b
➜ staging FAIL
➜ staging OK ➜ producción
¡NO!
master
feat_afeat_b
➜ staging FAIL
➜ staging OK ➜ producción
¡NO! la feature A está rota
stablemaster
stable
feat_a
master
stable
feat_afeat_b
master
stable
feat_afeat_b
master
stable
feat_afeat_b
master
stable
feat_afeat_b
➜ staging
master
stable
feat_afeat_b
➜ staging
master
FAIL
stable
feat_afeat_b
➜ staging
master
FAIL
stable
feat_afeat_b
➜ staging
master
FAIL
stable
feat_afeat_b
➜ staging
➜ staging
master
FAIL
stable
feat_afeat_b
➜ staging
➜ stagingOK
master
FAIL
stable
feat_afeat_b
➜ staging
➜ stagingOK
master
FAIL
stable
feat_afeat_b
➜ staging
➜ stagingOK
➜ producción
master
FAIL
stable
feat_afeat_b
➜ staging
➜ stagingOK
➜ producción
master
FAIL
feat_c
stable
feat_afeat_b
➜ staging
➜ stagingOK
➜ producción
master
FAIL
feat_c
stable
feat_afeat_b
➜ staging
➜ stagingOK
➜ producción
master
FAIL
feat_c
stable
feat_afeat_b
➜ staging
➜ stagingOK
➜ producción
master
FAIL
➜ staging
feat_c
stable
feat_afeat_b
➜ staging
➜ stagingOK
➜ producción
master
FAIL
➜ stagingOK
feat_c
stable
feat_afeat_b
➜ staging
➜ stagingOK
➜ producción
master
FAIL
➜ stagingOK
feat_c
stable
feat_afeat_b
➜ staging
➜ stagingOK
➜ producción
➜ producción
master
FAIL
➜ stagingOK
feat_c
BONUS POINTS & PRO TIPS
BONUS POINTS & PRO TIPS
recuerda publicar topic branches
BONUS POINTS & PRO TIPS
recuerda publicar topic branchestaguea tus releases
BONUS POINTS & PRO TIPS
recuerda publicar topic branchestaguea tus releases
rebasa tus ramas privadas sobre stable
BONUS POINTS & PRO TIPS
recuerda publicar topic branchestaguea tus releases
rebasa tus ramas privadas sobre stablenunca rebases o enmiendes commits publicados
BONUS POINTS & PRO TIPS
recuerda publicar topic branchestaguea tus releases
rebasa tus ramas privadas sobre stablenunca rebases o enmiendes commits publicados
--no-ff para una historia detallada
BONUS POINTS & PRO TIPS
recuerda publicar topic branchestaguea tus releases
rebasa tus ramas privadas sobre stablenunca rebases o enmiendes commits publicados
--no-ff para una historia detalladareset: corte por donde tenga que cortar
PROBLEMAS
PROBLEMAS
A veces la integración da trabajo
PROBLEMAS
Escala mal tanto en horizontal como en vertical
A veces la integración da trabajo
PROBLEMAS
Escala mal tanto en horizontal como en vertical
A veces la integración da trabajo
WIN
gracias
madrid-rb@madridrb
Sergio Gil@porras
Top Related