Asistentes inteligentes en las operaciones IT ¿cómo nos puede echar una mano la IA generativa?
DevOps lleva siendo desde hace muchos años una metodología que promueve la mejora continua y la automatización: resuelve los problemas y dependencias entre el desarrollo del software y las operaciones IT. Y es en el lado de las operaciones tecnológicas donde se ha visto en los últimos años una necesidad de transformación y avance para mejorar al mismo ritmo que lo hacen el desarrollo software y los productos tecnológicos.
Lo que se busca conseguir es una automatización y asistencia inteligente a los procesos de operación. Y es que esta meta puede llegar a ser una realidad hoy en día gracias a la aparición de nuevas tecnologías disruptivas provenientes de la inteligencia artificial.
El término AIOps, acuñado por primera vez por Gartner, se refiere a la práctica de utilizar inteligencia artificial (IA) para automatizar y mejorar las operaciones de TI. Ya existen líneas de investigación maduras en este campo que abordan temas como la monitorización del rendimiento, la detección de problemas de disponibilidad o el análisis de causa raíz de DevOps (RCA4).
Pero ¿son suficientes? ¿suponen realmente una descarga y asistencia real a los operadores-ingenieros DevOps? Nuestra opinión es que el alcance actual de estas soluciones está orientado a objetivos muy concretos y con curvas de aprendizaje muy complejas. Creemos que la solución debe ser más sencilla, accesible y genérica al mundo operación.
IA generativa, una nueva técnica para acelerar DevOps
En este artículo queremos centrarnos en una nueva línea de investigación de la IA de gran auge en este último año como son las técnicas de IA generativa. Estos modelos de aprendizaje automático se basan en aprender los patrones y las relaciones de un conjunto de datos de contenido creado por personas, y utilizar los patrones aprendidos para generar contenido.
Es fácil deducir que son técnicas muy atractivas y útiles para mejorar procesos reproducibles o automatizables; que como ya hemos mencionado son características y objetivos muy comunes en las tareas que se realizan en operaciones de IT. Y es que la adopción de este tipo de técnicas aplicadas a la mejora de la eficiencia de los desarrolladores ha sido muy veloz.
En estos ejemplos se ve claro el potencial:
- Generación de código: desde sugerir cómo finalizar una línea o bloque de código, hasta crear rutinas o programas completos basados en las solicitudes detalladas de un usuario.
- Generación de pruebas: crear datos y casos de prueba como parte de las pruebas de software.
De forma consecuente, la explosión de herramientas que han surgido bajo este concepto es enorme. La mayoría de ellas centradas en la asistencia a la generación de códigos en los diferentes lenguajes de programación de más interés.
- Por ejemplo, una de las más conocidas es Codeium, que proporciona capacidades de autocompletado, chat y búsqueda en más de 70 idiomas, con velocidades ultrarrápidas y una calidad de sugerencia muy alta.
- Existen otras herramientas orientadas a un lenguaje concreto. Es el caso de Sourcery, un asistente a la codificación que te ayudará a mejorar tu código Python.
- Y por último nombrar herramientas muy ligadas a usarse en entornos de IDE como es la asociación de GitHub Copilot con Neovim, JetBrains IDEs, Visual Studio, y Visual Studio Code. La tónica general en todas ellas es la asistencia a la codificación, que es la tarea en la que más claramente aporta la IA generativa “generando” sugerencias u opciones de fragmentos de código.
El campo relativo a las pruebas está menos trabajado, pero también hay opciones bastante potentes en herramientas, que cubren dos grandes retos como es el aumento de la cobertura y eficiencia de las pruebas o mejorando la detección de bugs y vulnerabilidades.
La IA generativa puede generar casos de prueba que cubren múltiples combinaciones de navegadores, plataformas y dispositivos, asegurando una cobertura integral sin la necesidad de una extensa configuración manual del entorno y creación de casos de prueba.
- Un ejemplo con herramientas muy comunes de testing como Selenium puede ser el de iniciar una sesión de Selenium e ingresar datos generados con ChatGPT, mediante un mensaje que le pide al Chatbot, para que cree datos de prueba de apariencia realista.
Una nueva visión de la operación TI gracias a la IA
Desde TECNALIA queremos empezar a trabajar más estas nuevas ideas que aporta la IA generativa en el campo de la operación. Llevamos ya tiempo trabajando en AIOps, con líneas como técnicas de optimización para la prescripción y orquestación de procesos -recursos en entornos complejos Cloud-Edge Computing, pero ahora queremos ir un paso más allá y ver hasta dónde nos lleva la adopción de la IA generativa en tres escenarios:
- Monitorización inteligente: en base a analizar el código (tanto humano como IA), fixes (resoluciones de errores sw) propuestos anteriormente y la definición de los despliegues realizados, junto a las alertas previamente configuradas en infraestructura y aplicación, se podrían proponer alertas automáticas (por ejemplo, alertas de rendimiento) para cada despliegue de una forma más personalizada para llevar una monitorización más ajustada y eficiente, que permita la detección de degradaciones en menor tiempo y con menor esfuerzo de supervisión.
- Canalizaciones CI/CD-despliegues optimizados. Por ejemplo, recomendar las pipelines de despliegue continuo en base a las declaraciones previas, por ejemplo, en servidores Jenkins combinándolos con errores de despliegue o fallos en los artefactos y elementos de la infraestructura.
- IaC aprovisionamiento automático dependiendo de la tipología de proyecto. En este caso podría ser tan simple como aplicar las herramientas de ayuda a la codificación basadas en IA generativa a lenguajes de IaC como Terraform o Ansible, hasta combinar este conocimiento con los logs de aplicaciones y las definiciones asociadas de despliegue.
Monitorización, el despliegue o el aprovisionamiento
Puede verse que los tres escenarios están orientados a mejorar tres tareas comunes en operación, como es la monitorización, el despliegue o el aprovisionamiento. Por esta razón son los tres puntos en los que desde TECNALIA hemos centrado nuestros esfuerzos. Consideramos que habilitan grandes posibilidades.
Analizando los trabajos de esta área no hemos encontrado información sobre herramientas, soluciones o trabajos incipientes que traten estos temas, lo que nos impulsa a intentar ofrecer una respuesta a este problema.
Metodologías DataOps, Data Quality y Data Steward
Por último, no queremos pasar sin mencionar otros campos en los que la IA generativa puede tener un gran éxito de aplicación como son las metodologías DataOps y temas como Data Quality o Data Steward. Por ejemplificar, una línea de trabajo que desde TECNALIA vemos con gran futuro es la utilización de IA generativa en la construcción; son las herramientas de calidad de datos más potentes.
El desarrollo de nuevas soluciones en este dominio implica retos y oportunidades que implican equipos muy diversos y un conocimiento profundo de la IA y de DevOps. Es importante materializar las posibilidades de la forma correcta para, en los proyectos, lograr un éxito de los procesos en su fase DevOps y facilitar a las empresas su implantación y utilización.
Nuestra misión es acelerar el paso a producción y mejorar la operación de las soluciones desarrolladas ya sean propias o ajenas, y en esto creemos que este stack de soluciones de apoyo que estamos ideando/trabajando y que presentamos en este texto puede ser un gran aliado.
**Artículo redactado en colaboración con Juan López de Armentia, Gorka Zarate y Ana Torre