IA generativa en la modernización de aplicaciones

Estudiante tomando notas para una clase virtual en un cuaderno

La modernización de aplicaciones es el proceso de actualizar aplicaciones heredadas aprovechando tecnologías modernas, mejorar el rendimiento, ayudar a adaptarlas a las velocidades cambiantes del negocio mediante la infusión de principios nativos de la nube como DevOps, infraestructura como código, etc.

El tratamiento de las aplicaciones heredadas podría ir desde la reescritura completa hasta el realojamiento en función del valor, la criticidad y los objetivos. También es un hecho conocido que los beneficios son mayores para la reescritura, ya que brinda la oportunidad de llegar a un verdadero modelo nativo de la nube con un alto grado de agilidad y velocidad. Muchos CIO y CTO dudan a la hora de invertir debido al coste y los plazos que conlleva la obtención de valor, a la vez que son capaces de equilibrar entre las iniciativas de reescritura de alta inversión frente a los enfoques de rehosting de bajo valor. Los proveedores de servicios y los proveedores de herramientas están tratando de abordar este espacio mediante la creación de aceleradores que podrían personalizarse para el consumo empresarial y ayudar a acelerar áreas específicas de modernización: Evolvware,IBM Consulting Cloud Accelerators y herramientas específicas para proveedores de servicios en la nube.

Mientras intenta acelerar y optimizar el coste de la modernización, la IA generativa se está convirtiendo en un facilitador fundamental para impulsar cambios en la forma en que aceleramos los programas de modernización. Este artículo se centra en las posibilidades de la IA generativa en el proceso de modernización de aplicaciones.

Las últimas tendencias en IA, presentadas por expertos

Obtenga conocimientos organizados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

Resumen de la modernización de aplicaciones

La modernización de aplicaciones es el proceso de actualizar aplicaciones heredadas aprovechando tecnologías modernas, mejorar el rendimiento, ayudar a adaptarlas a las velocidades cambiantes del negocio mediante la infusión de principios nativos de la nube como DevOps, infraestructura como código, etc. La modernización de aplicaciones comienza con la evaluación de las aplicaciones heredadas, los datos e infraestructuras actuales y la aplicación de la estrategia adecuada de modernización (realojar, replataformar, refactorizar o reconstruir) para lograr el resultado deseado. Si bien la reconstrucción produce el máximo beneficio, existe una necesidad de un alto grado de inversión, mientras que el realojamiento consiste en mover aplicaciones y datos como tales a la nube sin ninguna optimización y esto requiere menos inversiones mientras que el valor es bajo. Las aplicaciones modernizadas se implementan, monitorizan y mantienen, con iteraciones continuas para seguir el ritmo de los avances tecnológicos y empresariales. Los beneficios típicos obtenidos irían desde una mayor agilidad, rentabilidad y competitividad, mientras que los retos incluyen la complejidad y la demanda de recursos. Muchas empresas se están dando cuenta de que el paso a la nube no les está aportando el valor deseado ni la agilidad y velocidad necesarias más allá de la automatización básica a nivel de plataforma. El verdadero problema radica en cómo está organizada la TI, lo cual se refleja en cómo se construyen y gestionan sus aplicaciones/servicios actuales (véase la ley de Conway). Esto, a su vez, conduce a los siguientes desafíos:

  • Las capacidades duplicadas o superpuestas que ofrecen múltiples sistemas y componentes informáticos generan dependencias y proliferaciones persistentes que afectan a la productividad y la rapidez de salida al mercado.
  • Las capacidades duplicadas entre aplicaciones y canales dan lugar a recursos TI duplicados (como habilidades e infraestructura)
  • Las capacidades duplicativas (incluidos los datos) que dan lugar a la duplicación de reglas de negocio, por ejemplo, dan lugar a una experiencia del cliente incoherente.
  • La falta de alineación de las capacidades de TI con las capacidades empresariales afecta al tiempo de lanzamiento al mercado y a la TI empresarial. Además, las empresas acaban creando varios parches y capas arquitectónicas para apoyar las nuevas iniciativas e innovaciones empresariales.
  • Las tecnologías heredadas y la naturaleza monolítica impactan la velocidad y la agilidad, además de la seguridad y la postura de cumplimiento.

Por lo tanto, las iniciativas de modernización de aplicaciones deben centrarse más en el valor para el negocio y esto implica un elemento significativo de transformación de las aplicaciones en componentes y servicios alineados con las capacidades empresariales. El mayor desafío de esto es la cantidad de inversión necesaria y muchos CIO y CTO dudan en invertir debido al coste y los plazos que implica la obtención de valor. Muchos están abordando esto mediante la creación de aceleradores que podrían personalizarse para el consumo empresarial que ayuden a acelerar áreas específicas de la modernización y un ejemplo de IBM es IBM Consulting Cloud Accelerators. Mientras intenta impulsar la aceleración y optimizar el coste de la modernización, la IA generativa se está convirtiendo en un facilitador crítico para impulsar cambios en la forma en que aceleramos los programas de modernización. Exploraremos áreas clave de aceleración con un ejemplo en este artículo.

A continuación se muestra un ciclo de vida simplificado de los programas de modernización de aplicaciones (no pretende ser exhaustivo). El descubrimiento se centra en entender la aplicación heredada, la infraestructura, los datos, la interacción entre las aplicaciones, los servicios y los datos y otros aspectos como la seguridad. La planificación desglosa el complejo portfolio de aplicaciones en iteraciones que se modernizarán para establecer una hoja de ruta iterativa (y establecer un plan de ejecución para implementar la hoja de ruta).

 

AI Academy

El auge de la IA generativa para empresas

Conozca el auge histórico de la IA generativa y lo que significa para las empresas.

Las actividades de la fase de plan cambian según la estrategia de modernización (desde descomponer la aplicación y aprovechar el diseño orientado por dominio o establecer arquitectura objetivo basada en nueva tecnología para construir diseños ejecutables). Las fases siguientes son la creación, las pruebas y la implementación en producción. Exploremos las posibilidades de la IA generativa en estas áreas del ciclo de vida.

Descubrimiento y diseño

La capacidad de comprender las aplicaciones heredadas con una participación mínima de los expertos en la materia es un punto de aceleración crítico. Esto se debe a que, en general, las pymes están ocupadas con iniciativas de sistemas ligeros, mientras que su conocimiento podría verse limitado en función del tiempo que hayan estado dando soporte a los sistemas. En conjunto, el descubrimiento y el diseño son donde se dedica tiempo significativo durante la modernización, mientras que el desarrollo es mucho más sencillo una vez que el equipo ha descifrado la funcionalidad de la aplicación heredada, los aspectos de Integración, la lógica y la complejidad de los datos.

Los equipos de modernización realizan su análisis de código y revisan varios documentos (en su mayoría fechados); aquí es donde su confianza en las herramientas de análisis de código se vuelve importante. Además, para las iniciativas de reescritura, es necesario asignar las capacidades funcionales al contexto de la aplicación heredada para realizar ejercicios eficaces de diseño/descomposición basados en el dominio. La IA generativa se vuelve muy útil aquí a través de su capacidad para correlacionar las capacidades de dominio/funcionales con el código y los datos y establecer la vista de capacidades empresariales y el código y los datos de las aplicaciones conectadas; por supuesto, los modelos deben ajustarse/contextualizarse para un modelo de dominio empresarial determinado o un mapa de capacidades funcionales. El mapeo de API asistido por IA generativa mencionado en este documento es un mini ejemplo de esto. Mientras que lo anterior es para la descomposición/diseño de la aplicación, la tormenta de eventos necesita mapas de procesos y aquí es donde la IA generativa ayuda a contextualizar y mapear los extractos de las herramientas de minería de procesos. La IA generativa también ayuda a generar casos de uso basados en conocimientos de código y mapeo funcional. En general, la IA generativa ayuda a reducir el riesgo de los programas de modernización al garantizar una visibilidad adecuada de las aplicaciones heredadas, así como de las dependencias.

La IA generativa también ayuda a generar diseño de objetivos para un marco específico de proveedor de servicios en la nube, ajustando los modelos basándose en un conjunto de patrones estandarizados (ingreso/egreso, servicios de aplicaciones, servicios de datos, patrones compuestos, etc.). Del mismo modo, existen otros casos de uso de IA generativa que incluyen la generación de patrones de código específicos del marco tecnológico objetivo para controles de seguridad. La IA generativa ayuda a generar especificaciones de diseño detalladas, por ejemplo, historias de usuario, marcos de conexión de experiencia de usuario, especificaciones de API (por ejemplo, archivos Swagger), diagramas de relación de componentes y diagramas de interacción de componentes.

Planificación

Una de las tareas difíciles de un programa de modernización es poder establecer una hoja de ruta macro mientras equilibra esfuerzos paralelos frente a dependencias secuenciales e identifica escenarios de coexistencia a abordar. Si bien esto normalmente se realiza como una tarea única (realineación continua a través de incrementos de programa (PI), los ejercicios de planificación que incorporan entradas de nivel de ejecución son mucho más difíciles. La IA generativa resulta útil para poder generar hojas de ruta basadas en datos históricos (aplicaciones a mapas de áreas de dominio, factores de esfuerzo y complejidad, patrones de dependencia y más), aplicándolo a aplicaciones dentro del ámbito de un programa de modernización, para un sector o dominio determinado.

La única forma de abordar esto es hacerlo consumible a través de una suite de activos y aceleradores que puedan abordar la complejidad de la empresa. Aquí es donde la IA generativa juega un papel importante en correlacionar los detalles del portfolio de aplicación con las dependencias descubiertas.

Construir y probar

La generación de código es uno de los casos de uso de IA generativa más conocidos, pero es importante poder generar un conjunto de artefactos de código relacionados que van desde IAC (Terraform o plantilla de formación en la nube), código/configuraciones de pipeline, puntos de diseño de seguridad integrados (cifrado, integraciones de IAM, etc.), generación de código de aplicación a partir de swaggers u otros conocimientos de código (de sistemas heredados) y configuraciones de firewall (como archivos de recursos basados en servicios instanciados, por ejemplo). La IA generativa ayuda a generar cada uno de los elementos anteriores mediante un enfoque orquestado basado en arquitecturas de referencia de aplicación predefinidas construidas a partir de patrones, combinando al mismo tiempo las salidas de las herramientas de diseño.

Las pruebas son otra área clave: la IA generativa puede generar el conjunto adecuado de casos de prueba y código de prueba junto con los datos de prueba para optimizar los casos de prueba que se ejecutan.

Despliegue

Numerosas actividades críticas de última milla en los programas de modernización suelen consumir días o semanas, dependiendo de la complejidad de la empresa. Un caso de uso esencial de la IA generativa es la capacidad de derivar conocimiento para la validación de la seguridad mediante el análisis de los registros de la aplicación y la plataforma, los puntos de diseño, la infraestructura como código y más. Esta capacidad agiliza considerablemente los procesos de revisión y aprobación de seguridad. Además, la IA generativa es fundamental para generar entradas para la gestión de la configuración (CMDB) y la gestión del cambio, a partir de las notas de lanzamiento generadas mediante los elementos de trabajo de la herramienta Agility completados por lanzamiento.

Aunque los casos de uso mencionados presentan un gran potencial a lo largo del proceso de modernización, es fundamental reconocer que las complejidades empresariales requieren un enfoque orquestado contextualmente para aprovechar eficazmente muchos de estos aceleradores de IA generativa. El desarrollo de patrones contextuales específicos para cada empresa es un esfuerzo continuo para acelerar los programas de modernización. Hemos observado beneficios sustanciales al invertir tiempo y esfuerzo desde el principio y al personalizar continuamente estos aceleradores de IA generativa para alinearlos con patrones específicos que muestran repetibilidad dentro de la empresa.

Examinemos ahora un posible ejemplo probado:

Ejemplo 1: reimaginar API Discovery con BIAN e IA para la visibilidad del mapeo de dominios y la identificación de servicios de API duplicados

El problema: Large Global Bank tiene más de 30 000 API (tanto internas como externas) desarrolladas a lo largo del tiempo en varios dominios (por ejemplo, banca minorista, banca mayorista, banca abierta y banca corporativa). Existe un enorme potencial de API duplicadas en todos los dominios, lo que lleva a un mayor coste total de propiedad para mantener el gran portfolio y a los retos operativos de hacer frente a la duplicación y superposición de API. La falta de visibilidad y descubrimiento de las API lleva a los equipos de desarrollo api a desarrollar API iguales o similares en lugar de encontrar API relevantes para reutilizarlas. La incapacidad de visualizar el portfolio de API desde la perspectiva del modelo de sectores bancarios limita a los equipos de negocio y de TI a comprender las capacidades que ya están disponibles y qué nuevas capacidades se necesitan para el banco.

Enfoque de solución basada en IA generativa: la solución aprovecha el modelo de lenguaje grande BERT, el transformador de frases, la función de pérdida de clasificación de múltiples negativos y las reglas de dominio, ajustadas con el conocimiento del panorama de servicios de BIAN para conocer la cartera de API del banco y proporcionar la capacidad de descubrir API con automapeo a BIAN. Correlaciona el método de punto final de API con la jerarquía de panorama de servicios BIAN de nivel 4, es decir, las operaciones de servicio BIAN.

Las funciones principales de la solución son la capacidad de:

  • Consumir las especificaciones de Swagger y otras documentaciones de la API y entender la API, los endpoints, las operaciones y las descripciones asociadas.
  • Consumir detalles de BIAN y comprender el panorama de servicios de BIAN.
  • Afinar con mapeo coincidente y no coincidente entre el método de endpoint de API y el panorama de servicios BIAN.
  • Proporcionar una representación visual de la asignación y la puntuación de coincidencia con la navegación jerárquica de BIAN y filtros para niveles de BIAN, categorías API y puntuación de coincidencia.

Interfaz de usuario para el descubrimiento de API con modelo de sector:

Beneficios clave: la solución ayudó a los desarrolladores a encontrar fácilmente API reutilizables, basadas en dominios empresariales BIAN; tenían múltiples opciones de filtro/búsqueda para localizar las API. Además, los equipos pudieron identificar categorías clave de API para crear una resiliencia adecuada. La próxima revisión de la búsqueda se basará en el lenguaje natural y será un caso de uso.

La capacidad de identificar las API duplicadas basándose en los dominios de servicio de BIAN ayudó a establecer una estrategia de modernización que abordaba las capacidades duplicadas y, al mismo tiempo, las racionalizaba.

Este caso de uso se realizó en un plazo de seis a ocho semanas, mientras que el banco habría tardado un año en lograr el mismo resultado (ya que había varios miles de API por descubrir).

Ejemplo 2: Modernización automatizada de MuleSoft API a Java Spring Boot API

El problema: mientras que los equipos actuales estaban en proceso de modernizar las API de MuleSoft a Spring Boot, el gran volumen de API, la falta de documentación y los aspectos de complejidad estaban impactando la velocidad.

Enfoque de solución basado en IA generativa: la modernización de Mule API a Java Spring Boot se automatizó significativamente a través de un acelerador basado en IA generativa que construimos. Empezamos por establecer un conocimiento profundo de las API, los componentes y la lógica de las API, y luego finalizamos las estructuras de respuesta y el código. A esto le siguió la creación de instrucciones utilizando la versión de IBM de Sidekick AI para generar Spring Boot, que satisface las especificaciones de la API de MuleSoft, los casos de prueba unitaria, el documento de diseño y la interfaz de usuario.

Los componentes de la API de Mule se proporcionaban a la herramienta uno por uno mediante prompts y generaban el correspondiente equivalente de Spring Boot, que posteriormente se conectaba entre sí para dirección los errores que aparecían. El acelerador generó una interfaz de usuario para el canal deseado que pudo integrarse en las API, los casos de pruebas unitarias y los datos de las pruebas y la documentación del diseño. La documentación de diseño que se genera consta de un diagrama de secuencia y clase, solicitud, respuesta, detalles de endpoint, códigos de error y consideraciones de arquitectura.

Beneficios clave: Sidekick AI complementa el trabajo diario de consultores de aplicación al combinar estrategias técnicas de IA generativa contextualizadas mediante un profundo conocimiento del dominio y tecnología. Los beneficios clave son los siguientes:

  • Genera la mayor parte del código y los casos de prueba de Spring Boot que están optimizados, limpios y cumplen con buenas prácticas; la clave es la repetibilidad.
  • Facilidad de integración de las API con las capas front-end del canal.
  • Facilidad de comprensión del código del desarrollador y suficientes conocimientos para depurar el código.

La PoC de Accelerator se completó con cuatro escenarios diferentes de migración de código, casos de prueba unitaria, documentación de diseño y generación de IU en tres sprints durante seis semanas.

Conclusión

Muchos CIO y CTO han expresado reservas a la hora de contemplar las iniciativas de modernización, citando una multitud de desafíos descritos desde el principio. Entre ellas se encuentran las preocupaciones sobre la amplia participación necesaria de las pymes, las posibles interrupciones en el negocio debido al cambio y la necesidad de alteraciones en el modelo operativo en diversas funciones organizativas, incluida la seguridad y la gestión del cambio. Aunque es importante reconocer que la IA generativa no es una solución única para estos complejos retos, es innegable que contribuye al éxito de los programas de modernización. Lo consigue acelerando el proceso, reduciendo el coste total de la modernización y, lo más importante, mitigando los riesgos al garantizar que no se pasa por alto ninguna funcionalidad crítica. Sin embargo, es esencial reconocer que la introducción de modelos de lenguaje de gran tamaño (LLM) y bibliotecas relacionadas en el entorno empresarial implica un compromiso significativo de tiempo y esfuerzo. Esto incluye rigurosas revisiones de seguridad y cumplimiento, así como procedimientos de escaneo. Además, mejorar la calidad de los datos utilizados para ajustar estos modelos es un esfuerzo centrado que no debe subestimarse. Aunque los aceleradores de modernización cohesivos impulsados por IA generativa aún no se han vuelto omnipresentes, se espera que, con el tiempo, surjan kits de herramientas integrados para facilitar la aceleración de patrones específicos de modernización, si no de una variedad de ellos.

Explore lo que puede hacer con IA generativa con IBM Consulting.

 
Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste e implemente IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de nueva generación para desarrolladores de IA. Cree aplicaciones de IA en menos tiempo y con menos datos.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia líder en IA del sector de IBM y junto a su cartera de soluciones.

Explore las soluciones de IA
Servicios de IA

Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de IA
Dé el siguiente paso

Obtenga acceso único a capacidades que abarcan el ciclo de vida de desarrollo de la IA. Produzca potentes soluciones de IA con interfaces intuitivas, flujos de trabajo y acceso a API y SDK estándar del sector.

Explore watsonx.ai Solicite una demostración en directo