SlideShare una empresa de Scribd logo
#bilbostack20
DevOps: el camino de la
entrega de valor en software
Luis Fraile
lfraile@lfraile.net
@lfraile
Con la colaboración de
Patrocinadores
Gracias
#bilbostack20
#bilbostack20
@lfraile
lfraile@lfraile.net
Digamos que ayudo a equipos de desarrollo de software a poder hacerlo
mejor mediante DevOps y … oh .... Ah … practices ágiles
CTO de b!Play (www.bhubplay.com) plataforma de marketing para marcas
basada puramente en contenido digital (pelis, series, deportes, …)
Luis Fraile
¿my job? Uffff es una historia complicada
¿Qué es
DevOps?
DevOps is the union of
people, process, and
products to enable
continuous delivery of value
to your end users.
“
”
Build
&
Test
Continuous
Delivery
Deploy
Operate
Monitor
&
Learn
Plan
&
Track
Develop
#bilbostack
¿Qué es lo que queremos?
Working software
No queremos simples “features”
Productos que resuelven
“problemas”
Y que no generen otros …
#bilbostack
¿Y cuándo lo queremos?
Continuamente
Buscamos la entrega de valor
continua
En incrementos pequeños
Que validen hipótesis
Minimizar riesgos
Lean (esto da para muchas charlas y hasta
libros)
#bilbostack
Pero ¿por qué hacemos DevOps?
Agilidad ( ¿agile? )
Validar pronto y continuadamente
Rapidez en la entrega
Y en la respuesta a desastres
Aseguramiento de calidad
Entregar más no significa entregar cualquier cosa
… simplemente vivir mejor desarrollando software.
Build
&
Test
Continuous
Delivery
Deploy
Operate
Monitor
&
Learn
Plan
&
Track
Develop
#bilbostack
Estrategias de despliegue entrega
Unas cuantas
Blue/Green
Toggles
Rolling updates
Por entornos …
O todas a la vez
Pero todas comparten algo
#bilbostack
Empieza todo en el desarrollo
Hay que cambiar la mentalidad de desplegar a entregar
Necesitamos cambiar el modo de pensar en el desarrollo
No es sólo escribir código limpio
Definir estrategia de entrega, junto a negocio, junto a ops,
junto a sec
#bilbostack
Aspectos a tener en cuenta
Calidad
Criterios de
entrega
Sostenibilidad
Monitorización
Disaster
recovery
Service
Reliability
Engineering
#bilbostack
Criterios de entrega
¿Sabes cuando y dónde entregar?
No es entregar software sin más
Establecer nuestros criterios de entrega
Calidad
Rendimiento
Aceptación de los usuarios
Integración en el producto
Reglas de calidad mínima de paso entre entornos
#bilbostack
Blue-Green
Producción está en entorno “green”
Desplegamos a un entorno “blue”
Con mecanismos tipo balanceador
cambiamos
Las peticiones de antiguo producción se
terminan de ejecutar
Todas las peticiones nuevas entran a nueva
versión
https://www.blazemeter.com/blog/five-blue-green-deployment-best-practices-for-a-smooth-release/
#bilbostack
Rolling updates
https://dzone.com/articles/take-release-automation-to-the-next-level-episode-2
Muy común en k8s
Se desactivan nodos
paulatinamente
Se despliegua a nodos
desactivados
Se agregan los nodos con
nueva versión
Convive durante un tiempo
vieja y nueva versión
#bilbostack
Feature toggles
No es puramente “despliegue”
Activamos características en
función a reglas
Se combina con cualquiera de las
anteriores
OJO: No es solo on-off
OJO: a la limpieza de toggles
olvidadas
#bilbostack
Estrategia de entrega
¿Toggles?
¿Cómo y cuándo las vamos a activar?
¿cómo vamos a medir la efectividad?
¿Compatibilidad?
Blue-Green
¿Estrategia de cambio?
¿Compatibilidad?
Rolling updates
¿ciclo de update?
¿Compatibilidad?
#bilbostack
Compatibilidad de versiones
Tenemos que prepararnos para convivir con dos versiones
Parallel Changes (Danilo Sato -
https://martinfowler.com/bliki/ParallelChange.html)
Expand
Migrate
Contract
Tanto para almacén de datos
Como para interfaces
https://www.slideshare.net/sergio_pino/commit-conf-2019-zero-downtime-
deployment
#bilbostack
Expand-migrate-contract BD
Aplicamos cambios en varias fases:​
1. Nuevo esquema (nueva columna, nuevas relaciones, …)​
2. Copiamos datos de antiguo esquema a nuevo (multiples modos)​
3. Mantenemos antiguo y nuevo (durante n tiempo)
Puede haber usuarios con ambos
4. Eliminamos antiguo
Puede hacerse de multiples modos, pero siempre afecta a dev​
Migración inicial
En ejecución
OJO interacciones con distintas entregas en distintos pasos
#bilbostack
Expand-migrate-contract interfaces
Si son APIs HTTP ¿simplemente
versionado?
Otro ejemplo: colas de mensajes
Si hablamos de métodos
Añadimos nuevos métodos con nuevos
parámetros
Mantenemos las dos (ojo si se usa desde
fuera …)
Contract (ojo el “cuando”)
#bilbostack
Facebook, Netflix, etc.
Son siempre hype
Desplegar cada commit
Elección libre de herramientas y estrategias
Chaos Monkey
Cada cual usa sus estrategias
Interesante aprender de ellos
Pero (salvo excepciones) NO somos ellos
#bilbostack
Monitorización
¿Cómo saber cuándo hacemos rollback, desactivamos
toggle, etc?
Volvemos a Dev: estrategias de monitorización en el
Código
Herramientas de monitorización (no solo logs)
“Tracking” de eventos
Y vamos a Ops
Alertas
Prevención temprana
Y sobre todo: incluirlas en nuestros flujos de entrega
automatizados
#bilbostack
Infraestructura
Forma parte de la entrega
Hay que asegurar la consistencia y
estabilidad
Infraestructura inmutable
https://martinfowler.com/bliki/ImmutableServer.html
Siempre se destruye lo antiguo y se crea nueva
infraestructura
Infrastructure as Code
Terraform, ansible, puppet, ARM, etc.
Se desarrolla y entrega con las versions
#bilbostack
Gestión del código (aKa repositories)
Git flow, trunk based, … da para un debate
Yo: normalmente trunk based con ramas de feature cortas
(pero no siempre)
Recomendaciones:
Un único repositorio código aplicación y CI/CD/IaC
CI por supuesto con Testing ante cada push/PR
#bilbostack
Calidad y testing
¿Acaso dudamos aún de esto? NO
Siempre y continuadamente hay que
estar probando
#bilbostack20
Demo time
Thanks and …
See you soon!
Thanks also to the sponsors.
Without whom this would not have been posible.
#bilbostack20
Give us feedback in:
https://app.bilbostack.com/
Con la colaboración de
Patrocinadores

Más contenido relacionado

La actualidad más candente

DEISER expoQA 2017
DEISER expoQA 2017DEISER expoQA 2017
DEISER expoQA 2017
Leo Díaz Murillo
 
Liderando un Cambio Cultural a través de Prácticas Devops en LATAM Airlines
Liderando un Cambio Cultural a través de Prácticas Devops en LATAM AirlinesLiderando un Cambio Cultural a través de Prácticas Devops en LATAM Airlines
Liderando un Cambio Cultural a través de Prácticas Devops en LATAM Airlines
Luiza Nunes
 
DevOps, por donde comenzar? - DrupalCon Latin America 2015
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015
Taller Negócio Digitais
 
Argentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósitoArgentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósito
Argentesting
 
Liquid Day - Desmitificando serverless
Liquid Day - Desmitificando serverlessLiquid Day - Desmitificando serverless
Liquid Day - Desmitificando serverless
Software Guru
 
Liquid Day - Testing de la teoria a practica
Liquid Day - Testing de la teoria a practicaLiquid Day - Testing de la teoria a practica
Liquid Day - Testing de la teoria a practica
Software Guru
 
Divide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los MicroserviciosDivide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los Microservicios
Thoughtworks
 
El reto del DevOps agil
El reto del DevOps agilEl reto del DevOps agil
El reto del DevOps agil
Ernesto Cardenas Cangahuala
 
1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
EXIN
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónKleer Agile Coaching & Training
 
Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020
Demian Raschkovan
 
Gestion paquetes NuGet con Visual Studio Team Services y MyGet
Gestion paquetes NuGet con Visual Studio Team Services y MyGetGestion paquetes NuGet con Visual Studio Team Services y MyGet
Gestion paquetes NuGet con Visual Studio Team Services y MyGet
Luis Fraile
 
Pruebas continuas con cypress en la era DevOps
Pruebas continuas con cypress en la era DevOpsPruebas continuas con cypress en la era DevOps
Pruebas continuas con cypress en la era DevOps
Belatrix Software
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
Joan Sebastián Ramírez Pérez
 
Microservicios con spring
Microservicios con springMicroservicios con spring
Microservicios con spring
Belatrix Software
 
Liquid Day - Hablemos de DevOps
Liquid Day - Hablemos de DevOpsLiquid Day - Hablemos de DevOps
Liquid Day - Hablemos de DevOps
Software Guru
 
Dev ops. Rompiendo Barreras
Dev ops. Rompiendo BarrerasDev ops. Rompiendo Barreras
Dev ops. Rompiendo Barreras
Juan Mauricio
 
DevOps Seminar Slides (Spanish version)
DevOps Seminar Slides (Spanish version)DevOps Seminar Slides (Spanish version)
DevOps Seminar Slides (Spanish version)
XebiaLabs
 
Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con Jenkins
César Hernández
 
Scrum overview
Scrum overview Scrum overview

La actualidad más candente (20)

DEISER expoQA 2017
DEISER expoQA 2017DEISER expoQA 2017
DEISER expoQA 2017
 
Liderando un Cambio Cultural a través de Prácticas Devops en LATAM Airlines
Liderando un Cambio Cultural a través de Prácticas Devops en LATAM AirlinesLiderando un Cambio Cultural a través de Prácticas Devops en LATAM Airlines
Liderando un Cambio Cultural a través de Prácticas Devops en LATAM Airlines
 
DevOps, por donde comenzar? - DrupalCon Latin America 2015
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015
 
Argentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósitoArgentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósito
 
Liquid Day - Desmitificando serverless
Liquid Day - Desmitificando serverlessLiquid Day - Desmitificando serverless
Liquid Day - Desmitificando serverless
 
Liquid Day - Testing de la teoria a practica
Liquid Day - Testing de la teoria a practicaLiquid Day - Testing de la teoria a practica
Liquid Day - Testing de la teoria a practica
 
Divide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los MicroserviciosDivide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los Microservicios
 
El reto del DevOps agil
El reto del DevOps agilEl reto del DevOps agil
El reto del DevOps agil
 
1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
 
Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020
 
Gestion paquetes NuGet con Visual Studio Team Services y MyGet
Gestion paquetes NuGet con Visual Studio Team Services y MyGetGestion paquetes NuGet con Visual Studio Team Services y MyGet
Gestion paquetes NuGet con Visual Studio Team Services y MyGet
 
Pruebas continuas con cypress en la era DevOps
Pruebas continuas con cypress en la era DevOpsPruebas continuas con cypress en la era DevOps
Pruebas continuas con cypress en la era DevOps
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
 
Microservicios con spring
Microservicios con springMicroservicios con spring
Microservicios con spring
 
Liquid Day - Hablemos de DevOps
Liquid Day - Hablemos de DevOpsLiquid Day - Hablemos de DevOps
Liquid Day - Hablemos de DevOps
 
Dev ops. Rompiendo Barreras
Dev ops. Rompiendo BarrerasDev ops. Rompiendo Barreras
Dev ops. Rompiendo Barreras
 
DevOps Seminar Slides (Spanish version)
DevOps Seminar Slides (Spanish version)DevOps Seminar Slides (Spanish version)
DevOps Seminar Slides (Spanish version)
 
Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con Jenkins
 
Scrum overview
Scrum overview Scrum overview
Scrum overview
 

Similar a Bilbostack 2020 - El camino de l a entrega en DevOps

Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
avanttic Consultoría Tecnológica
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
Telefónica
 
Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019
Luciano Moreira da Cruz
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
Luciano Moreira da Cruz
 
Mejora tus resultados de negocios con Azure DevOps
Mejora tus resultados de negocios con Azure DevOpsMejora tus resultados de negocios con Azure DevOps
Mejora tus resultados de negocios con Azure DevOps
Belatrix Software
 
Azure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completaAzure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completa
Travis Alford
 
Workshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft ArgentinaWorkshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft Argentina
Luciano Moreira da Cruz
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
Ivan Martinez
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions Spanish
CDS
 
Desayuno Tecnológico Data Adviser: "DevOps, realidad o ficción" ~ 28 de Junio...
Desayuno Tecnológico Data Adviser: "DevOps, realidad o ficción" ~ 28 de Junio...Desayuno Tecnológico Data Adviser: "DevOps, realidad o ficción" ~ 28 de Junio...
Desayuno Tecnológico Data Adviser: "DevOps, realidad o ficción" ~ 28 de Junio...
Mkt Manager Data Adviser
 
EXIN DevOps Master: where Agile meets Lean
EXIN DevOps Master: where Agile meets LeanEXIN DevOps Master: where Agile meets Lean
EXIN DevOps Master: where Agile meets Lean
G2, Gobierno y Gestión de TI, SL
 
Arquitectura de Software y DevOps
Arquitectura de Software y DevOpsArquitectura de Software y DevOps
Arquitectura de Software y DevOps
Jorge Eduardo Gaona
 
Shift Left: En busca del éxito del software
Shift Left: En busca del éxito del softwareShift Left: En busca del éxito del software
Shift Left: En busca del éxito del software
Marco Avendaño
 
DevOps: Un motor para la transformación digital
DevOps: Un motor para la transformación digitalDevOps: Un motor para la transformación digital
DevOps: Un motor para la transformación digital
Software Guru
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas Prácticas
Rodrigo Corral
 
Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019
Santi Macias Rodriguez
 
DevOps - TechNights
DevOps - TechNightsDevOps - TechNights
DevOps - TechNights
fernando sonego
 
Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)
Jacobo García López de Araujo
 
¿DEVSECOPS puede desaparecer?
¿DEVSECOPS puede desaparecer?¿DEVSECOPS puede desaparecer?
¿DEVSECOPS puede desaparecer?
Luciano Moreira da Cruz
 

Similar a Bilbostack 2020 - El camino de l a entrega en DevOps (20)

Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
 
Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
 
Mejora tus resultados de negocios con Azure DevOps
Mejora tus resultados de negocios con Azure DevOpsMejora tus resultados de negocios con Azure DevOps
Mejora tus resultados de negocios con Azure DevOps
 
Azure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completaAzure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completa
 
Workshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft ArgentinaWorkshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft Argentina
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions Spanish
 
Desayuno Tecnológico Data Adviser: "DevOps, realidad o ficción" ~ 28 de Junio...
Desayuno Tecnológico Data Adviser: "DevOps, realidad o ficción" ~ 28 de Junio...Desayuno Tecnológico Data Adviser: "DevOps, realidad o ficción" ~ 28 de Junio...
Desayuno Tecnológico Data Adviser: "DevOps, realidad o ficción" ~ 28 de Junio...
 
EXIN DevOps Master: where Agile meets Lean
EXIN DevOps Master: where Agile meets LeanEXIN DevOps Master: where Agile meets Lean
EXIN DevOps Master: where Agile meets Lean
 
Arquitectura de Software y DevOps
Arquitectura de Software y DevOpsArquitectura de Software y DevOps
Arquitectura de Software y DevOps
 
Shift Left: En busca del éxito del software
Shift Left: En busca del éxito del softwareShift Left: En busca del éxito del software
Shift Left: En busca del éxito del software
 
DevOps: Un motor para la transformación digital
DevOps: Un motor para la transformación digitalDevOps: Un motor para la transformación digital
DevOps: Un motor para la transformación digital
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas Prácticas
 
Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019
 
DevOps - TechNights
DevOps - TechNightsDevOps - TechNights
DevOps - TechNights
 
Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)
 
Material trainer-depc-v1-parte2
Material trainer-depc-v1-parte2Material trainer-depc-v1-parte2
Material trainer-depc-v1-parte2
 
¿DEVSECOPS puede desaparecer?
¿DEVSECOPS puede desaparecer?¿DEVSECOPS puede desaparecer?
¿DEVSECOPS puede desaparecer?
 

Más de Luis Fraile

Code Security with GitHub Advanced Security
Code Security with GitHub Advanced SecurityCode Security with GitHub Advanced Security
Code Security with GitHub Advanced Security
Luis Fraile
 
GitHub Codespacescon .NET Core
GitHub Codespacescon .NET CoreGitHub Codespacescon .NET Core
GitHub Codespacescon .NET Core
Luis Fraile
 
Un ciclo "casi" completo on Azure DevOps
Un ciclo "casi" completo on Azure DevOpsUn ciclo "casi" completo on Azure DevOps
Un ciclo "casi" completo on Azure DevOps
Luis Fraile
 
Cultura DevOps - Conferencia Agile Spain 2017
Cultura DevOps - Conferencia Agile Spain 2017Cultura DevOps - Conferencia Agile Spain 2017
Cultura DevOps - Conferencia Agile Spain 2017
Luis Fraile
 
Gestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGetGestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGet
Luis Fraile
 
Creación de tareas personalizadas para Team Build y Release Management
Creación de tareas personalizadas para Team Build y Release ManagementCreación de tareas personalizadas para Team Build y Release Management
Creación de tareas personalizadas para Team Build y Release Management
Luis Fraile
 
DevOps con Visual Studio Team Services
DevOps con Visual Studio Team ServicesDevOps con Visual Studio Team Services
DevOps con Visual Studio Team Services
Luis Fraile
 
Validando la escalabilidad de la arquitectura
Validando la escalabilidad de la arquitecturaValidando la escalabilidad de la arquitectura
Validando la escalabilidad de la arquitectura
Luis Fraile
 
ALM la parte olvidada de la arquitectura
ALM la parte olvidada de la arquitecturaALM la parte olvidada de la arquitectura
ALM la parte olvidada de la arquitectura
Luis Fraile
 
Exploratory testing myths Romanian Testing Conference 2014
Exploratory testing myths Romanian Testing Conference 2014Exploratory testing myths Romanian Testing Conference 2014
Exploratory testing myths Romanian Testing Conference 2014
Luis Fraile
 
[ALM09] Calidad en el código con Visual Studio 2010
[ALM09] Calidad en el código con Visual Studio 2010[ALM09] Calidad en el código con Visual Studio 2010
[ALM09] Calidad en el código con Visual Studio 2010Luis Fraile
 
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008Luis Fraile
 
Team Foundation Server Build 2010
Team Foundation Server Build 2010Team Foundation Server Build 2010
Team Foundation Server Build 2010
Luis Fraile
 

Más de Luis Fraile (13)

Code Security with GitHub Advanced Security
Code Security with GitHub Advanced SecurityCode Security with GitHub Advanced Security
Code Security with GitHub Advanced Security
 
GitHub Codespacescon .NET Core
GitHub Codespacescon .NET CoreGitHub Codespacescon .NET Core
GitHub Codespacescon .NET Core
 
Un ciclo "casi" completo on Azure DevOps
Un ciclo "casi" completo on Azure DevOpsUn ciclo "casi" completo on Azure DevOps
Un ciclo "casi" completo on Azure DevOps
 
Cultura DevOps - Conferencia Agile Spain 2017
Cultura DevOps - Conferencia Agile Spain 2017Cultura DevOps - Conferencia Agile Spain 2017
Cultura DevOps - Conferencia Agile Spain 2017
 
Gestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGetGestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGet
 
Creación de tareas personalizadas para Team Build y Release Management
Creación de tareas personalizadas para Team Build y Release ManagementCreación de tareas personalizadas para Team Build y Release Management
Creación de tareas personalizadas para Team Build y Release Management
 
DevOps con Visual Studio Team Services
DevOps con Visual Studio Team ServicesDevOps con Visual Studio Team Services
DevOps con Visual Studio Team Services
 
Validando la escalabilidad de la arquitectura
Validando la escalabilidad de la arquitecturaValidando la escalabilidad de la arquitectura
Validando la escalabilidad de la arquitectura
 
ALM la parte olvidada de la arquitectura
ALM la parte olvidada de la arquitecturaALM la parte olvidada de la arquitectura
ALM la parte olvidada de la arquitectura
 
Exploratory testing myths Romanian Testing Conference 2014
Exploratory testing myths Romanian Testing Conference 2014Exploratory testing myths Romanian Testing Conference 2014
Exploratory testing myths Romanian Testing Conference 2014
 
[ALM09] Calidad en el código con Visual Studio 2010
[ALM09] Calidad en el código con Visual Studio 2010[ALM09] Calidad en el código con Visual Studio 2010
[ALM09] Calidad en el código con Visual Studio 2010
 
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008
[ALM09] Integración continua en entornos .NET y Java con TFS 2010 y TFS 2008
 
Team Foundation Server Build 2010
Team Foundation Server Build 2010Team Foundation Server Build 2010
Team Foundation Server Build 2010
 

Último

CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 

Último (6)

CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 

Bilbostack 2020 - El camino de l a entrega en DevOps

  • 1. #bilbostack20 DevOps: el camino de la entrega de valor en software Luis Fraile lfraile@lfraile.net @lfraile
  • 2. Con la colaboración de Patrocinadores Gracias #bilbostack20
  • 3. #bilbostack20 @lfraile lfraile@lfraile.net Digamos que ayudo a equipos de desarrollo de software a poder hacerlo mejor mediante DevOps y … oh .... Ah … practices ágiles CTO de b!Play (www.bhubplay.com) plataforma de marketing para marcas basada puramente en contenido digital (pelis, series, deportes, …) Luis Fraile ¿my job? Uffff es una historia complicada
  • 4.
  • 5. ¿Qué es DevOps? DevOps is the union of people, process, and products to enable continuous delivery of value to your end users. “ ” Build & Test Continuous Delivery Deploy Operate Monitor & Learn Plan & Track Develop
  • 6. #bilbostack ¿Qué es lo que queremos? Working software No queremos simples “features” Productos que resuelven “problemas” Y que no generen otros …
  • 7. #bilbostack ¿Y cuándo lo queremos? Continuamente Buscamos la entrega de valor continua En incrementos pequeños Que validen hipótesis Minimizar riesgos Lean (esto da para muchas charlas y hasta libros)
  • 8. #bilbostack Pero ¿por qué hacemos DevOps? Agilidad ( ¿agile? ) Validar pronto y continuadamente Rapidez en la entrega Y en la respuesta a desastres Aseguramiento de calidad Entregar más no significa entregar cualquier cosa … simplemente vivir mejor desarrollando software. Build & Test Continuous Delivery Deploy Operate Monitor & Learn Plan & Track Develop
  • 9. #bilbostack Estrategias de despliegue entrega Unas cuantas Blue/Green Toggles Rolling updates Por entornos … O todas a la vez Pero todas comparten algo
  • 10. #bilbostack Empieza todo en el desarrollo Hay que cambiar la mentalidad de desplegar a entregar Necesitamos cambiar el modo de pensar en el desarrollo No es sólo escribir código limpio Definir estrategia de entrega, junto a negocio, junto a ops, junto a sec
  • 11. #bilbostack Aspectos a tener en cuenta Calidad Criterios de entrega Sostenibilidad Monitorización Disaster recovery Service Reliability Engineering
  • 12. #bilbostack Criterios de entrega ¿Sabes cuando y dónde entregar? No es entregar software sin más Establecer nuestros criterios de entrega Calidad Rendimiento Aceptación de los usuarios Integración en el producto Reglas de calidad mínima de paso entre entornos
  • 13. #bilbostack Blue-Green Producción está en entorno “green” Desplegamos a un entorno “blue” Con mecanismos tipo balanceador cambiamos Las peticiones de antiguo producción se terminan de ejecutar Todas las peticiones nuevas entran a nueva versión https://www.blazemeter.com/blog/five-blue-green-deployment-best-practices-for-a-smooth-release/
  • 14. #bilbostack Rolling updates https://dzone.com/articles/take-release-automation-to-the-next-level-episode-2 Muy común en k8s Se desactivan nodos paulatinamente Se despliegua a nodos desactivados Se agregan los nodos con nueva versión Convive durante un tiempo vieja y nueva versión
  • 15. #bilbostack Feature toggles No es puramente “despliegue” Activamos características en función a reglas Se combina con cualquiera de las anteriores OJO: No es solo on-off OJO: a la limpieza de toggles olvidadas
  • 16. #bilbostack Estrategia de entrega ¿Toggles? ¿Cómo y cuándo las vamos a activar? ¿cómo vamos a medir la efectividad? ¿Compatibilidad? Blue-Green ¿Estrategia de cambio? ¿Compatibilidad? Rolling updates ¿ciclo de update? ¿Compatibilidad?
  • 17. #bilbostack Compatibilidad de versiones Tenemos que prepararnos para convivir con dos versiones Parallel Changes (Danilo Sato - https://martinfowler.com/bliki/ParallelChange.html) Expand Migrate Contract Tanto para almacén de datos Como para interfaces https://www.slideshare.net/sergio_pino/commit-conf-2019-zero-downtime- deployment
  • 18. #bilbostack Expand-migrate-contract BD Aplicamos cambios en varias fases:​ 1. Nuevo esquema (nueva columna, nuevas relaciones, …)​ 2. Copiamos datos de antiguo esquema a nuevo (multiples modos)​ 3. Mantenemos antiguo y nuevo (durante n tiempo) Puede haber usuarios con ambos 4. Eliminamos antiguo Puede hacerse de multiples modos, pero siempre afecta a dev​ Migración inicial En ejecución OJO interacciones con distintas entregas en distintos pasos
  • 19. #bilbostack Expand-migrate-contract interfaces Si son APIs HTTP ¿simplemente versionado? Otro ejemplo: colas de mensajes Si hablamos de métodos Añadimos nuevos métodos con nuevos parámetros Mantenemos las dos (ojo si se usa desde fuera …) Contract (ojo el “cuando”)
  • 20. #bilbostack Facebook, Netflix, etc. Son siempre hype Desplegar cada commit Elección libre de herramientas y estrategias Chaos Monkey Cada cual usa sus estrategias Interesante aprender de ellos Pero (salvo excepciones) NO somos ellos
  • 21. #bilbostack Monitorización ¿Cómo saber cuándo hacemos rollback, desactivamos toggle, etc? Volvemos a Dev: estrategias de monitorización en el Código Herramientas de monitorización (no solo logs) “Tracking” de eventos Y vamos a Ops Alertas Prevención temprana Y sobre todo: incluirlas en nuestros flujos de entrega automatizados
  • 22. #bilbostack Infraestructura Forma parte de la entrega Hay que asegurar la consistencia y estabilidad Infraestructura inmutable https://martinfowler.com/bliki/ImmutableServer.html Siempre se destruye lo antiguo y se crea nueva infraestructura Infrastructure as Code Terraform, ansible, puppet, ARM, etc. Se desarrolla y entrega con las versions
  • 23. #bilbostack Gestión del código (aKa repositories) Git flow, trunk based, … da para un debate Yo: normalmente trunk based con ramas de feature cortas (pero no siempre) Recomendaciones: Un único repositorio código aplicación y CI/CD/IaC CI por supuesto con Testing ante cada push/PR
  • 24. #bilbostack Calidad y testing ¿Acaso dudamos aún de esto? NO Siempre y continuadamente hay que estar probando
  • 26. Thanks and … See you soon! Thanks also to the sponsors. Without whom this would not have been posible. #bilbostack20 Give us feedback in: https://app.bilbostack.com/ Con la colaboración de Patrocinadores

Notas del editor

  1. DevOps is the union of people, process and products to enable the continuous delivery of value to your end customers
  2. La entrega continua es “working software” Productos que resuelven “problemas” Y que no generen otros … El “valor” (de negocio)
  3. Tiene que ser sostenible