Clave 3 DevOps:
Las 4 claves para alcanzar el éxito en la metodología DevOps
Aumentar la visibilidad

Breve introducción a la metodología DevOps
En los últimos años, la metodología DevOps se ha afianzado como la respuesta a la necesidad de estandarizar un proceso mediante el cual, un desarrollo software (nueva funcionalidad, mejora o corrección) pasa de la implementación a la explotación.
Se trata de un enfoque ágil cuyo objetivo principal es reducir los tiempos necesarios dentro del ciclo de vida software (migración entre versiones, ejecución de pruebas, detección de bugs, etc.).
Para alcanzar ese objetivo, la metodología se basa en la idea de reducir la distancia entre los técnicos de Desarrollo (Dev) y los de Sistemas (Ops), permitiendo a ambos equipos trabajar de forma más cercana, aportando mayor agilidad y productividad al entorno de trabajo.
El pilar fundamental sobre el que se basa el sistema de trabajo es la automatización de todos los procesos que intervienen en el ciclo de vida de una aplicación: integración, pruebas, despliegue, monitorización y operación.
Implica un cambio en la cultura y organización global de los equipos de trabajo, fomentando así la colaboración, interacción y cooperación.
En la siguiente tabla, se resumen las implicaciones que tienen los beneficios de la metodología DevOps:
En esta entrega vamos a explicar la tercera de las 4 fases, las cuales han de llevarse a cabo de manera secuencial y se irán repitiendo en distintas iteraciones en forma de bucle infinito.
Asumir todas las fases de esta metodología DevOps puede suponer un gran reto. Avalados por la dilatada experiencia de Ayscom, proporcionamos los mecanismos necesarios para aplicar este proceso de manera exitosa, lo que repercutirá claramente el la calidad final del producto.

«La experiencia adquirida por Ayscom tras años aplicando metodologías de desarrollo ágil nos ha permitido identificar estas etapas que tradicionalmente se habían relegado, y trabajar junto con nuestros clientes para ayudarles a afrontarlas de manera exitosa.»
Clave 3: Aumentar la visibilidad

En la fase anterior, Completar los procesos de testing, se describió como el Aseguramiento de la Calidad (QA) ha pasado a ocupar un papel protagonista para los equipos dedicados al desarrollo software. En esa línea, la ejecución de pruebas de rendimiento se ha convertido en la principal herramienta para asegurar unos niveles de calidad en la entrega de los servicios que cumplan con las expectativas de los usuarios. Estas pruebas solo tienen sentido si la solución de monitorización utilizada otorga una visibilidad total de los sistemas sobre los que se ejecutan los aplicativos.
Monitorización en un entorno DevOps

Uno de los cambios fundamentales que ha provocado la cultura DevOps ha sido unificar las tareas que llevaban a cabo los equipos de Desarrollo y Operaciones para ser afrontadas por un solo grupo de trabajo.
La monitorización de aplicativos e infraestructura es una de las tareas básicas que tradicionalmente realiza el equipo de Operaciones y que ha pasado a formar parte de las responsabilidades de los grupos de DevOps. Dentro de un ciclo DevOps, no se considera que el despliegue del software en producción se ha completado hasta que no se verifica que el sistema se está ejecutando de forma correcta y es capaz de rendir de acuerdo con los estándares marcados.
Como hemos visto anteriormente, esto se consigue realizando un proceso de testing completo, que incluya validación mediante pruebas de carga, pero la monitorización del sistema es también imprescindible, tanto durante la ejecución de los tests como una vez desplegado el software.
Elegir la herramienta adecuada
En los apartados anteriores, se ha ido explicando cómo DevOps ha cambiado de forma radical los procesos internos de los grupos dedicados al desarrollo de software. Aunque los equipos de DevOps deban ser grupos multidisciplinares compuestos tanto por recursos especializados en Desarrollo como por grupos de Operaciones, un error recurrente en los equipos que empiezan con esta nueva metodología es dar más importancia a lo que ocurre antes de que el producto esté desplegado en producción (lo que se conoce como «Shift left») y relegar a un segundo plano lo que ocurre posteriormente.
Aunque esta actitud sea comprensible, ya que es lógico dedicar más esfuerzos a las tareas en las que el impacto sobre el producto final se ve de forma directa, puede llevar a menospreciar la importancia que tiene una monitorización adecuada y, en consecuencia, a no elegir la herramienta correcta para llevar a cabo esta labor. Es importante ser consciente de que la elección de una herramienta de monitorización adecuada tiene la capacidad de mejorar la visibilidad y productividad del equipo, da lugar a sistemas con mejor rendimiento y permite establecer procesos de colaboración dentro del grupo de trabajo.
Además, debido al dinamismo que caracteriza a los entornos de trabajo DevOps, es importante tener en cuenta las características que debe cumplir la herramienta de monitorización que se elija:
♦ Monitorizar infraestructura, aplicaciones y experiencia de usuario.
♦ Funcionar en cualquier entorno, ya sea on-premise, Cloud o contenedores.
♦ Capacidad para automatizar la detección de anomalías y su resolución.
♦ Capacidades avanzadas de reporting que permitan generar informes a distintos niveles.

Fuente: Dynatrace
Contar con una solución que cumpla con estos requisitos permitirá al equipo de DevOps tener una visión completa de lo que ocurre en los distintos aplicativos desplegados, independientemente de la arquitectura sobre la que se ejecuten.
Además, la capacidad de recolección de datos debe ser suficiente para obtener, además de información del sistema, infraestructura y aplicaciones, indicadores de negocio y funcionales que aporten valor a los equipos de Testing y Aseguramiento de la Calidad, los cuales se encuentran cada vez más integrados en los grupos de DevOps.
Integrar dentro del proceso de DevOps una herramienta de estas características y potenciarla con la cultura y los procesos de monitorización adecuados supone una ventaja sustancial para los equipos de desarrollo frente a la competencia, impactando de forma directa tanto en la calidad del producto final como en el «time to market» que se consigue en la construcción de las soluciones.

«La elección de una herramienta de monitorización adecuada tiene la capacidad de mejorar la visibilidad y productividad del equipo, da lugar a sistemas con mejor rendimiento y permite establecer procesos de colaboración dentro del grupo de trabajo.»

Artículo de Alejandro Redondo
Desarrollador de negocio
alejandro_redondo@ayscom.com
No te pierdas la siguiente entrega:
Exprimir las capacidades de tu infraestructura
En el siguiente artículo de inminente publicación, hablaremos de la cuarta fase de este proceso, dentro de las 4 claves que propone Ayscom para alcanzar el éxito en la metodología DevOps: Exprimir las capacidades de tu infraestructura
Descarga el Whitepaper
No te pierdas la siguiente publicación en el blog de Ayscom, mantente informado en nuestras redes sociales y además, aquí tienes a tu disposición el Whitepaper completo sobre las 4 claves de la metodología DevOps:
descargar aquí