¿Sueñan los mainframes con ovejas…? Parte 3: DevOps

Introducción a la adopción de capacidades y disciplinas DevOps en los mainframes como una palanca importante de la nube híbrida para acelerar la agilidad, reducir el time-to-market y atraer talento

By 23/03/2023

mainframe

Alberto Ortiz de Uriarte Aparicio
CTO for Insurance, Practice Leader
IBM Consulting

Ya he descrito en anteriores artículos de la serie que las compañías con procesos y datos muy centrados en los mainframes buscan reducir el TCO (Coste total de propiedad) desde el inicio de la modernización. Y buscan hacerlo de forma sostenible, liberando nuevo valor de inversiones pasadas. Pero no es menos cierto que también persiguen incrementar la agilidad reduciendo el time-to-market, y atraer y crear talento para ejecutar esa modernización.

Para abordar esto, las compañías necesitan planes para sus mainframes y, como expresé en mis artículos previos, es en este momento cuando empiezan a asomar en el horizonte algunas brumas grises.  Destaqué que en IBM Consulting tenemos la experiencia que dan los años que llevamos ayudando a clientes a modernizar sus aplicaciones mainframe de forma programática. De hecho, estoy orgulloso de haber liderado la definición de nuestro IBM Consulting Mainframe Modernization Framework, que hemos enriquecido a partir de las experiencias, los proyectos con nuestros clientes y el dominio de tecnologías aplicables a los zSystem. Como describí entonces, el framework está compuesto por diferentes workstreams, que particularizamos para cubrir los retos propios de nuestros clientes.

 

Aprovechando las DevOps

Siguiendo el framework, aprovechamos las DevOps para beneficiarnos de este conjunto de prácticas que agrupan el desarrollo de software y las operaciones de TI relacionadas. Su objetivo es hacer más rápido el ciclo de vida del desarrollo del software y proporcionar una entrega continua de alta calidad. Precisamente por ello, asesoramos e implantamos capacidades de DevOps para la modernización de los entornos de desarrollo y testing de las aplicaciones de mainframe cuando las compañías buscan:

  • Acelerar y agilizar la respuesta a las necesidades cambiantes del mercado, homogeneizando los tiempos de entrega del mainframe con el de otras plataformas. En este punto son clave la automatización, la simplicidad por diseño, el reuso, y el fomento del desarrollo en paralelo.
  • Aumentar la calidad del software y reducir riesgos operativos. Para ello son necesarias las métricas, la reducción de las actividades manuales en las pruebas, y pruebas que cubran más aspectos.
  • Reducir los costes relacionados con la experiencia de los equipos. Lo logramos mediante la estandarización de herramientas para la productividad y la autonomía del desarrollador, y con el uso de entornos de desarrollo efímeros.
  • Liberar el conocimiento de las aplicaciones, que reside típicamente en unas pocas personas. Lo logramos incorporando capacidades de descubrimiento, de análisis de impactos y de compartición de información y de artefactos.
  • Atraer y retener el talento, mediante herramientas de desarrollo modernas y estandarizadas para todas las plataformas de la nube híbrida.
  • Soportar y promover el cambio cultural, con una esponsorización y reconocimiento adecuados. Apoyados en aceleradores para la transferencia de skills y para la transición.

En este artículo me centro precisamente en describir algunas acciones que típicamente ejecutamos con nuestros clientes dentro de este workstream. Identificamos el gap para un proceso de desarrollo de aplicaciones más homogéneo, buscamos el aprovechamiento de nuevas herramientas y aseguramos el cambio en la cultura dentro de lo factible para la realidad de la compañía. Empieza a disiparse la bruma y a sonar música menos estruendosa: ya estamos preparados para soñar con ovejas.

 

Liberar el conocimiento de las aplicaciones de mainframe

Es muy común que el conocimiento de las aplicaciones de mainframe se concentre en un número reducido de personas en los equipos. Este problema se agrava cuando el core del negocio se apoya en aplicativos con varias décadas de evolución, y no hay disponible documentación actualizada. La apertura de ese conocimiento se logra mediante la implantación de herramientas que ayudan al descubrimiento automático sobre el código fuente, y al análisis de dependencias e impactos mediante simulaciones what-if. Para direccionar esto con éxito, es muy importante una gestión del cambio en el proceso de desarrollo que permita liberar el conocimiento oculto, rápidamente.

 

Modernizar el desarrollo con IDEs y repositorios actuales

Las compañías buscan aprovechar también en el mainframe IDEs (Integrated Development Environments) modernos y propios del contexto de la nube híbrida. Estos IDEs se integran de forma natural con las otras herramientas del ciclo de vida del desarrollo de software, permitiendo aumentar la productividad del desarrollador. Las compañías también consiguen anticipar y mejorar la calidad y la seguridad de las aplicaciones de mainframe gracias a la integración de estos nuevos IDEs con herramientas de análisis estático de código. Estas herramientas de análisis cubren aspectos de mantenibilidad y también de robustez ante vulnerabilidades. Del mismo modo, amplificamos la mejora de la calidad con debuggers del código de las aplicaciones mainframe integradas también dentro de los nuevos IDEs.

Por otra parte, ayudamos a implantar repositorios de trabajo en grupo modernos (GIT, etc) donde migran el código fuente desde los repositorios tradicionales del mainframe. Con esto empiezan a beneficiarse de los métodos de trabajo ágiles organizando ramas, etc.

Esta modernización empieza por un análisis de las herramientas actuales y de los métodos de desarrollo en el mainframe. Para luego cubrir los gaps con un nuevo IDE, un nuevo repositorio de trabajo en grupo, y los componentes necesarios del ciclo de vida del desarrollo. Después se planifican los pilotos de implantación, la formación de los equipos y el escalado en la implantación, facilitando un on-boarding progresivo de desarrolladores y aplicaciones.

 

Integrar las aplicaciones mainframe con el CI/CD

Las compañías necesitan adaptar el modelo de desarrollo en mainframe a las prácticas CI/CD (Integración Continua/Entrega Continua) para acelerar el proceso de entrega y, en la práctica, habilitar el agilismo. Esto se consigue mediante los conectores y agentes para mainframe para herramientas de Integración Continua, como Jenkins, etc. También incorporando herramientas adaptadas al Despliegue Continuo en mainframe, como UrbanCode Deploy u otras.

La implantación arranca con pilotos que luego escalarán para el on-boarding de más aplicaciones y colectivos de desarrolladores.

 

Automatizar y ampliar el testing

El proceso de desarrollo de aplicaciones mainframe debe ampliar la cobertura de las pruebas, acortar su duración y reducir los errores humanos provocados por su ejecución manual. Pero también es importante gestionar adecuadamente el uso de los recursos dedicados a esas pruebas, participando activamente en la reducción de costes de la plataforma.

Podemos conseguir estos objetivos implantando capacidades de virtualización del testing, donde se graban en tiempo de ejecución datos de entrada y salida, para después reusarlos en las pruebas. También mediante nuevas capacidades de fabricación de datos de prueba bajo demanda, por ejemplo, extraídos de entornos productivos, y después enmascarados para preservar su confidencialidad. Aquí es muy importante la elaboración de normativas y guías para el proceso de testing. Y la incorporación de las capacidades de virtualización y fabricación de datos en las cadenas de Integración Continua/Entrega Continua para reducir tiempo y errores humanos.

 

Implantar Sandboxes para mainframe

Una estrategia acertada es crear entornos efímeros para demostración, desarrollo, pruebas y formación en aplicaciones, de una forma ágil. Esta estrategia busca también minimizar el consumo de recursos hardware y software que afecten a la factura del mainframe. Para cubrir esos objetivos las compañías pueden usar entornos zOS en cloud pública o en local destinados al desarrollo y testing, como WAZI Developer, etc. Estos nuevos entornos tradicionales efímeros aceleran el aprovisionamiento mediante automatización y autoservicio, siendo un acelerador claro del time-to-market.

 

Integrar el mainframe en el DevOps empresarial

El siguiente paso natural es adoptar la Integración Continua/Entrega Continua combinando aplicaciones con componentes que se ejecutan en las diferentes plataformas de la compañía, que actualmente pueden orquestarse mediante los servicios de DevOps disponibles en las nubes públicas.

La realidad es una pipeline heterogénea que orquesta el ciclo de desarrollo de una aplicación en diferentes plataformas y entornos de destino. Para amplificar los beneficios de esta estrategia, las compañías deben avanzar en la obtención de un panel único de control que ofrezca una visión completa de su entrega de software. Obviamente, también necesitan avanzar en un modelo de release global, que incluya también el software que se ejecuta en el mainframe.

 

Resumiendo: el DevOps es una palanca de modernización de aplicaciones de mainframe

En este artículo he repasado qué tipos de iniciativas ayudan a las compañías a reducir el time-to-market, incrementar la agilidad y atraer talento. Todo ello mediante la aplicación de capacidades DevOps y de modernización del desarrollo y del testing. He pasado por las oportunidades que nos brindan las herramientas de descubrimiento, y cómo las herramientas de desarrollo modernas nos permiten ser más productivos y mejorar la calidad. También he revisado cómo los servicios de Integración Continua/Despliegue Continuo orquestan cadenas del proceso de desarrollo de aplicaciones mainframe. Cómo incorporan incluso más automatización en las pruebas, que se amplia y acelera con técnicas de virtualización y de fabricación de datos. Finalmente, hemos visto como el nuevo DevOps del mainframe se puede integrar en un DevOps empresarial. Facilitando una visión y gobierno completo del ciclo de vida de las aplicaciones en la nube híbrida.

Aplicando las acciones del framework que correspondan, las compañías ponen las bases para que los mainframes tengan procesos de desarrollo modernizados. Además de tener desarrolladores motivados para ejecutar la transformación, 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.

 

Próximamente

La modernización de las aplicaciones de mainframes tiene también otros objetivos que añadir como por ejemplo, abrir mejor el mainframe a los diferentes ecosistemas internos o externos, o integrarlo mejor con las nubes públicas. Próximamente repasaremos qué tipo de iniciativas, capacidades y herramientas aplicamos en el resto de workstreams del framework y de las palancas de la nube híbrida. Por supuesto, teniendo en cuenta los drivers y retos que motivan la modernización.

[autopilot_shortcode]