Cualquiera que trabaje en DevOps hoy en día probablemente estaría de acuerdo en que la codificación de recursos facilita la observación, gobernanza y automatización. Sin embargo, la mayoría de los ingenieros también reconocerían que esta transformación conlleva un nuevo conjunto de desafíos.
Quizás el mayor desafío de las operaciones de IaC son los desvíos — un escenario donde los entornos de ejecución se desvían de sus estados definidos por IaC, creando un problema latente que podría tener serias implicaciones a largo plazo. Estas discrepancias socavan la consistencia de los entornos en la nube, lo que lleva a posibles problemas con la confiabilidad y mantenibilidad de la infraestructura e incluso riesgos significativos de seguridad y cumplimiento.
En un esfuerzo por minimizar estos riesgos, aquellos responsables de gestionar estos entornos están clasificando el desvío como una tarea de alta prioridad (y un importante consumo de tiempo) para los equipos de operaciones de infraestructura.
Esto ha impulsado la creciente adopción de herramientas de detección de desvíos que señalan discrepancias entre la configuración deseada y el estado real de la infraestructura. Aunque son efectivas para detectar desvíos, estas soluciones están limitadas a emitir alertas y resaltar diferencias de código, sin ofrecer una visión más profunda sobre la causa raíz.
Por qué la Detección de Desvíos es Insuficiente
El estado actual de la detección de desviaciones se debe al hecho de que las desviaciones ocurren fuera del pipeline CI/CD establecido y a menudo se remontan a ajustes manuales, actualizaciones desencadenadas por API o correcciones de emergencia. Como resultado, estos cambios generalmente no dejan un rastro de auditoría en la capa de IaC, creando un punto ciego que limita las herramientas a simplemente señalar discrepancias de código. Esto deja a los equipos de ingeniería de plataforma especulando sobre los orígenes de la desviación y cómo se puede abordar mejor.
Esta falta de claridad hace que resolver desviaciones sea una tarea arriesgada. Después de todo, revertir automáticamente los cambios sin entender su propósito —un enfoque predeterminado común— podría abrir una caja de Pandora y desencadenar una cascada de problemas.
Un riesgo es que esto podría deshacer ajustes u optimizaciones legítimas, reintroduciendo potencialmente problemas que ya se habían abordado o interrumpiendo las operaciones de una herramienta de terceros valiosa.
Por ejemplo, consideremos un ajuste manual aplicado fuera del proceso IaC habitual para abordar un problema de producción repentino. Antes de revertir dichos cambios, es esencial codificarlos para preservar su intención e impacto o arriesgarse a recetar un remedio que podría resultar peor que la enfermedad.
Detección Encuentra Contexto
Ver a las organizaciones lidiar con estos dilemas ha inspirado el concepto de ‘Causa de Deriva.’ Este concepto utiliza lógica asistida por IA para filtrar grandes registros de eventos y proporcionar contexto adicional para cada deriva, rastreando los cambios hasta su origen — revelando no solo ‘qué’ sino también ‘quién’, ‘cuándo’ y ‘por qué.’
Esta capacidad de procesar registros no uniformes en bloque y recopilar datos relacionados con la deriva cambia el enfoque del proceso de reconciliación. Para ilustrarlo, permíteme llevarte de vuelta al escenario que mencioné antes y pintar una imagen de recibir una alerta de deriva de tu solución de detección — esta vez con contexto adicional.
Ahora, con la información proporcionada por Causa de Deriva, no solo puedes estar al tanto de la deriva, sino también profundizar para descubrir que el cambio fue realizado por John a las 2 a.m., justo en el momento en que la aplicación estaba manejando un aumento de tráfico.
Sin esta información, podrías asumir que la deriva es problemática y revertir el cambio, potencialmente interrumpiendo operaciones críticas y causando fallos posteriores.
Sin embargo, con el contexto adicional, puedes conectar los puntos, comunicarte con John, confirmar que la solución abordó un problema inmediato y decidir que no debería ser reconciliada ciegamente. Además, utilizando este contexto, también puedes comenzar a pensar en el futuro e introducir ajustes en la configuración para agregar escalabilidad y prevenir que el problema vuelva a ocurrir.
Este es un ejemplo simple, por supuesto, pero espero que sirva para mostrar el beneficio de tener contexto adicional de la causa raíz, un elemento que ha estado ausente durante mucho tiempo en la detección de desviaciones a pesar de ser estándar en otras áreas de depuración y solución de problemas. El objetivo, por supuesto, es ayudar a los equipos a comprender no solo lo que cambió, sino por qué cambió, capacitándolos para tomar la mejor acción con confianza.
Más allá de la gestión de IaC
Pero tener contexto adicional para las desviaciones, por importante que sea, es solo una pieza de un rompecabezas mucho más grande. Gestionar grandes flotas en la nube con recursos codificados introduce más desafíos que solo las desviaciones, especialmente a gran escala. Las herramientas de gestión de la infraestructura como código de última generación son efectivas para abordar la gestión de recursos, pero la demanda de una mayor visibilidad y control en entornos a escala empresarial está introduciendo nuevos requisitos y impulsando su evolución inevitable.
Una dirección hacia la que veo que esta evolución se está moviendo es la Gestión de Activos en la Nube (CAM), que rastrea y gestiona todos los recursos en un entorno en la nube, ya sea provisionado mediante IaC, APIs u operaciones manuales, proporcionando una vista unificada de los activos y ayudando a las organizaciones a comprender configuraciones, dependencias y riesgos, todos los cuales son esenciales para el cumplimiento, la optimización de costos y la eficiencia operativa.
Mientras que la gestión de IaC se centra en los aspectos operativos, la Gestión de Activos en la Nube enfatiza la visibilidad y comprensión de la postura en la nube. Actuando como una capa adicional de observabilidad, cierra la brecha entre los flujos de trabajo codificados y los cambios ad-hoc, proporcionando una vista integral de la infraestructura.
1+1 será igual a tres
La combinación de la gestión de IaC y CAM empodera a los equipos para gestionar la complejidad con claridad y control. A medida que se acerca el final del año, es la ‘temporada de predicciones’, así que aquí está la mía. Habiendo pasado la mayor parte de la última década construyendo y refinando una de las plataformas de gestión de IaC más populares (si puedo decirlo yo mismo), veo esto como la progresión natural de nuestra industria: combinar la gestión de IaC, la automatización y la gobernanza con una visibilidad mejorada de los activos no codificados.
Esta sinergia, creo, formará la base para un mejor tipo de marco de gobernanza en la nube — uno que sea más preciso, adaptable y a prueba de futuro. Para este momento, es casi un hecho que IaC es la base de la gestión de infraestructura en la nube. Sin embargo, también debemos reconocer que no todos los activos serán codificados. En tales casos, una solución de gestión de infraestructura de extremo a extremo no puede limitarse solo a la capa de IaC.
La próxima frontera, entonces, es ayudar a los equipos a expandir la visibilidad sobre los activos no codificados, asegurando que a medida que la infraestructura evoluciona, continúe funcionando sin problemas — un desvío reconciliado a la vez y más allá.
Source:
https://dzone.com/articles/the-problem-of-drift-detection-and-drift-cause-analysis