3. feb., 2020

Modelo CALMS como soporte de DEVOPS

Para los que no han escuchado el término "DevOps", éste fue utilizado por primera vez en el año 2008 por el autor Patrick Debois, durante un evento de agilismo celebrado en Bélgica. Tiempo después el término ha venido ganando terreno y comenzó a sonar fuerte durante los "DevOpsDays".

Desde su nacimiento, "DevOps" ha estado ligado al uso de metodologías ágiles, y es claro que no son pocas las personas que incluso llegan a confundir las prácticas de Devops con las metodologías ágiles.

Dentro de las prácticas DevOps tenemos entre otras las siguientes:

1) La integración continua: Es una técnica de desarrollo software que consiste en combinar los cambios de código periódicamente en un repositorio central. En ella se construye el código y se le hace testing de forma frecuente mediante pruebas estáticas (análisis de código) automatizadas, con el objetivo de adelantar la corrección de errores y su identificación temprana.

2) La entrega continua : Es una técnica de desarrollo software que permite que los cambios del código se trasladen a un entorno donde se realizan pruebas funcionales y automatizadas, consintiendo la liberación de versiones automáticas a producción una vez validadas.


3) El despliegue continuo: Se diferencia del anterior en que el paso a producción de los cambios del código se realiza de forma automática.

Pero, entonces ¿Qué es "DevOps" ? Podríamos decir que es un modelo cultural y organizacional que promueve la colaboración para permitir una IT de alto rendimiento que permita alcanzar los objetivos de negocio.

 

En otras palabras es un movimiento cultural que facilita la obtención de los mejores resultados en la implementación y operación de las aplicaciones a través de la mejora de las interacciones humanas (esto es : equipos de desarrollo, calidad y operaciones).

Puede afirmarse que el cambio cultural es el mayor factor de éxito del modelo de DevOps, aunque su marco de desarrollo se apoya en cinco valores enmarcados dentro del Modelo conocido bajo el acrónimo CALMS.

"Modelo CALMS"

C - Cultura: 

La cultura organizacional se basa en las características de las personas y la forma en la que se comunican y relacionan entre sí. Aquí factores como la transparencia, confianza, responsabilidad compartida, las creencias, capacidad de aprendizaje, gestión del cambio, la mejora continua y la experimentación son la base del éxito de los equipos DevOps.

A-Automatización:

Tener procesos repetibles y estandarizados permiten la utilización de la automatización y facilitan la fiabilidad de los sistemas.

Los equipos que comienzan con la automatización lo hacen en cuatro puntos: la construcción automatizada mediante el uso de técnicas como la integración continua; la realización de las pruebas automatizadas; el despliegue automatizado y el aprovisionamiento automatizado de los sistemas. El aprovisionamiento automatizado de los sistemas permite que mediante su estandarización evitemos situaciones tan típicas en el mundo del desarrollo de Software como “En mi entorno me funciona”.

 

DevOps propone la aplicación de herramientas que automaticen gran parte de los procesos existentes a lo largo del ciclo de vida como son:

 

  • Automatización de las revisiones de código.
  • Automatización de la construcción y del despliegue.
  • Automatización de los controles de calidad.
  • Automatización del provisionamiento de infraestructuras.

 

L-Lean:

Lean es una filosofía que empuja a los individuos que lo utilizan a pensar cómo hacer los servicios o productos mejor en su día a día. Focalizado en la mejora continua, en la reducción o eliminación de todo aquello que genere pérdida (las 3 Mu: Muda, Muri y Mura) en el proceso extremo a extremo (E2E- End to End) buscando aportar el mayor valor al cliente. Lean usa el Value Stream Map como herramienta de optimización del proceso extremo a extremo.

 

En el desarrollo de software Lean los autores "Tom y Mary Poppendieck" identificaron como desperdicios para el desarrollo de software los siguientes:

 

  • Código o funcionalidad innecesaria en las aplicaciones.
  • Sobrepasar la capacidad del equipo, o empezar más de lo que puede terminarse.
  • Retrasos en el proceso de desarrollo de software.
  • Requisitos poco claros o con cambios constantes.
  • Burocracia.
  • Comunicación lenta o inefectiva
  • Trabajo parcialmente terminado
  • Defectos o problemas de calidad
  • Cambio de tareas

 

M-Medición:

La utilización de indicadores es un indispensable para mejorar de forma continua un servicio o un producto. En una implementación DevOps deberían existir indicadores para medir todo: procesos, personas y herramientas.

Para ello se tienen en cuenta las siguientes métricas:

  • Proceso como MTTR, tiempo de despliegue, número de test ejecutados(fallidos y correctos).
  • Rendimiento como número de builds o número de puestas en producción.
  • Innovación como ideas exitosas puestas en marcha, experimentación.
  • Cultura como satisfacción, avisos.

S-Sharing (Colaboración):

La existencia de silos en las organizaciones y empresas, de diferentes formas de pensar, de uso de distintas herramientas o entornos, de procesos no integrados y, en general, de objetivos y expectativas no alineadas en la organización hacen que DevOps ofrezca una solución holística y que dé respuesta al nuevo paradigma que propone la transformación digital. La colaboración y responsabilidad extremo a extremo en DevOps consigue que la creación de equipos por desarrollo de proyecto o producto sea un factor clave frente a la formación de equipos por funciones (desarrollo, calidad y operaciones). Dichos equipos cuentan con autonomía, son autogestionados y autoorganizados, tienen habilidad para experimentar e innovar rápido y teniendo como foco principal el aportar valor al cliente.

 

Finalmente, podríamos decir que "DevOps" está sustentado en una cultura de colaboración y responsabilidad transversal. En un cambio de actitud donde el trabajo es trabajo de todos, con Devops se busca innovar y mejorar de forma continua, teniendo como foco el cliente final y el mejoramiento de su experiencia. Es por ello que lo único que nos queda es preguntarnos si nuestra organización esta preparada para dar este salto y si nosotros como personas y profesionales estamos dispuestos a aceptar el cambio y subirnos en este nuevo barco que de seguro nos llevará a buen puerto.

Autor: Ing. Javier Mauricio León Reyes

@Twitter e Instagram: @PMPMedellin

Fuentes Consultadas:

https://www.mtp.es/entendiendo-devops/

http://revistas.usbbog.edu.co/index.php/GuillermoOckham/article/download/4270/3540/

https://www.paradigmadigital.com/techbiz/que-es-devops-y-sobre-todo-que-no-es-devops/

https://devopsti.wordpress.com/2014/08/25/clams-o-como-devops-logra-integrar-los-objetivos-de-desarrollo-y-operaciones/