Entendiendo DevOps

22 febrero, 2018

DevOps

Testing de Software

El término DevOps fue utilizado por primera vez en 2008 por Patrick Debois, durante un evento en Bélgica relacionado con...

[contact-form-7 id="22307" title="Formulario Blog"]

El término DevOps fue utilizado por primera vez en 2008 por Patrick Debois, durante un evento en Bélgica relacionado con el agilismo. En los años posteriores, el término comenzó a sonar con fuerza durante los DevOpsDays.

Desde su nacimiento, DevOps ha estado ligado al uso de metodologías ágiles, y no son pocos los que lo confunden con estas técnicas, como pueden ser la Integración Continua, la Entrega Continua o el Despliegue Continuo.

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, construyendo el código y probándolo de forma frecuente mediante pruebas estáticas (análisis de código) automatizadas, con el objetivo de adelantar la aparición/corrección de errores.

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 su liberación automática a producción una vez validado.
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.

Entonces ¿qué es DevOps? Es un movimiento cultural que facilita la obtención de unos mejores resultados en la implementación y operación de las aplicaciones a través de la mejora de las interacciones humanas (equipos de desarrollo, calidad y operaciones).
El cambio cultural es el mayor factor de éxito del modelo de DevOps, aunque su marco de desarrollo de apoya en cinco valores.

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í. Factores como la transparencia, la confianza, la responsabilidad compartida, las creencias, la capacidad de aprendizaje, la mejora continua o la experimentación son la base del éxito de los equipos DevOps.

Automatización

Los 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 como “en mi entorno me funciona”.

Lean

Lean es un método probado o una forma de pensar 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 buscando aportar el mayor valor al cliente. Lean usa el Value Stream Map como herramienta de optimización del proceso extremo a extremo.

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, 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…

Colaboración

La existencia de silos en las organizaciones, 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 de 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).

DevOps

Source: From DevOps Fundamentals

Estos equipos cuentan con autonomía, son autogestionados (recordemos el paralelismo con Scrum) con habilidad para experimentar e innovar rápido y teniendo como función principal el aportar valor al cliente. Un ejemplo de equipos autónomos y con las características definidas anteriormente es el caso de Spotify. En el modelo de Spotify los equipos se dividen en Tribe, Guild, Chapter y Squad.

Los escuadrones (Squad) son los equipos de cada sistema de negocio que trabajan como si fueran una startup (empresa pequeña innovadora e independiente). Trabajan aplicando técnicas como la integración continua y la entrega continua; hacen uso de principios de desarrollo basado en lean y son equipos multidisciplinares.

Las tribus (Tribe) son un conjunto de escuadrones que trabajan en áreas relacionadas, como la tribu de búsquedas o la de reproductor de música; aunque son independientes, hay relación entre ellas y son el germen de los escuadrones.

Source: From Scaling Agile Spotify

Los capítulos (Chapter) se crean para mejorar el desarrollo de un área específica de conocimiento y junto con los gremios forman el pegamento que conforma la empresa completa de Spotify. Un ejemplo de capítulo puede ser el testing. El problema que se encuentra un tester en el Squad1 puede ser el mismo que se encuentre otro tester en el Squad2, este tipo de sinergias favorecen la economía de escala sin perder la autonomía.

Los gremios (Guild) son grupos que comparten conocimiento a lo largo de la organización, por ejemplo, de herramientas, de metodologías o de código.

En definitiva, DevOps aúna una cultura de colaboración y responsabilidad transversal. Es un cambio de actitud y el trabajo es un trabajo de todos en el que se busca innovar y mejorar de forma continua, teniendo como foco el cliente final. ¿Estamos preparados para el cambio?

Por Raquel Jiménez
Directora del Área de DevOps & Agile de MTP

 

 

Te puede interesar…

Conoce nuestros cursos de DevOps y accede a formación especializada con MTP.

Ver más historias