¿Qué es DevOps? ¿A qué desafíos debería enfrentarse la monitorización?

DevOps es una metodología de desarrollo de software cuyo nombre consiste en un acrónimo proveniente del inglés: Dev de development y Ops de operations. Es por eso que DevOps quizás ha unificado y simplificado dos grupos de trabajo tradicionalmente mal integrados: desarrolladores de software y operadores de TI.

De hecho, la metodología DevOps surgió hace más de diez años como reacción a la separación entre los desarrolladores de software y los operadores de TI, pero sobre todo como una evolución del desarrollo ágil y el Lean Management para crear software más rápidamente.

Podemos definir el objetivo principal de DevOps como la rápida producción de software y servicios, con mayor calidad y menor coste.

IBM explica el surgimiento de DevOps en este documento, sistema de registros y el sistema de acoplamiento.

Sistemas de registros: contienen una gran cantidad de datos y transacciones. Estos por lo general son designados para ser estables y altamente fiables. Una vez en producción, un sistema de registros no necesita cambios frecuentes. Por lo general, los usuarios de este tipo de sistemas son del mismo tipo de empresa.

Sistema de acoplamiento: estas aplicaciones se utilizan directamente para el cliente de la empresa, sus orígenes son las aplicaciones web y el desarrollo de las tecnologías celulares. Tienen que ser flexibles para producir cambios, que son determinados por el comportamiento del cliente y sus necesidades. Por lo general, estos sistemas de acoplamiento están vinculados a los sistemas de registros.

Los sistemas de acoplamiento son utilizados por los clientes, por lo que estos sistemas tienen que estar centrados en la experiencia del usuario, la velocidad de entrega y la agilidad, en otras palabras, un enfoque DevOps “.

Con el fin de alcanzar su objetivo, DevOps cuida la agilidad y eficiencia y promueve una colaboración más estrecha entre los diferentes “actores”.

Por “actores” entendemos el departamento de desarrollo y el departamento de operaciones informáticas juntos, lo que no es más que una mala simplificación; más detalladamente sería:

  • Empresarios.
  • Desarrolladores.
  • Operadores IT.
  • Agentes de garantía de calidad.
  • Especialistas en pruebas.

Puede que DevOps no sea una cultura en sí misma, pero lograr una verdadera colaboración entre actores que tradicionalmente han funcionado por su cuenta requiere un intenso cambio cultural y organizativo.

Y esta colaboración se hace un poco más difícil cuando se lee que una de las principales características de DevOps es la retroalimentación (feedback) del cliente final durante el proceso de desarrollo.

Hasta el momento, podemos entender la idea general de DevOps, pero, ¿sabes cómo este movimiento está relacionado con el mundo de monitorización?

Esta conexión se basa en cada arquitectura propuesta para DevOps y su funcionamiento. Allí, hemos encontrado que la monitorización es una actividad básica.

En 2016, Google publicó su guía SRE (Site Reliability Engineering) donde explica que el SRE podía ser visto como una implementación de DevOps con algunas extensiones idiosincráticas. En esta guía, usan una pirámide de Maslow reformulada donde la monitorización se incluye como la base de la pirámide.

Originalmente, Abraham Maslow propuso una pirámide para establecer una jerarquía de necesidades humanas en la que las necesidades básicas estaban en la base; los ingenieros de Google tomaron ese modelo y lo adaptaron para desarrollar y ejecutar sistemas distribuidos.

que es devops

Sin supervisión, no hay manera de saber si el servicio está funcionando; sin una infraestructura de monitorización cuidadosamente diseñada, es como volar a ciegas.[1]

Mientras tanto, en el documento de 2013 titulado: DevOps: The IBM approach, IBM introduce “Monitoring and Optimization” como una de las principales actividades en el ciclo de vida de DevOps.

que es devops

Monitorización continua: La monitorización continua ofrece la presentación de informes de clase empresarial, fáciles de usar que ayuda a los desarrolladores y los testers a entender el rendimiento y la disponibilidad de su aplicación, incluso antes de su utilización en la producción…

Feedback continuo de los clientes y optimización: el feedback continuo del cliente proporciona la evidencia visual y el contexto completo para analizar el comportamiento del cliente y la localización de los puntos débiles del cliente…”.

En ambas arquitecturas podemos encontrar algunos retos en la monitorización:

Clientes: Inicialmente los clientes de sistemas de monitorización eran solo personal de TI que se encargaba del mantenimiento y gestión del entorno de servidores, redes y aplicaciones.

Extendemos nuestros usuarios a desarrolladores y propietarios de aplicaciones, gracias a la monitorización de aplicaciones y la llegada de aplicaciones Web.

Hoy en día podemos decir que las empresas son los clientes más importantes que utilizan la monitorización. Como escribió James Turnbull en su Art of Monitoring: “Tu monitorización sirve para mantener otros negocios y así mantener tu negocio funcionando”.

Con DevOps, este cliente abstracto, “el negocio”, forma parte de un grupo muy real de personas que trabajan en el desarrollo de software, QA, testing, etc.

Ahora el verdadero reto es configurar el sistema de monitorización correcto para esos clientes, para lo que aconsejamos tomar el principio de comunicación e integración de DevOps y establecer la relación adecuada con el cliente desde el primer día para definir:

  • Medidas: ¿Qué métricas y eventos deben ser considerados en cada etapa del ciclo de vida de DevOps? En este post el lector puede consultar una interesante lista de métricas para cada fase y grupo de usuarios en el ciclo de vida de DevOps.
  • Cómo notificar: Tenga en cuenta que las notificaciones son leídas por personal de diferentes niveles, por lo que tenemos que responder a todas estas preguntas: ¿Quién es la persona adecuada para un determinado evento? ¿Cómo puedo contextualizarlo? ¿Cuántas veces tenemos que decírselo? ¿Cuándo dejaremos de decírselo? ¿Y tenemos que hacer algo más?
    Cuando se trata de la contextualización de métricas en DevOps, necesitamos saber que todos los esfuerzos para contextualizar correctamente cada métrica dan a nuestros clientes información valiosa y permiten que todo el grupo esté alineado con el principio de producción ágil de DevOps.
  • Cómo nuestros clientes pueden visualizar los datos: entendemos la visualización como un poderoso vehículo para el análisis, la interpretación y el aprendizaje, no solo como un simple panel de control para presentar los datos. Con DevOps tenemos una gran cantidad de datos que presentar, pero el verdadero reto es presentarlos de una manera lógica basada en el objetivo del cliente y en la fase del ciclo de vida de DevOps.

Monitorización durante el proceso de desarrollo de software: si estamos acostumbrados a monitorizar aplicaciones cuando estas ya están en producción, entonces la implementación de un sistema de monitorización para DevOps podría ser un verdadero desafío.

Tenemos que planificar de antemano la implementación para poder agregar la instrumentación correcta para cada etapa del proceso, desde su desarrollo inicial hasta una operación completa en un entorno de producción.

Hay que tener la mente abierta y usar herramientas flexibles para poder afrontar el carácter evolutivo del proceso DevOps y los requisitos del clouding y dockering típicamente asociados con DevOps.

Finalmente, hay que decir que tratar de satisfacer las necesidades del movimiento DevOps no nos debería impedir una monitorización regular.

Siendo una buena solución de monitorización integrada para servidores, redes y aplicaciones, te invitamos a visitar la sección de soluciones de la web de Pandora FMS, si estás interesado en conocer todas las ventajas que ofrece este software.

Shares