Deployment Frequency

Compartir esta publicación

Compartir en facebook
Compartir en linkedin
Compartir en twitter
Compartir en email

Introducción

Hoy en día, no hay compañía de éxito sin DevOps como enfoque de desarrollo y operaciones de software. Esta serie de procesos permite a las empresas coordinar los equipos de desarrollo dentro de un proyecto de software. Esto permite crear y mejorar productos de una manera más rápida, ágil, flexible y exitosa que los métodos tradicionales de desarrollo de software.

El objetivo de DevOps es la conciencia del equipo de seguir un camino con el fin de aplicar la automatización y las metodologías necesarias para ahorrar tiempo tanto para la empresa como para cada uno de los miembros del equipo de desarrollo. Así se liberan los tiempos de los trabajos mecánicos y los miembros invierten su tiempo en tareas realmente importantes.

DevOps tiene muchos beneficios, reduce los costes, mejora la productividad, facilita la escalabilidad, además de mejorar la comunicación entre el equipo y con el cliente final, software de mejor calidad …

Pero nos vamos a centrar en uno de los grandes beneficios de DevOps, la integración continua y entrega continua: CI/CD (Continuous Integration/ Continuous delivery). En esta práctica de desarrollo de software, los miembros de un equipo de desarrollo integran el código en la misma localización, lo que permite automatizar la entregas de nuevas versiones.

gbc8ZVGoFu1SK0GMkHtJ7Bg1Ism7qpWKhwioW09V7PP9xSQk6uePguCIzh VnLb2UgKHwzq782JBvQ5sY6opww7jJ JDHIHYz3WptOx QRbaMN6Lh21e sHFt5JrEHLvlkb3yYIX

Continuos Deployment es la automatización de estas entregas continuas a un entorno de producción. Y la métrica de la que vamos a hablar hace referencia exactamente a la frecuencia con la que hacemos estos deployments.

Métricas Data-driven

Medir la efectividad de un equipo dentro de un proyecto es el camino hacia la mejora y finalmente el éxito. Las métricas basadas en datos (data-driven metrics) nos ayudan a medir y monitorizar dicha efectividad.

Hay 4 métricas clave relacionadas entre sí, para evaluar el desempeño dentro de un equipo, según el DORA (DevOps Research and Assessment):

  • Mean Lead Time for Changes (MLT)
  • Deployment frequency (DF)
  • Mean Time to Recover (MTTR)
  • Change Failure Rate (CFR)

Nosotros nos centraremos en la segunda, Deployment frequency.

Deployment Frequency

Es una de las métricas (basada en datos) principales de la metodología Agile y representa uno de los principales objetivos de la efectividad de DevOps, CI/CD.

La función de esta métrica es medir la frecuencia con la que desplegamos código a los entornos de desarrollo, test y producción. La frecuencia de despliegue de código puede incluir piezas funcionales de código (incremento de valor, nuevas funcionalidades), mejoras o bugs.

Uno de los objetivos principales de DevOps es realizar entregas continuas de código, más pequeñas, más rápidas y más testeables. De esta manera la frecuencia de despliegue está estrechamente relacionada con la filosofía de entrega continua de DevOps, de ahí la importancia que tiene esta métrica.

Además, ofrece una oportunidad para entender cómo de bien funcionan tus procesos. Ya que, monitorizándola nos puede ayudar a identificar problemas más amplios, como falta de personal en el equipo o procesos ineficientes.

¿Cómo se puede mejorar la frecuencia de despliegue?

Como hemos dicho antes medir la efectividad de un equipo dentro de un proyecto es el camino hacia la mejora y finalmente el éxito. Si nuestro objetivo es ser efectivos y pretendemos tener éxito en un proyecto, debemos mejorar la frecuencia de despliegue.

Dentro de un equipo de desarrollo de software se pueden tomar muchas acciones para mejorar esta métrica.

Por ejemplo, pongamos que queremos llegar a tener una nueva funcionalidad en producción, en una aplicación móvil.

Si el equipo de de desarrollo que está trabajando en dicha funcionalidad no utiliza metodologías ágiles, se complica la CI/CD. Ya que los despliegues se realizan de manera menos automatizada, las tareas no se desglosan en mvps… y por tanto es mucho más difícil mejorar esta métrica. Incluso podríamos llegar a pensar que no tiene mucho sentido hablar de frecuencia de despliegue. Por lo que, el primer paso para mejorarla o más bien empezar a usarla, es ser un equipo Agile.

Volvamos al ejemplo. Pongamos que somos un equipo de desarrollo que usamos Agile.

A la hora de desglosar la funcionalidad en tareas, se debe hacer un trabajo exhaustivo en el refinamiento de cada una de ellas. En este punto entra la concienciación de todo el equipo y se debe tener muy claro qué queremos conseguir y cuál es el camino a seguir, en este caso, para seguir las formas de DevOps con CI/CD.

Por tanto, si el equipo está concienciado de que éste es su camino, mayor grado de conciencia tendrá a la hora de realizar el refinamiento de las tareas. Por lo que irán apareciendo tareas a su vez más pequeñas de las tareas iniciales, y cada una de ellas aportando valor, es decir, llegar al minimum value product, MVP.

De esta manera conseguimos directamente, que se vaya abordando la funcionalidad general de manera totalmente particular con cada tarea, y podemos ir desplegando cada MVP en producción de manera continua conforme avanza el proyecto.

Esta es una de las maneras de mejorar la frecuencia de despliegue dentro de un equipo de desarrollo de software.

Además, cabe comentar otro de los grandes pilares de la CI/CD y que, por tanto, ayuda a mejorar la frecuencia de despliegue es tener una suite de test confiables. ¿Qué significa esto? Que cada funcionalidad nueva, por pequeña que sea, debe tener sus test unitarios, de integración y funcionales. Con esto, nos aseguramos de que el proceso de integración continua tendrá una fiabilidad alta y con ello, estar seguros de que no rompemos nada, cada vez que realizamos un nuevo despliegue, y al final de todo esto, podremos realizar despliegues con mayor seguridad, fiabilidad y facilidad.

Screen Shot 2022 01 31 at 11.24.39

Accelerate State of DevOps

Cada año Google Cloud’s DevOps Research and Assessment (DORA) publica su informe “Accelerate State of DevOps”. Este informe ofrece información sobre la industria basada en datos que examinan las capacidades y prácticas que impulsan la entrega de software, así como el desempeño operativo y organizacional.

Así pues, como podemos ver en la siguiente tabla, clasifican a los equipos en función de la entrega de su software, si nos centramos en la frecuencia de despliegue:

  • Los equipos de élite, realizan deployments de código bajo demanda, múltiples veces al día.
  • Los equipos de alto nivel de entrega de software realizan despliegues una vez a la semana o una vez al mes.
  • A nivel medio una vez al mes o cada 6 meses
  • Y a niveles bajos menos de una vez cada 6 meses.

B7ePh6aaOk0LYRZ4oWCAb0CQzNbZFQ0fdOHEa5fY1CIuCf9SRRWFBrLaQFHzCANyAaopDS7YW O2Fki5z04QqjLIxgg2YqBWEE3XazTfIp wxFQ1gf EuyiLwZeXIFqs RwsGXwQ

Conclusiones

La frecuencia de despliegue es una de las métricas basadas en datos de mayor importancia.

Realizar entregas continuas diarias, más pequeñas, significa mayor facilidad para tests, despliegues, y Roll back si algo falla , por lo que caen también el Change Failure Rate y el Mean Time to Recover, aumentando así la disponibilidad.

Una frecuencia de despliegue alta, despliegues diarios bajo demanda, indica un nivel de madurez Agile del equipo de desarrollo. Esto está estrechamente relacionado con el objetivo principal de DevOps y con sus respectivos beneficios. Por ello si una empresa quiere alcanzar objetivos basados en datos es muy importante la medición de esta métrica entre otras.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

Acerca de Apiumhub

Apiumhub reúne a una comunidad de desarrolladores y arquitectos de software para ayudarte a transformar tu idea en un producto potente y escalable. Nuestro Tech Hub se especializa en Arquitectura de Software, Desarrollo Web & Desarrollo de Aplicaciones Móviles. Aquí compartimos con usted consejos de la industria & mejores prácticas, basadas en nuestra experiencia.

Posts populares
Obtén nuestro Libro: Software Architecture Metrics

Global Software Architecture Summit '22

Reserva tu plaza!

Reserva

¿Tienes un proyecto desafiante?

Podemos trabajar juntos

Secured By miniOrange