La desviación de la configuración se produce cuando una red, una aplicación, un dispositivo u otro sistema de TI se aleja, de forma gradual e involuntaria, de su configuración de referencia prevista. Los problemas de rendimiento provocados por desviaciones en la configuración, y el tiempo de inactividad resultante, pueden costar a las empresas miles de dólares por minuto.
Hasta cierto punto, la desviación de la configuración es inevitable a lo largo del ciclo de vida de un sistema. Esto puede deberse a cambios manuales en una red que afectan la manera en que sus componentes interactúan entre sí, o a herramientas automatizadas que modifican la configuración de formas que los administradores no habían previsto. Sin la documentación adecuada, se pueden realizar cambios incompatibles o perjudiciales a medida que los antiguos administradores se van y se incorporan nuevos.
Un ejemplo tradicional de desviación de la configuración es el caso de un administrador que aplica un arreglo a un servidor en un entorno de carga equilibrada, pero no a los demás. Aunque el sistema continúe funcionando con normalidad por el momento, pueden surgir problemas más adelante. El servidor parcheado podría utilizar una nueva biblioteca que no sea compatible con futuras actualizaciones de la red, las cuales se basan en las condiciones originales, lo que podría provocar interrupciones e ineficiencias.
La desviación de la configuración no solo representa una amenaza para el rendimiento. Los sistemas que se alejan de su configuración prevista pueden volverse más vulnerables a los actores malintencionados y a filtraciones de datos. Por ejemplo, si las reglas del cortafuegos no se actualizan a medida que se agregan nuevos recursos a una red, los hackers pueden colarse directamente.
Las desviaciones en la configuración también pueden afectar el estado de cumplimiento. Una organización puede no superar una auditoría si la documentación de la red describe un conjunto de configuraciones de seguridad, pero el entorno real es diferente.
Los profesionales de DevOps y los administradores de sistemas tienen herramientas a su disposición para evitar errores de configuración y combatir la desviación de la configuración. Las herramientas de infraestructura como código (IaC), como Terraform, conectan la configuración de red a un archivo de configuración que sirve como fuente de información. Los archivos de configuración ayudan a garantizar que los nuevos recursos de red se aprovisionen automáticamente en el estado adecuado, lo que reduce las posibilidades de desviación.
Las herramientas de observabilidad brindan a los administradores visibilidad de métricas, registros y rastreos, lo que les ayuda a detectar desviaciones de la configuración a medida que ocurren y aplicar arreglos. La infraestructura inmutable limita la desviación al descartar los servidores obsoletos en lugar de aplicarles arreglos. La deriva de la configuración también se maneja mediante herramientas de administración de configuración como Ansible.
Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y más con el boletín Think. Consulte la Declaración de privacidad de IBM.
La desviación de la configuración suele deberse a cambios manuales en las configuraciones del sistema, fallas en la automatización, problemas a nivel organizacional que crean incongruencias o alguna combinación de estos factores.
Los arreglos manuales únicos son la causa principal de la desviación de la configuración.
Un “hotfix”, o una corrección aplicada fuera del programa de actualización normal, puede solucionar problemas urgentes inmediatos, como un servidor que está configurado en un valor de tiempo de espera incorrecto y, por lo tanto, sigue fallando. Pero este tipo de cambio en la configuración puede provocar fallas en el sistema a largo plazo:
El número de formas en que el error humano o simplemente las consecuencias imprevistas pueden alejar al sistema del estado en el que “debería” estar es casi ilimitado. Incluso los pequeños cambios pueden acumularse de tal manera que el entorno de producción en vivo se parezca poco al repositorio, plagado de errores y riesgos de seguridad.
Sin pruebas y supervisión adecuadas, las actualizaciones y los procesos automatizados pueden hacer que importantes recursos de red se desvíen de sus configuraciones previstas.
La automatización es tan buena como su fuente de información. Por ejemplo, si una herramienta de IaC se basa en archivos de configuración obsoletos para poner en marcha nuevos servidores, podría terminar dañando el entorno. Las actualizaciones automatizadas de software de aplicaciones y sistemas operativos, como Microsoft Windows, pueden aplicarse en diferentes momentos en todos los servidores, lo que provoca una divergencia potencialmente dañina. Y es posible que estas actualizaciones no funcionen bien con la arquitectura de red única de una organización, lo que causa más problemas.
Incluso las herramientas diseñadas para gestionar la configuración pueden causar desviación en las circunstancias adecuadas. Por ejemplo, los problemas de conectividad pueden hacer que Ansible aplique una actualización de configuración de manera desigual, dejando un servidor sin cambios. Ese servidor se desviará gradualmente de su entorno, lo que podría causar interrupciones del servicio.
A nivel organizacional, los problemas con el pipeline de integración continua/entrega continua (CI/CD) y las prácticas de DevOps pueden generar problemas de configuración.
Cuando los equipos de desarrollo, operaciones y seguridad están aislados entre sí, la confusión, la falta de comunicación y la resolución inadecuada de problemas son inevitables. Además de las prácticas técnicas divergentes, los equipos dentro de una organización pueden tener sus propias prácticas para la gestión de cambios. Algunas organizaciones carecen por completo de procesos formales de gestión de cambios.
La falta de prácticas claras y establecidas para realizar y documentar cambios puede dar lugar a registros de cambios incoherentes, cambios no autorizados y flujos de trabajo de aprobación no aplicados. En última instancia, los administradores, desarrolladores e ingenieros podrían eludir por completo el proceso de gestión de cambios.
La desviación de la configuración plantea riesgos significativos para la seguridad, el rendimiento y el estado de cumplimiento de un sistema.
La desviación de la configuración puede aumentar significativamente la superficie de ataque de una organización al crear excepciones a las políticas de seguridad que siguen siendo desconocidas para los administradores y, por lo tanto, no están fijas.
Por ejemplo, una credencial creada para aplicar un hotfix podría quedar en su lugar, vulnerable a hackers que podrían usarla con fines maliciosos. Del mismo modo, un ingeniero podría hacer una excepción a una regla de cortafuegos de que nunca vuelve y se cierra, lo que debilita significativamente la postura de seguridad general de la red. Los desarrolladores pueden activar una aplicación con controles de seguridad incompletos para probarla y nunca desactivarla, creando otra vulnerabilidad de seguridad para que los actores maliciosos la exploten.
Del mismo modo, cada nueva aplicación, endpoint u otro recurso agregado a un sistema puede causar una desviación de la configuración si no se aplican los controles de seguridad adecuados. Por ejemplo, agregar un nuevo servidor sin configurar el sistema de detección y respuesta de endpoints (EDR) adecuado puede crear un enlace débil. Un simple error en la configuración de microservicios puede llevar a que una gran cantidad de activos desprotegidos ingresen a la red.
Junto con la ciberseguridad, el rendimiento de la red es el riesgo más significativo y costoso que plantea la desviación de la configuración.
Tomemos el ejemplo de un servidor que tiene un tráfico más pesado que sus contrapartes. Es posible que el tamaño del pool de conexiones de este servidor aumente con un hotfix para mejorar el rendimiento. Debido a que este servidor está detrás de un balanceador de carga, el balanceador establece automáticamente una política para generar más tráfico y distribuir la carga del servidor de manera más uniforme.
Cuando el servidor se reemplaza durante un nuevo despliegue, el hotfix que aumentó su pool ya no está en su lugar y el servidor se bloquea debido al tráfico adicional. El hotfix original aplicado al tráfico de velocidad es la desviación. Cuando no se tiene en cuenta, los cambios adicionales en la red pueden generar un costoso tiempo de inactividad hasta que se identifique la causa.
La desviación de la configuración puede hacer que una organización deje de cumplir sin siquiera ser consciente de ello. Cuando el estado de una red diverge de lo que una organización “piensa” que está haciendo, o lo que su documentación dice que está haciendo, la organización corre el riesgo de incumplimiento. Aunque el incumplimiento no sea intencional, la organización podría verse obligada a pagar multas y recargos.
Tomemos el ejemplo de la Ley de Portabilidad y Responsabilidad del Seguro Médico (HIPAA). La HIPAA exige que las organizaciones utilicen determinados métodos de cifrado para proteger los datos confidenciales tanto en tránsito como en reposo.
Supongamos que un administrador necesita integrar un sistema heredado en su red que cumple con la HIPAA, y que dicho sistema utiliza un método de cifrado obsoleto. Si no se aborda este método de cifrado, la integración hará que la organización no cumpla con la HIPAA.
La detección de desviaciones (la práctica de rastrear cambios en la red e identificar divergencias respecto a su estado previsto) requiere una combinación de herramientas que incluyen infraestructura como código, GitOps, infraestructura inmutable y observabilidad.
La infraestructura como código, la práctica de aprovisionar y gestionar la infraestructura de TI mediante el uso de scripts en lugar de procesos manuales, es una de las herramientas más poderosas para la gestión de desviaciones de configuración.
IaC ayuda a abordar la desviación de la configuración al convertir el estado deseado de la red en una pieza de código controlado por versión con el que se pueden comparar todos los componentes de la red.
Por ejemplo, en Terraform, cuando se realiza un cambio, la herramienta IaC compara el archivo de estado (la vista más actualizada de la red de la plataforma) con los archivos de configuración declarados, es decir, los archivos que dicen lo que la red “debería” ser. A continuación, Terraform resuelve las discrepancias entre el archivo de estado y la configuración declarada actualizando la infraestructura para que coincida con el archivo de configuración, lo que reduce las posibilidades de que se produzcan desviaciones.
Cuando las organizaciones imponen un estricto control de acceso a las herramientas de IaC, pueden reducir aún más las oportunidades de desviación. Al limitar el acceso a IaC solo a las personas autorizadas que lo necesitan, las organizaciones limitan la capacidad de cambiar las configuraciones de infraestructura en general. Y cuando se realizan cambios, pasan por el proceso de control de versiones de IaC, lo que mitiga aún más el riesgo de desviación.
GitOps es una práctica de DevOps que utiliza el repositorio de código abierto Git como única fuente de información para los archivos de configuración. GitOps ayuda a muchas organizaciones a desplegar IaC con la máxima eficiencia y seguridad.
Las prácticas de GitOps se centran en el uso de la automatización para validar el estado de la red frente al estado deseado almacenado en Git en tiempo real. Las plataformas GitOps pueden escanear continuamente redes, detectar errores de configuración y marcarlos o aplicar arreglos, haciendo que cualquier desviación que ocurra sea temporal. Y debido a que todos los cambios están vinculados a Git, todos se rastrean con un autor, marca de tiempo y descripción.
La infraestructura inmutable mitiga las desviaciones de configuración al reducir drásticamente el número total de ocasiones en las que se puede modificar la configuración de la red.
La infraestructura inmutable es la práctica de reemplazar, no modificar, servidores y otros recursos de TI cuando se necesitan cambios.
Por ejemplo, supongamos que un servidor necesita una actualización de seguridad. En lugar de aplicar la actualización al servidor existente, los administradores desmantelarían el servidor y lo reemplazarían por uno nuevo y actualizado.
La infraestructura inmutable se basa en las herramientas de IaC para desplegar automáticamente nuevos sistemas como se describe en el código cuando se necesitan cambios. Cada nuevo componente agregado a la red coincide automáticamente con el estado deseado.
Las tres prácticas de IaC, GitOps e infraestructura inmutable están estrechamente entrelazadas. Las herramientas de IaC definen las imágenes de los componentes de red, mientras que GitOps facilita el despliegue, crea un registro completo de la red y evita discrepancias.
Los tres pilares de la observabilidad (registros, métricas y rastreos) también influyen en la prevención de la desviación de la configuración.
Una plataforma de observabilidad, por ejemplo, podría detectar que las métricas en un servidor (como los tiempos de respuesta o el uso de CPU) difieren significativamente de los servidores que deberían tener configuraciones idénticas. Esta divergencia es un posible síntoma de deriva. Del mismo modo, las discrepancias en los registros de la tasa de errores de cada servidor pueden indicar una desviación si un servidor tiene un número anormalmente alto de errores de un determinado tipo. Los rastros de la cadena de llamadas de una aplicación también pueden revelar ubicaciones que experimentan desviaciones y deriva.
La detección de desviaciones consiste en comparar el estado real de una red con el estado deseado para detectar discrepancias. Si bien hipotéticamente se puede llevar a cabo este proceso de forma manual, muchos proveedores de nube e IaC ofrecen herramientas con funcionalidad de detección de desviaciones, lo que ayuda a automatizar y agilizar un proyecto que, de otro modo, consumiría mucho tiempo.
Por ejemplo, AWS Config registra las configuraciones de los módulos de AWS, señala cualquier desviación del estado deseado y ayuda a corregir las desviaciones. Las evaluaciones de estado de Terraform verifican que la configuración real de la infraestructura coincida con la registrada en el archivo de estado del espacio de trabajo y comprueban continuamente que los recursos cumplan con los controles obligatorios definidos en las configuraciones del sistema.
Terraform Enterprise compara las condiciones con el archivo de estado o actualiza el archivo de estado para reflejar las condiciones reales, revelando los cambios. Las herramientas de gestión de la configuración, como Ansible y Puppet, también se pueden utilizar para la detección de desviaciones.
Aproveche el poder de la IA y la automatización para resolver problemas de manera proactiva en toda la pila de aplicaciones.
Descubra cómo la IA para las operaciones de TI ofrece los insights que necesita para ayudar a impulsar un rendimiento empresarial excepcional.
Impulse la transformación digital escalable con la experiencia de la industria de IBM Consulting.