Perspective

Llevando a DevOps al siguiente nivel utilizando la Inteligencia Artificial (IA)

La rápida evolución de los ecosistemas empresariales, los entornos normativos y la “consumerización” de los mandatos de TI han aumentado la flexibilidad, la seguridad y la resistencia de nuestro sistema de TI como nunca antes.

Hasta ahora, hemos sido testigos de cómo la inteligencia artificial (IA) ha transformado todos los aspectos del negocio y las operaciones, los sistemas de TI subyacentes y los procesos de desarrollo. Si bien el proceso de SDLC ya se está agilizando y acelerando mediante el uso de Agile y DevOps, siguen existiendo desafíos en torno a las mentalidades y las brechas de habilidades que prevalecen para lograr la hiperautomatización y aprovechar sistemáticamente las mejores prácticas de ingeniería.

Curiosamente, la IA y el aprendizaje automático (ML) pueden acudir al rescate capturando grandes cantidades de datos generados por diversas ingenierías de software, incluidas las herramientas de CI/CD para crear modelos y detectar patrones. Estos modelos pueden utilizarse para detectar anomalías, predecir fallos y proporcionar soluciones, lo que nos permite dar un gran salto hacia la creación de sistemas autónomos de alto rendimiento. 

Veamos cómo las diferentes etapas de DevOps pueden beneficiarse de la IA:

1. Planificación continua

Las partes interesadas de la empresa esperan que las aplicaciones ofrezcan nuevas funcionalidades y resuelvan los problemas con rapidez. La planificación continua garantiza que se reciban aportaciones en diversas formas estructuradas y no estructuradas, como solicitudes de características o servicios, tickets de problemas, comentarios de los usuarios, encuestas y análisis de mercado. Estas aportaciones se evalúan constantemente, se convierten en historias de usuario y se trasladan a la cartera de productos.

El procesamiento del lenguaje natural (PLN) puede aprovecharse para interpretar entradas no estructuradas que pueden llegar a través de correos electrónicos, mensajes de voz, llamadas a agentes y comentarios en el sitio web. Ayuda a captar mejor las necesidades del usuario y los puntos débiles con la intención pertinente. Además, estas entradas pueden agregarse y resumirse para proporcionar información a los propietarios de los productos y a otras partes interesadas del negocio, permitiéndoles planificar y priorizar las características y las correcciones de errores para las siguientes versiones.

 

2. Integración continua

Este paso implica la integración del código de varios desarrolladores y la generación de compilaciones incrementales con regularidad para minimizar el riesgo. Un chatbot con capacidad de generación de lenguaje natural (NLG) ayuda a desencadenar compilaciones bajo demanda y a enviar alertas y notificaciones personalizadas en caso de problemas o fallos. Además, se pueden analizar los datos históricos de confirmaciones de código anteriores, las compilaciones y los registros generados para entender los patrones y crear puntos calientes para evitar errores similares en el futuro. El análisis estático del código y las pruebas unitarias son otras dos actividades vitales que pueden beneficiarse de la IA. Una vez que el análisis del código se activa en segundo plano y se completa después de que el desarrollador confirme el código, los resultados pueden introducirse en un motor de conversación. Este puede resumir los resultados mediante un motor de resumen de texto convertido en voz, lo que orientará al desarrollador para mejorar la calidad del código antes de las pruebas. 

 

3. Pruebas continuas

La IA puede aplicarse eficazmente en el proceso de garantía de calidad (QA) para aumentar las actividades auxiliares menos obvias pero críticas, más allá de la ejecución de las pruebas y la elaboración de informes. Por ejemplo, se puede complementar a los ingenieros de pruebas con un asistente inteligente que clasifique los defectos y detecte los duplicados automáticamente durante la ejecución de las pruebas. Esto puede optimizar significativamente el proceso de clasificación de defectos, que de otro modo es engorroso y requiere mucho tiempo.

En el caso de las pruebas fallidas, se pueden analizar los registros para descubrir patrones recurrentes, creando y entrenando modelos para predecir las causas de los fallos en futuras ejecuciones de pruebas. En el caso de los sistemas en producción, en los que la mayoría de los casos de prueba pueden estar ya disponibles, se puede aplicar la PNL para convertir estos casos de prueba en scripts que puedan ser consumidos directamente por los marcos de pruebas automatizados más populares, como Selenium o Appium. Además, las pruebas similares pueden agruparse en clústeres basados en patrones que surgen de la similitud semántica y el historial de éxitos o fracasos para ahorrar tiempo de ejecución y optimizar las pruebas de regresión.      

 

4. Despliegue continuo

La tecnología ha desempeñado un papel fundamental en la automatización del despliegue de software, desde la época en que las tareas de despliegue se activaban manualmente mediante scripts escritos a mano hasta la actualidad, en que el despliegue se automatiza en varias fases con un solo clic. A pesar de este avance, los despliegues fallidos y no óptimos con frecuentes retrocesos siguen siendo un problema para muchas organizaciones, lo que provoca retrasos en los lanzamientos y pérdidas de ingresos. La IA puede ser crucial para manejar la complejidad de los despliegues y reducir las tasas de fracaso.

Por ejemplo, se pueden crear ontologías de los infractivos de una organización, incluyendo el software, las bases de datos y el hardware, para diferentes entornos como el de desarrollo-prueba, el de preparación y el de producción. Esto es posible utilizando una combinación de conocimientos de expertos en la materia, bases de datos de gestión de la configuración (CMDB) y herramientas de descubrimiento de redes. Los registros específicos del sistema y de la aplicación generados durante las implantaciones anteriores pueden almacenarse, analizarse junto con los elementos de la ontología para predecir posibles fallos en futuras implantaciones. Estos fallos pueden compararse con los resultados de las implantaciones reales para identificar nuevos patrones en los que aplicar el aprendizaje para tomar medidas preventivas que hagan más predecibles y fiables las implantaciones futuras.    

 

5. Supervisión y retroalimentación continuas

La supervisión de las versiones de producción permite a los propietarios de los productos, al departamento de control de calidad y a los equipos de desarrollo comprender cómo funcionan y se utilizan las aplicaciones. Las aplicaciones, los sistemas dependientes, las herramientas y otros componentes de la red generan enormes datos en forma de alertas, incidentes, registros, eventos y métricas. La IA puede ayudar a generar ideas a partir de este gran conjunto de datos creando modelos entrenados mediante el aprendizaje supervisado y no supervisado. Estos modelos pueden ayudar a identificar comportamientos anómalos, que pueden causar posibles vulnerabilidades y fallos.

Además, se pueden obtener comentarios explícitos sobre los problemas a los que se enfrentan los usuarios finales utilizando diferentes canales como correos electrónicos, mensajes de texto y conversaciones interactivas basadas en la voz. Estos comentarios y patrones de uso pueden procesarse para realizar un mejor análisis de sentimiento y usabilidad al tiempo que se comprende la experiencia del cliente con el producto o servicio. En última instancia, el resultado de este análisis puede utilizarse como información clave para el mantenimiento perfectivo o la creación de nuevas historias de usuario que conduzcan a la mejora de la experiencia del usuario.     

Conclusión

Las tecnologías digitales ya están transformando los negocios en todos los sectores. DevOps desempeña un papel fundamental en esta historia de transformación, ya que garantiza que los productos y servicios basados en las tecnologías de la nueva era estén listos para su consumo de forma fluida y fiable. La IA promete llevar el movimiento DevOps al siguiente nivel, infundiendo inteligencia basada en las mejores prácticas y eliminando los errores humanos y del sistema. Esto no solo puede acelerar significativamente el ciclo desde el concepto hasta el despliegue, sino que nos permite hacer realidad el objetivo aparentemente inalcanzable de construir sistemas autónomos flexibles, con capacidad de autoaprendizaje y con capacidad de respuesta.

 

Aman Chandra

Vicepresidente
Automatización inteligente & Pruebas

Aman cuenta con más de 25 años de experiencia en el sector de las TI que abarcan la ingeniería digital, la automatización inteligente y la excelencia en la entrega. Actualmente dirige la práctica de DevOps e Ingeniería de Calidad en Virtusa, que es responsable de los servicios de consultoría y asesoramiento, el desarrollo de competencias y la ingeniería de soluciones para clientes globales. Aman tiene múltiples patentes en su haber en la aplicación de técnicas de IA/ML para automatizar y optimizar el proceso de SDLC.

Virtusa puede ayudar a su organización a modernizar y escalar sus prácticas DevOps aprovechando las técnicas de IA/ML
Contenido relacionado