La modernización de aplicaciones es el proceso de actualizar aplicaciones existentes aprovechando tecnologías modernas, mejorar el rendimiento, ayudar a hacerla adaptable 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 existentes podría variar desde la reescritura completa hasta el rehost 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 directores de sistemas de información (CIO) y directores de tecnología (CTO) se muestran reticentes a invertir debido al costo y los plazos que conlleva la obtención de valor, al tiempo que tratan de encontrar el equilibrio entre iniciativas de reescritura que requieren una elevada inversión y enfoques de reubicación 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 servicio en la nube.
Al intentar impulsar la aceleración y optimizar el costo de la modernización, la IA generativa se está convirtiendo en un habilitador crítico para impulsar el cambio 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.
Boletín de la industria
Obtenga insights curados 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 .
Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.
La modernización de aplicaciones es el proceso de actualizar aplicaciones existentes aprovechando tecnologías modernas, mejorar el rendimiento, ayudar a hacerla adaptable 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, los datos y la infraestructura heredados actuales y la aplicación de la estrategia de modernización adecuada (hacer rehost, cambiar plataformas, refactorizar o reconstruir) para lograr el resultado deseado. Si bien la reconstrucción da como resultado el máximo beneficio, existe una necesidad de un alto grado de inversión, mientras que el rehost 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 despliegan, monitorean y mantienen con iteraciones continuas para estar al día con la tecnología y los avances comerciales. Los beneficios típicos obtenidos irían desde una mayor agilidad, rentabilidad y competitividad, mientras que los desafíos incluyen complejidad y demandas de recursos. Muchas empresas se están dando cuenta de que pasar a la nube no les aporta el valor deseado ni la agilidad y rapidez que van 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 y servicios actuales (vea la ley de Conway). Esto, a su vez, lleva a los siguientes desafíos:
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 del negocio. El mayor desafío con esto es la cantidad de inversión necesaria, y muchos CIO y CTO dudan en invertir debido al costo y los plazos involucrados en 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 costo de modernización, la IA generativa se está convirtiendo en un habilitador crítico para impulsar el cambio 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 comprender la aplicación heredada, la infraestructura, los datos, la interacción entre aplicaciones, servicios y datos y otros aspectos como la seguridad. La planificación divide la compleja cartera de aplicaciones en iteraciones que se modernizarán para establecer una hoja de ruta iterativa y un plan de ejecución para implementar la hoja de ruta.
Las actividades de la fase de proyecto técnico cambian según la estrategia de modernización (desde descomponer la aplicación y aprovechar el diseño basado en el dominio o establecer una arquitectura objetivo basada en nueva tecnología para crear diseños ejecutables). Las fases posteriores se construyen, prueban y despliegan en producción. Exploremos las posibilidades de la IA generativa en estas áreas del ciclo de vida.
La capacidad de comprender las aplicaciones heredadas con una participación mínima de SME (expertos en la materia) es un punto crítico de aceleración. Esto se debe a que, en general, los SME están ocupados con iniciativas de sistemas ligeros, mientras que su conocimiento podría ser limitado en función de cuánto tiempo han estado dando soporte a los sistemas. En conjunto, el descubrimiento y el diseño es donde se dedica mucho tiempo durante la modernización, mientras que el desarrollo es mucho más fácil una vez que el equipo ha decodificado la funcionalidad de la aplicación existente, 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 antiguos); aquí es donde cobra importancia su dependencia de las herramientas de análisis de código. Además, para las iniciativas de reescritura, es necesario asignar capacidades funcionales al contexto de la aplicación existente para realizar ejercicios eficaces de diseño y 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 de negocio y el código y los datos de la aplicación conectada; por supuesto, los modelos deben ajustarse y contextualizarse para un modelo de dominio empresarial o capacidad funcional determinados. mapa. La asignación de API asistida por IA generativa mencionada en este documento es un mini ejemplo de esto. Si bien lo anterior es para la descomposición y diseño de aplicaciones, la tormenta de eventos necesita mapas de procesos y aquí es donde la IA generativa ayuda a contextualizar y mapear extractos de herramientas de minería de procesos. La IA generativa también ayuda a generar casos de uso basados en insights 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 proveedores de servicios en la nube, ajustando los modelos basados en un conjunto de patrones estandarizados (entrada/salida, servicios de aplicación, servicios de datos, patrones compuestos, etc.). Del mismo modo, existen varios otros casos de uso de IA generativa que incluyen la generación de patrones de código específicos de la infraestructura de tecnología de destino para los 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 del usuario, especificaciones de API (por ejemplo, archivos Swagger), diagrama de relación de componentes y diagramas de interacción de componentes.
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 o PI), los ejercicios de planificación que incorporan entradas de nivel de ejecución son mucho más difíciles. La IA generativa resulta muy útil para generar hojas de ruta basadas en datos históricos (aplicaciones a mapas de áreas de dominio, factores de esfuerzo y complejidad, patrones de dependencia, etc.), aplicándolas a aplicaciones en el ámbito de un programa de modernización, para una industria 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 empresarial. Aquí es donde la IA generativa desempeña un papel importante en la correlación de los detalles de la cartera de aplicaciones con las dependencias descubiertas.
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 Cloud Formation Template), código/configuraciones de pipelines, 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 insights de código (heredados) y configuraciones de cortafuegos (como archivos de recursos basados en servicios instanciados, por ejemplo). La IA generativa ayuda a generar cada uno de los anteriores mediante un enfoque orquestado basado en arquitecturas de referencia de aplicación predefinidas construidas a partir de patrones, mientras combinan los resultados de 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.
Numerosas actividades críticas de “última milla” en los programas de modernización suelen llevar de días a semanas, dependiendo de la complejidad de la empresa. Un caso de uso esencial de IA generativa es la capacidad de derivar insights para la validación de la seguridad mediante el análisis de registros de aplicación y plataforma, puntos de diseño, infraestructura como código y más. Esta capacidad agiliza enormemente 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 de cambios, a partir de las notas de lanzamiento generadas a través de los elementos de trabajo de la herramienta Agility completados por cada 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 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 por adelantado y personalizar continuamente estos aceleradores de IA generativa para alinearlos con patrones específicos que exhiben repetibilidad dentro de la empresa.
Examinemos ahora un posible ejemplo probado:
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 de venta 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 costo total de propiedad para mantener la gran cartera de API y a los desafíos operativos de lidiar con la duplicación y superposición de API. La falta de visibilidad y descubrimiento de las API lleva a los equipos de desarrollo de API a desarrollar las mismas API o similares en lugar de encontrar API relevantes para reutilizarlas. La incapacidad de visualizar la cartera de API desde la perspectiva del modelo de la industria bancaria limita a los equipos de negocios 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 oraciones, la función de pérdida de clasificación de múltiples negativos y las reglas de dominio, ajustadas con el conocimiento de BIAN Service Landscape para aprender la cartera de API del banco y proporcionar la capacidad de descubrir API con automapeo a BIAN. Mapea API Endpoint Method a BIAN Service Landscape Hierarchy nivel 4, es decir, operaciones de servicio BIAN.
Las funciones principales de la solución son las siguientes:
Interfaz de usuario para descubrimiento de API con modelo de industria:
Beneficios clave: la solución ayudó a los desarrolladores a encontrar fácilmente API reutilizables, basadas en los dominios empresariales de 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 operativa adecuada. La próxima revisión de la búsqueda se basará en el lenguaje natural y será un caso de uso conversacional.
La capacidad de identificar API duplicadas basadas en dominios de servicio BIAN ayudó a establecer una estrategia de modernización que aborda las capacidades duplicadas mientras las racionaliza.
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 varias miles de API por descubrir).
El problema: mientras que los equipos actuales estaban en un proceso para 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 basada 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. Comenzamos por adquirir un profundo conocimiento de las API, los componentes y la lógica de las API, y a continuación finalizamos las estructuras de respuesta y el código. A esto le siguió la creación de instrucciones con la versión de IBM de Sidekick AI para generar código Spring Boot, que cumple con 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 Mule API se proporcionaron a la herramienta uno por uno mediante instrucciones y generaron el Spring Boot correspondiente, que posteriormente se conectó para abordar los errores que se presentaron. El acelerador generó una interfaz de usuario (IU) para el canal deseado que podía integrarse en las API, los casos de prueba unitarios, los datos de prueba y la documentación. La documentación de diseño que se genera consta de un diagrama de secuencia y clase, solicitud, respuesta, detalles del 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:
La PoC de Accelerator se completó con cuatro escenarios diferentes de migración de código, casos de prueba unitaria, documentación y generación de interfaz de usuario en tres sprints durante seis semanas.
Muchos CIO y CTO han expresado reservas al contemplar iniciativas de modernización, citando una multitud de desafíos descritos al principio. Estos incluyen preocupaciones sobre la amplia participación requerida de SME, las posibles interrupciones en el negocio debido al cambio y la necesidad de alteraciones en el modelo operativo en varias funciones organizacionales, incluida la seguridad y la gestión de cambios. Si bien es importante reconocer que la IA generativa no es una solución única para todos estos complejos desafíos, es innegable que contribuye al éxito de los programas de modernización. Esto se logra acelerando el proceso, reduciendo el costo general de la modernización y, lo que es más importante, mitigando los riesgos al garantizar que no se pase por alto ninguna funcionalidad crítica. Sin embargo, es esencial reconocer que la introducción de modelos de lenguaje grande (LLM) y bibliotecas relacionadas en el entorno empresarial implica un compromiso significativo de tiempo y esfuerzo. Esto incluye rigurosas revisiones de seguridad y cumplimiento y 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 la IA generativa con IBM Consulting.
Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Diseñe aplicaciones de IA en menos tiempo y con menos datos.
Ponga la IA a trabajar en su negocio con la experiencia en IA líder en la industria y la cartera de soluciones de IBM a su lado.
Reinvente los flujos de trabajo y las operaciones críticas añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.