×
¿Sueñan los mainframes con ovejas…? Parte 5: Aplicaciones modernas

En anteriores episodios de la serie relaté cómo las compañías se enfrentan a no pocos retos en relación con sus aplicaciones de mainframe. Buscan reducir el TCO de forma inmediata, atraer talento, ser más ágiles y rápidos, y también liberar nuevo valor de los procesos y datos. Pero más importante que lograr estas respuestas inmediatamente, es mantenerlas de forma sostenida.

Los planes de las compañías para lograr respuestas sostenibles a los retos de sus aplicaciones de mainframe son complejos de implementar. Es también en ese momento cuando asoman en el horizonte las brumas grises, feas y amenazadoras. Como vengo tratando en artículos previos, en IBM Consulting estamos ayudando a las compañías a modernizar las aplicaciones de sus mainframes. Para articular estas acciones, yo mismo he tenido el placer de liderar la definición del IBM Consulting Mainframe Modernization Framework.  El framework está enriquecido a partir de las experiencias y los proyectos con nuestros clientes, y vitaminado por el dominio de la tecnología. Está compuesto por diferentes workstreams (Optimización y racionalización, DevOps, Integración en Cloud, etc.), que particularizamos para cubrir los retos propios de las compañías.

 

Workstream de modernización de aplicaciones y arquitecturas

Voy a centrarme en el workstream de Modernización de Aplicaciones y Arquitecturas, que ofrece prácticas para maximizar y sostener los beneficios de la modernización de las aplicaciones de mainframe, dentro de un contexto de nube híbrida. Para ello describiré cómo combinamos nuevos métodos, arquitecturas y tecnologías para actualizar el procesamiento on-line y batch, y los patrones de coexistencia para asegurar esa modernización. Haciendo eso, nuestros clientes consiguen:

  • Disponer de una mejor información para elaborar el business case, el roadmap y las soluciones de modernización.
  • Realinear las aplicaciones actuales con los procesos y dominios empresariales, con la ayuda de modelos de referencia industriales.
  • Habilitar alrededor del mainframe las variantes tecnológicas que mejor se adaptan a las necesidades de las aplicaciones y del contexto.
  • Asegurar consistencia de datos y operaciones en las nuevas integraciones.
  • Reducir los riesgos mediante soluciones de coexistencia que permiten modernizaciones incrementales e iterativas.

En este artículo describo cómo descubrimos las relaciones y acoplamientos entre las aplicaciones, cómo establecemos nuevos patrones transaccionales o de coexistencia, y cómo rearquitecturizamos o reemplazamos funcionalidades. De nuevo, empieza a disiparse la bruma y a sonar música menos estruendosa: ya estamos otra vez preparados para soñar con ovejas.

Descubrir las aplicaciones

Como decía, es necesario disponer de información adecuada sobre las aplicaciones. Para ello aplicamos descubrimiento guiado por herramientas, que nos permitirá identificar y analizar los diferentes aspectos a considerar. Podremos refinar el business case de modernización, la propia solución to-be, y el roadmap de modernización.

Primero descubrimos el mapa de dominios y aplicaciones en base a las dependencias entre las aplicaciones y los datos. Después, enriquecemos esa información con datos sobre consumos, rendimientos, prioridades, etc. Con todo ello establecemos el camino crítico para el roadmap de modernización y conformamos los paquetes de modernización. Para esto consideramos las dependencias y acoplamientos entre aplicaciones, y también los beneficios que busca la compañía; por ejemplo, adelantar la reducción de consumos.

Implantar nuevos patrones de consistencia

Las aplicaciones tradicionales en mainframe se ejecutan en monitores transaccionales que aseguran la consistencia de datos y operaciones. Cuando alguno de los procesos de misión crítica es modernizado a nuevas tecnologías dentro o fuera del mainframe, debemos seguir asegurando esa integridad del dato, así como la capacidad de revertir operaciones cuando sea necesario. Para mitigar el riesgo operacional, organizamos garages y laboratorios para definir casos de uso, definir las soluciones de consistencia y sus patrones, y desarrollar MVPs (Minimum Viable Products) que luego escalarán. Las palabras mágicas que exploramos son consistencia eventual, orquestación frente a coreografía, patrones SAGA, APIs, y eventos.

Establecer arquitecturas de coexistencia

Para poder reducir los riesgos operativos en los proyectos de modernización de aplicaciones mainframe es clave establecer un roadmap iterativo e incremental que permita adecuar el ritmo de la transformación a condicionantes presupuestarios, a cambios en las prioridades, o a cualquier otra contingencia. Esto nunca podrá ser ofrecido por un enfoque de tipo big-bang. Sin embargo, para proporcionar este valor necesitamos habilitar componentes de solución que permiten la coexistencia entre aplicaciones de mainframe y aplicaciones modernizadas, que añaden una mayor complejidad a la arquitectura.

Las arquitecturas de coexistencia incluyen elementos como: bibliotecas de transformaciones configurables, mecanismos de identificación de cambios, de emisión de eventos, de APIs, de replicación de datos, y un sistema de auditoría que permita trazar todos los intercambios de información realizados por necesidades de coexistencia.

Rearquitecturizar las aplicaciones

Una manera de ofrecer valor mediante modernización es la reestructuración organizativa de las aplicaciones, probablemente acompañada de una reescritura. Con esto buscamos simplificar la hiper-integración, favorecer la ruptura de los monolitos, y ofrecer mayor apertura hacia los ecosistemas para habilitar nuevos modelos de negocio.

Para conseguir esto resulta muy útil la reordenación del mapa de aplicaciones en dominios según modelos de referencia industrial, como BIAN para Banca, o Accord para Seguros. También es muy habitual establecer una segregación de las aplicaciones en una capa de distribución hacia canales y ecosistemas, una capa de producción (de creación productos bancarios, aseguradores, etc), y una última capa de operación. Esta estructura es la que amplifica la flexibilidad y agilidad de los procesos de negocio, y facilita la apertura a los ecosistemas y nuevos mercados.

Enriquecer con desarrollos en lenguajes cloud-native

La arquitectura Z permite desarrollar aplicaciones cloud-native que pueden integrarse con los aplicativos tradicionales, beneficiándose de la coubicación de esas cargas. Se mejoran los tiempos de respuesta en las integraciones y en los accesos a los datos, se simplifican las arquitecturas de coexistencia, se fomenta el uso de procesadores zIIP y se aprovechan las capacidades de seguridad de la plataforma. La alternativa es enriquecer los procesos mediante desarrollos cloud-native fuera del mainframe, considerando los aspectos que ya he mencionado de coexistencia, seguridad y requisitos no funcionales.

Aplicar métodos de refactorización

Por refactorizar me refiero a migrar con alto grado de automatización aplicaciones de mainframe a otros lenguajes y/o plataformas de la nube pública. Este enfoque es una opción cuando las compañías buscan reducir consumos en ciertas transacciones que no son de misión crítica y que se espera que tengan una frecuencia baja de cambios en su proceso de mantenimiento. Esta modalidad complementa a menudo a otras acciones de modernización, y debe ser aplicada en una estrategia iterativa e incremental. Es muy importante realizar pruebas de concepto para poner a prueba los mecanismos de conversión. También deben utilizarse los mecanismos de discovery y análisis que ya he descrito para delimitar los paquetes de conversión de aplicaciones. Finalmente, debemos ofrecer mecanismos de testing paralelo que comparen automáticamente el resultado de las ejecuciones de las aplicaciones convertidas y sin convertir.

Reemplazar con soluciones de mercado

Las aplicaciones de mainframe son fundamentalmente aplicaciones de core empresarial, y una de las aproximaciones más habituales es la de seguir una estrategia best-of-breed. En dicha estrategia, las aplicaciones de mainframe que cubren los procesos de negocio más comoditizados son sustituidas por soluciones de mercado (COTS), que pueden ser desplegadas en la nube híbrida. Para ello las compañías abordan benchmarks, inceptions y pruebas de concepto, que ayuden a la toma de decisión y a la mitigación de los riesgos de la transformación.

 

Resumiendo: el mainframe permite modernizar las aplicaciones para lograr beneficios sostenibles

En este artículo he repasado:

  1. Qué beneficios pueden obtener las compañías modernizando las arquitecturas y aplicaciones en la nube híbrida.
  2. Qué alternativas y diferentes tipos de modernización pueden aplicarse sobre las aplicaciones de mainframe: refactorización, rearquitecturización, reescritura en cloud-native, o sustitución por soluciones de mercado.
  3. He descrito cómo es necesario disponer de herramientas y métodos que permitan descubrir y analizar el portfolio actual, para refinar los planes y las soluciones.
  4. Finalmente, he resaltado la importancia de las soluciones de coexistencia como red de seguridad para mitigar los riesgos operacionales de la modernización, y permitir liberar valor en cualquier punto del proceso.

Aplicando las acciones del framework de IBM Consulting que correspondan, las compañías ponen las bases para modernizar y asegurar la sostenibilidad de los beneficios. Y para volver a soñar con ovejas, con días soleados, cielos limpios y música electrónica. Retomando mis anteriores artículos, podremos volver a soñar con las oportunidades para impulsar el crecimiento, los nuevos modelos de negocio y la reducción de costes.