Sí o sí, los sistemas fallan en algún momento y las consecuencias pueden ser incalculables en la atención a clientes. La disponibilidad de sistemas que se auto reparan o “curan” está aún a discusión. Conozca si es solo hype o vale la pena el esfuerzo.
Self-healing es hacer que un sistema sea capaz de tomar sus propias decisiones al monitorear y optimizar continuamente su estado y adaptarse de manera automática a las nuevas condiciones. El propósito es hacer un sistema responsivo y tolerante a fallas, capaz de adaptarse a los cambios en la demanda y recuperarse de los errores que detecte.
En esta economía de las aplicaciones, donde la experiencia del usuario es la medida del éxito, el costo de un sistema “caído” es incalculable. Por ello y gracias a la convergencia de varias tecnologías, el concepto de los sistemas auto reparables está adquiriendo de nuevo vigencia e importancia.
Detectar, reportar y remediar los incidentes que se presenten en la infraestructura es la promesa de esta arquitectura, que es parte del modelo de computación autonómica. Se trata de sistemas que se pueden configurar, optimizar, ajustar y arreglar por sí mismos en caso de descompostura, además de protegerse de intrusos. El proceso es similar al que hacen las células del ser humano y el DNA para mantener el balance en el organismo.
La complejidad
El sueño de una infraestructura IT que tenga capacidad de auto reparación puede realizarse a través de pequeñas unidades de microservicios. Dependiendo del tamaño y tipo de recursos monitoreados, sobre los que se tenga control total, los sistemas self-healing trabajan en tres niveles: aplicaciones, sistema y hardware.
Para el primero, se recomiendan herramientas como Akka para crear aplicaciones y servicios con la capacidad de auto corregirse internamente. En el nivel del sistema, los expertos recomiendan el monitoreo de fallas de proceso y tiempo de respuesta, para lo cual son necesarias notificaciones y la posterior intervención humana para investigar la causa del error, corregir el diseño del servicio o eliminar el bug.
A nivel de hardware, sería mentira afirmar que existen fierros a prueba de fallas. No se puede tener un proceso que automáticamente repare una memoria, un disco duro descompuesto, una descompostura del CPU, etcétera. La auto reparación a este nivel implica mover los servicios de un nodo enfermo a uno sano. Tal como a nivel del sistema, el consejo es checar los componentes del hardware periódicamente, más como un mantenimiento preventivo que propiamente como un sistema self-healing.
En el artículo How to Create a Self-Healing IT Infrastructure, Vladimir Fedak reconoce que crear una infraestructura del tipo puede tomar de cinco a 10 años. Su roadmap contempla cinco grandes rubros: usar infraestructura como código (IaC); desarrollar pruebas automatizadas para todos los estados del sistema y del código de software; crear sistemas holísticos de logging y monitorero; contar con lo último en alertas inteligentes, triggers y analítica; y supervisar el rendimiento de89i87 infraestructura IT que tenga capacidad de auto aprendizaje y de auto curación.
Para Viktor Farcic, estratega en desarrollo de software de Cloudbees, la auto reparación del hardware tiene más que ver con la prevención. La mayoría de las organizaciones adoptan sistemas reactivos de auto curación: una vez detectada la falla, el sistema reacciona y vuelve a su estado deseado. Sin embargo, lo ideal sería tener sistemas preventivos, es decir, predecir posibles fallas con base en datos. Aquí la dificultad reside en cuáles datos elegir.
Lejos ¿o cerca?
Para Fedak, en las condiciones actuales resulta muy oneroso dedicar equipos DevOps a desarrollar este tipo de sistemas, y aconseja esperar a que existan plataformas similares a AWS Lambda, Kubernetes y otras de código abierto para que se pueda crear y aprovechar infraestructura IT self-healing. Farcic, en cambio, adopta otra perspectiva quizá más optimista. Dedica varios capítulos de su libro The DevOps 2.0 Toolkit al tema. Aunque el libro ya no está disponible a la venta, sus recomendaciones pueden encontrarse en su blog Technology Conversations.
Al cuerpo humano le tomó cientos de miles de años de evolución ser capaz de reponerse de una enfermedad. Así que más vale comenzar de una vez a construir sistemas capaces de auto repararse.