Sentando las bases de la metodología DevOps

Pensamiento de liderazgo

,

DevOps

Sentando las bases de la metodología DevOps

Jesús Chicharro | ago 06, 2019

Basándonos en una definición canónica de DevOps, se podría decir que este concepto es una metodología de desarrollo software cuyo pilar fundamental es mejorar la relación entre los equipos de desarrollo y de sistemas que permita a los desarrolladores centrarse en lo que mejor saben hacer: escribir software de calidad y que, además, dicho software se pueda desplegar de forma muy sencilla y rápida.

Aunque parece una tarea muy sencilla, en muchas organizaciones se producen verdaderos quebraderos de cabeza para ni siquiera acercarse a un modelo de integración continua. Esto se debe a que hay que realizar un cambio cultural muy importante dentro de la organización.

Un error común es pensar que la parte técnica va a solucionar todos los problemas que se presentan a la hora de adoptar DevOps. Sin embargo, uno de los puntos clave dentro de dicha adopción es preparar a la organización para el camino que hay que recorrer.

Inicio del camino

En muchos casos, el planteamiento de cambio se produce cuando la organización no es lo suficientemente ágil para poner en producción las aplicaciones que le demanda el mercado y/o negocio. Otro añadido son los problemas que se encuentra dicho software una vez que empieza a ser utilizado por el usuario final.

Con estos problemas, lo primero que se intenta buscar es la mejora de la agilidad y de la calidad, dos de los puntos que la metodología DevOps promete mejorar.

Por lo tanto, lo primero es revisar cuáles son las debilidades y la madurez de los procesos.

  • El tiempo de entrega del producto es demasiado alto.
  • La calidad no es la adecuada.
  • Continuos cambios por integraciones erróneas debido a la no comunicación entre equipos.
  • El producto no se adapta a las necesidades.

Una vez identificados los problemas, podemos aplicar los cambios necesarios para mejorarlo y aquí es cuando entra la metodología DevOps. Hay que tener en cuenta que es un proceso iterativo y que no se puede llegar a la implementación total de la noche al día.

Como pilar fundamental del tránsito a la nueva metodología tenemos la madurez del proceso actual. Si ya seguimos una serie de políticas como el mantenimiento del código fuente (SCM), revisión de buenas prácticas, gestión de despliegues, etc. El camino a recorrer será mucho más corto y menos accidentado.

Por experiencia personal, no todas las organizaciones tienen un grado de madurez lo suficiente alto como para poder adoptar este tipo de metodologías sin realizar un esfuerzo muy grande. Por lo que vamos a ver qué fases podemos abordar en un primer momento para facilitar esa adopción y reducir el esfuerzo a realizar.

Metodología Devops

Mejora del proceso

Para poder ejecutar este tipo de cambios lo más recomendable es establecer proyectos piloto muy acotados que empiecen a utilizar los principios que queremos adoptar.

Esta fase es conocida como “Crawl”, empezamos gateando:

  • Gestión de tareas (Kanban para DevOps). Esto permite conocer qué se está haciendo, el estado en el que se encuentra y la interacciones con otros elementos del equipo. Facilitando la agilidad del proceso.
  • Automatizar tareas manuales. Aunque un punto importante del DevOps es la automatización, en este primer estadio, se busca que las tareas más sencillas que se suelen realizar durante el proceso de desarrollo del software se puedan realizar de forma autónoma. Estas tareas se reutilizarán y mejorarán en fases posteriores.
  • Medir los procesos. Es vital el poder conocer el estado de todos los elementos que intervienen dentro del desarrollo software. Esto permite iterar sobre el mismo proceso para mejorarlo.
  • Coordinación de equipos. Es necesario que todos los equipos involucrados estén alineados en cómo se va a ejecutar el proceso. Por lo que un punto importante es definir los roles y responsabilidades de cada uno de ellos para que esté totalmente claro qué tareas van a ejecutar.

Es muy importante que estos cuatro puntos se establezcan de forma muy sólida ya que son los pilares sobre los que vamos a construir nuestro nuevo edificio. Por entrar más en detalle y definir una serie de tareas, los pasos para poder empezar a gatear son los siguientes:

  • Estandarizar la gestión del código fuente. Muy a menudo encuentras dentro de la misma organización que cada grupo gestiona el código de las aplicaciones de forma muy diversa. ¿Para qué vamos a gastar esfuerzo en varios procesos que realizan la misma tarea?
  • Definición de una estrategia de ramas. Es un punto fundamental sobre el que se construirán los pipelines de despliegue. Es necesario hacer un estudio de las distintas tecnologías e implementar una estrategia de ramas adecuada para cada caso.
  • Documentar el error. Dado que no vamos a poder evitar los errores, es necesario utilizar herramientas que nos faciliten saber quién está haciendo qué. Esto permite optimizar el proceso ya que el riesgo de cometer el mismo error por algún miembro de la organización disminuye y en siguientes etapas permite automatizar tareas.
  • Pruebas, pruebas y pruebas. Otro punto fundamental es definir la estrategia de pruebas automáticas ya que agilizará de forma muy sustancial el chequeo de modificaciones en el futuro. Además, es una herramienta que nos asegura que lo que vamos a desplegar está probado.
  • Chequeo de la calidad de código. Si aseguramos la utilización de las mejores prácticas de desarrollo, ganaremos en agilidad y eficiencia ya que estamos estableciendo unos estándares de desarrollo con una calidad muy alta. Siendo posible automatizar estos chequeos, estableciendo un histórico de evolución del código y al fin y al cabo asegurando que el producto que se entrega cumple unos mínimos de calidad.
  • Monitorización. La potencia sin control no sirve de nada. Es muy importante establecer unos mecanismos de revisión, tanto de la plataforma como de la aplicación.

Como conclusión…

El camino a la completa automatización del proceso de entrega de un producto software asegurando unos estándares de calidad y de proceso es complejo y requiere un esfuerzo considerable, pero las ventajas que ofrece son innegables ya que no solo se gana en agilidad y eficiencia, sino que produce que la organización pueda adaptarse con mucho menor impacto ya que el proceso se puede adaptar de forma bastante sencilla.

En próximos artículos explicaremos cómo seguir creciendo hacia la automatización total.

 

¿Quieres saber más sobre DevOps?

Si quieres conocer más sobre esta metodología y saber cómo tu empresa puede lograr una automatización total, no dudes en contactar con nosotros. ¡Seguro que te podemos ayudar!

Contacta con nosotros

¡Suscríbete!