entrega contínua en la práctica
TRANSCRIPT
![Page 1: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/1.jpg)
Entrega Continua en la prácticaGeykel Moreno @geykel
Carlos Fuentes @educharlief
Capacitación
![Page 2: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/2.jpg)
El proyectoy sus desafíos...
![Page 3: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/3.jpg)
El cliente
● Empresa de servicios financieros○ Banca de inversión○ Broker-dealer○ Investigación○ Operaciones (Contabilidad, finanzas,
etc.)● Sucursales en varios países● Giro de negocios complejo
![Page 4: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/4.jpg)
La calidad es importante
Nuestras aplicaciones se utilizan para:
● Cumplimientos legales○ En varias jurisprudencias
● Verificación de clientes● Cálculos de pagos financieros● Detección y aviso de discrepancias
![Page 5: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/5.jpg)
Nuestro requerimiento
● Construir nuevos requerimientos RÁPIDAMENTE
● Respuesta a prioridades CAMBIANTES● Mantener ALTA la calidad
¡y hacerlo con un equipo de tamaño limitado!
![Page 6: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/6.jpg)
Escenario inicialel antes...
![Page 7: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/7.jpg)
Arquitectura monolíticaInicialmente:
● Fácil de desarrollar● Fácil de desplegar● Fácil de escalar
A medida que va creciendo la aplicación y el equipo:
● Difícil de entender● Modularidad se rompe con el tiempo● IDE sobrecargado, baja productividad● Obstaculiza el escalado del desarrollo● Difícil de escalar
![Page 8: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/8.jpg)
Con el paso del tiempo (~5 años)
Aplicaciones a mantener:
● Hemos ido desde 5 aplicaciones a más de 40 aplicaciones, servicios y componentes
Tamaño del equipo:
● Bastante estable entre 12 y 16 desarrolladores, QA’s y BA’s
![Page 9: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/9.jpg)
Entrega Continua
“es una disciplina de desarrollo de software donde construyes software de tal manera que puede ser entregado/desplegado a producción en cualquier momento” - Martin Fowler
![Page 10: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/10.jpg)
¿Por qué adoptar?
● Reduce el riesgo del despliegue: pequeños cambios
● Progreso creíble: trabajo terminado medido por (el desarrollador dice que está terminado) es menos creíble que desplegado en producción
● Retroalimentación del usuario final
![Page 11: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/11.jpg)
Reduce el tamaño de la entrega
![Page 12: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/12.jpg)
Estás haciendo entrega continua cuando:
● El software es desplegable durante todo su ciclo de vida
● El equipo prioriza mantener el software desplegable sobre trabajar en nuevas funcionalidades
● Retroalimentación rápida y automatizada sobre la disponibilidad de los sistemas para producción en cualquier momento que alguien realice un cambio en ellos
● Realizar despliegues “push-button” de cualquier versión del software en cualquier momento hacia cualquier entorno bajo demanda
![Page 13: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/13.jpg)
“Una prueba clave es que un ejecutivo del negocio solicite un despliegue de una
versión del software y no cunda el pánico”- Martin Fowler
![Page 14: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/14.jpg)
Principios
● Crear proceso repetitivo y confiable para la entrega de software
● Automatizar todo lo posible● Mantener todo almacenado en un sistema
de control de versiones● Listo significa entregado● Todos son responsable de la entrega
![Page 15: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/15.jpg)
Prácticas
● Compila tus artefactos sólo una vez● Pruebas automatizadas a todos los niveles● Realiza los despliegues de la misma manera
en todos los entornos● ‘Smoke test’ todos los despliegues● Mantener ambientes similares● Si algo falla, para todo
![Page 16: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/16.jpg)
¡Automatiza casi todo!
![Page 17: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/17.jpg)
Deployment pipeline
![Page 18: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/18.jpg)
Entrega continua != Despliegue continuo
Despliegue continuo significa que cada cambio va a través del pipeline y es automáticamente puesto en producción (resultando en varios despliegues en el día)
Entrega continua significa que estás en la capacidad de realizar despliegues frecuentes pero puedes optar por no hacerlo (los negocios usualmente prefieren una frecuencia de despliegue más lenta)
![Page 19: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/19.jpg)
Confianza en el código
![Page 20: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/20.jpg)
Programación en parejas
![Page 21: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/21.jpg)
Pruebas
![Page 22: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/22.jpg)
BDD y TDD
![Page 23: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/23.jpg)
Integración continua
● Usualmente se refiere a integrar, construir y probar el código dentro de un ambiente de desarrollo.
● Entrega continua se construye sobre este concepto manejando además las etapas requeridas para el despliegue a producción
![Page 24: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/24.jpg)
Features toggles
Esconder funcionalidades
● Trabajo en progreso● Funcionalidades inestables● Estrategia de negocio
¿Cómo?
● Archivos de configuración● Variables de ambiente● Servicios externos
![Page 25: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/25.jpg)
Escenario actual...el después
![Page 26: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/26.jpg)
Automatización de las pruebas
![Page 27: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/27.jpg)
Automatización de las pruebas
![Page 28: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/28.jpg)
Automatización de builds
● Compilar el código fuente en código binario● Empacar el código binario● Correr las pruebas automatizadas● Desplegar en los diferentes ambientes● Crear documentación y release notes
● Rake○ Rake build○ Rake build deploy○ Rake test:unit, rake test:acceptance○ Rake pc
![Page 29: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/29.jpg)
Automatización de builds
![Page 30: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/30.jpg)
Automatización de builds
![Page 31: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/31.jpg)
Automatizar los ambientes
![Page 32: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/32.jpg)
Mejora Continua
![Page 33: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/33.jpg)
Integración Continua
![Page 34: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/34.jpg)
Radiador
![Page 35: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/35.jpg)
KanbanHaz una sola cosa y hazlo bien
![Page 36: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/36.jpg)
Kanban● kan, 看 カン, significa "visual," y ban, 板 バン,
significa "tarjeta" o "tablero"● Desarrollado por Taiichi Ohno, en Toyota● Kanban da a los equipos más opciones
flexibles de planificación, la producción más rápido, claro enfoque y la transparencia en todo el ciclo de desarrollo.
![Page 37: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/37.jpg)
Kanban
![Page 38: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/38.jpg)
Kanban - principios● Flexibilidad en la planificación
○ El equipo solo está enfocado en el trabajo en progreso
● Minimizar el ciclo de vida○ Tiempo medio para completar una
tarjeta● Eficiencia a través del enfoque
○ Multitarea mata la eficiencia● Tener métricas visuales
○ Mejora contínua
![Page 39: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/39.jpg)
Kanban
![Page 40: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/40.jpg)
Scrum vs Kanban
![Page 41: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/41.jpg)
Kanban en el proyecto
![Page 42: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/42.jpg)
Tarjetas
![Page 43: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/43.jpg)
Automatizar la burocracia
![Page 44: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/44.jpg)
Estructura del proyectoSer autónomo pero no sub optimizar
![Page 45: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/45.jpg)
Squads
● “Se siente como una mini-startup”
● Auto organizada● Cross-functional● De 5 a 7 ingenieros,
menos de 10
![Page 46: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/46.jpg)
¿Por qué elegir Squads?● > 40 proyectos● No está dividido geograficamente
Mejora contínua…
● Feedback ( Standups diarios)● Desplegar pequeña entregas desacopladas.● Personas T - shaped
![Page 47: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/47.jpg)
SquadsPrácticas: ambiente amigable
al fallo
![Page 48: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/48.jpg)
Alineamiento vs Autonomía
![Page 49: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/49.jpg)
Alineamiento vs Autonomía
![Page 50: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/50.jpg)
Squads
![Page 51: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/51.jpg)
MétricasResultados...
![Page 52: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/52.jpg)
Trabajo realizado por períodos
(períodos de 4 semanas)
![Page 53: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/53.jpg)
Porcentaje de defectos
![Page 54: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/54.jpg)
¿Preguntas?
![Page 55: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/55.jpg)
La Biblia
![Page 56: Entrega contínua en la práctica](https://reader034.vdocuments.site/reader034/viewer/2022052308/58818d861a28ab0d358b4c0b/html5/thumbnails/56.jpg)
Entrega Continua en la prácticaGeykel Moreno @geykel
Carlos Fuentes @educharlief
Gracias