
[18/05/2021] El lenguaje de programación Cobol existe desde hace 61 años de una forma u otra. Para muchas organizaciones, esa edad se nota, y las personas que pueden mantener en pie las aplicaciones Cobol basadas en mainframes son cada vez más difíciles de encontrar, sobre todo porque la mayoría de los programas de informática ya no lo enseñan.
La importancia, y la fragilidad, de estos sistemas se puso de manifiesto en abril del 2020, cuando, en el punto álgido de la pandemia de COVID-19, varias autoridades estatales, desde Nueva Jersey hasta Kansas, empezaron a lanzar peticiones desesperadas para que los programadores Cobol se ofrecieran como voluntarios o salieran de la jubilación para mantener sus chirriantes sistemas de desempleo en funcionamiento ante una demanda sin precedentes.
[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]
Y es que, incluso a la avanzada edad de 61 años, Cobol sigue siendo utilizado por muchos grandes bancos, compañías de seguros y organizaciones públicas para ejecutar procesos empresariales transaccionales básicos, como el pago de las prestaciones de desempleo o la distribución de dinero desde un cajero automático.
Cobol hace el trabajo, pero es difícil de mantener e integrar
"Se trata de aplicaciones de entre 20 y 30 años de antigüedad que han prestado un buen servicio a la empresa, pero que acumulan deuda técnica y son muy específicas de lo que tiene esa empresa. [Cobol] es funcionalmente rico, pero resulta que se ejecuta en una plataforma que es restrictiva y no juega con otros sistemas modernos", señala Tim Jones, director general de modernización de aplicaciones en el proveedor de servicios de software Advanced.
Jones considera que la crisis de competencias en mainframe y Cobol, las consideraciones de costos asociadas y la necesidad de mantener la ventaja competitiva a través de las innovaciones tecnológicas, son los principales factores que impulsan a las organizaciones a abandonar Cobol en la actualidad, especialmente a las aplicaciones que todavía residen en un mainframe.
"No se trata solo de un problema de conocimientos de Cobol, sino de un problema más amplio de modernización del legado, del que Cobol es solo un elemento", sostiene Jones. "Los sistemas modernos, móviles y en la nube que se integran en el mainframe son realmente difíciles. Cuando piensa en su ventaja competitiva, si está en mainframe, se quedará atrás. Si está pasando por una transformación digital, eventualmente tendrá que lidiar con el elefante en la habitación de ese gran mainframe en la esquina que está alojando el 70% de tus aplicaciones empresariales".
"Mientras esas cargas de trabajo residan en el mainframe, debe haber un caso de negocio para alejarse de Cobol", anota Markus Zahn, jefe de clúster para nuevos mainframes en Commerzbank. "Esto puede deberse a una escasez de recursos causada por efectos demográficos, o a cambios en las expectativas de los clientes en cuanto a la disponibilidad puntual de los datos".
Cómo modernizar las aplicaciones Cobol
Para las cargas de trabajo en las que se ha conseguido ese argumento comercial, hay varias formas de liberarse de esas limitaciones heredadas. Se puede intentar encontrar un software similar en la estantería, llevar a cabo un lifting, y traslado de la aplicación a una infraestructura más barata, o comprometerse a reescribir la aplicación al completo en un lenguaje moderno como Java o C#. Pero todas esas vías están llenas de riesgos.
Por "lift-and-shift” se entiende normalmente una copia directa de una aplicación de una plataforma heredada a otra más moderna, sin hacer ningún cambio en el diseño de la aplicación. Esto suele requerir el uso de un emulador en la plataforma de destino, para que la aplicación siga funcionando como antes.
Pero es posible que el "lift-and-shift" no aporte el valor a largo plazo que buscan muchas organizaciones. "Lift-and-shift era una estrategia popular hace una década, pero es típico que las organizaciones de hoy en día quieran más valor de un proyecto de modernización", señala Jones. "No solo quieren reducir los costos operativos, sino que necesitan aumentar la agilidad para satisfacer las demandas del mercado, ofrecer tecnologías preparadas para el futuro, adoptar prácticas de desarrollo modernas y en la nube, e impulsar la innovación de TI para apoyar el negocio".
Luego está la opción de reescritura total, en la que se descompone la aplicación y se reescribe en un lenguaje más moderno. "El desafío con una reescritura es que cada vez que mira algo y los requisitos de negocio, estos sistemas tienen 30 años de antigüedad con documentación limitada y ninguna persona que lo entienda de extremo a extremo, por lo que lleva mucho tiempo", añade Jones. "Si lo hace bien, tiene algo completamente nativo de la nube desde el principio, pero cuando termina ya podría estar atrasado".
En su lugar, muchas organizaciones están optando por una opción intermedia segura, conocida como refactorización del código. Esto implica una cierta reestructuración del código, a menudo mediante un software de refactorización automatizado de proveedores especializados. Esta técnica mantiene la lógica empresarial existente, pero permite un mejor rendimiento y portabilidad, sin cambiar drásticamente la funcionalidad principal. "Esta es la vía que parece tener más éxito", afirma Mark Cresswell, presidente ejecutivo de LzLabs, un proveedor de servicios especializado en la modernización de aplicaciones de mainframe.
He aquí dos ejemplos de organizaciones que se han liberado del Cobol basado en el mainframe, ambas utilizando técnicas de refactorización de código y software de refactorización automatizado para modernizar sus aplicaciones.
Cómo el DWP del Reino Unido se liberó del mainframe
El Departamento de Trabajo y Pensiones (DWP) del Reino Unido, que es responsable de varios planes de asistencia social, pensiones y pagos de manutención de los hijos que atienden a nada menos que 20 millones de solicitantes al año, optó por una conversión automatizada conservadora "de igual a mejor" de sus aplicaciones Cobol, sin emulación de mainframe.
En el 2015, muchos de los sistemas responsables de estos pagos -incluidas las pensiones de guerra y las prestaciones de desempleo de los solicitantes de empleo- seguían estando escritos en Cobol, residiendo en mainframes ICL alojados en HP. "Como se puede apreciar, se trata de una plataforma muy costosa de soportar y mantener", comenta Andy Jones, ingeniero jefe de infraestructuras del DWP, en una entrevista en video el año pasado.
El costo de mantener la infraestructura heredada que sustenta estos sistemas, junto con la creciente dificultad que el departamento estaba teniendo para encontrar y retener a personas que pudieran mantener las aplicaciones Cobol basadas en mainframe, puso de manifiesto la necesidad de actualizar esos 25 millones de líneas de código, todo ello antes de que el soporte para el sistema operativo del mainframe VME expirara en diciembre del 2020.
"Se trataba más bien de la infraestructura que soportaba el código Cobol, que era la infraestructura ICL, que estaba envejeciendo, y las personas con la experiencia necesaria para soportarlo también estaban envejeciendo", señala Mark Bell, jefe del programa de sustitución de VME en el DWP.
Sin embargo, éste no ha sido el primer intento de los ingenieros del DWP de abandonar estos sistemas heredados. A lo largo de los años, se han realizado al menos cuatro intentos de modernizar estos sistemas de pago -incluido un largo intento de reescribir el código Cobol en Java- que han fracasado. Ahora que la plataforma estaba realmente llegando al final de su vida útil, se estableció una estrategia simplificada y se contrató a expertos de Advanced, especialistas en modernización de aplicaciones, para que ayudaran.
Esta estrategia implicaba una conversión de código de Cobol a Micro Focus Visual Cobol, más moderno y orientado a objetos, y el paso del sistema operativo VME a Red Hat Linux, alojado en servidores privados en la nube por Crown Hosting Data Centres, una empresa conjunta entre la agencia gubernamental de la Oficina del Gabinete del Reino Unido y la privada Ark Data Centres. Como parte del proyecto, también se trasladarían más de 10 mil millones de filas de datos de la base de datos cerrada y jerárquica IDMSX a las bases de datos relacionales de Oracle.
Para los no iniciados, Micro Focus Visual Cobol es una implementación más moderna del lenguaje Cobol, con el objetivo de abrirlo a entornos y conceptos de desarrollo modernos. "Lo más importante es que ofrece compatibilidad con lenguajes mixtos, lo que significa que se pueden incorporar desarrolladores de Java y C# que pueden escribir nuevos programas que se integren sin problemas con los programas Cobol existentes, todo ello desde el mismo entorno de desarrollo", explica Jones de Advanced.
El trabajo comenzó con el sistema más pequeño, que paga mil 500 millones de libras en prestaciones de vivienda una vez al mes en lotes a unas 360 autoridades locales. El nuevo código se convirtió y se probó en paralelo con el original durante cuatro semanas. Una vez que todo el mundo estuvo convencido de que no se produciría ninguna interrupción, los ingenieros pasaron al nuevo sistema en febrero del 2018.
A partir de ahí, los ingenieros del DWP y los especialistas de Advanced fueron sistema por sistema, incluida la conversión del mayor servicio del DWP, para el subsidio de los solicitantes de empleo, durante la Semana Santa del 2020, justo cuando la pandemia del COVID-19 empezaba a afectar al Reino Unido. "Fue un momento intenso para hacer una migración de aplicaciones para un servicio de prestaciones que estaba empezando a ver una avalancha de reclamaciones debido a cómo COVID estaba golpeando el país", señala Bell. Después de eso, hubo que trasladar tres sistemas más pequeños, y el departamento se liberó finalmente de sus aplicaciones Cobol basadas en el mainframe VME en enero del 2021.
El ahorro de costos y el aumento del rendimiento ya han sido significativos para el organismo gubernamental. "Este modelo operativo más moderno nos permite [reducir] los recursos y el soporte", anota Bell. En cuanto al rendimiento, donde las prestaciones de los solicitantes de empleo solían procesarse en múltiples lotes de cuatro horas, ahora se completan en aproximadamente una hora.
La nueva configuración de Micro Focus Visual Cobol basada en la nube puede parecer una patada al problema al seguir dependiendo de una versión de Cobol, pero permite a toda la organización ser más receptiva y moderna en su enfoque del software. Mientras que las actualizaciones de los antiguos sistemas monolíticos Cobol solo podían desplegarse una o dos veces al año, los nuevos sistemas orientados a objetos permiten que el equipo de desarrolladores realice cambios más pequeños y regulares.
Estos desarrolladores también pueden empezar a experimentar en un entorno de desarrollo/prueba en Amazon Web Services (AWS), crear un conjunto de API reutilizables para exponer fuentes de datos clave, e impulsar los cambios a través de una canalización CI/CD. El paso a Micro Focus Visual Cobol incluso abre la puerta a una reescritura más drástica en algo como Java o C# en el futuro.
El New York Times cumple con la conversión a Cobol
Del mismo modo, el New York Times necesitaba actualizar la aplicación responsable de su servicio de entrega diaria a domicilio en el 2015. La aplicación, de 35 años de antigüedad, estaba construida en Cobol y se ejecutaba en un mainframe IBM Z. La empresa editora quería convertir la aplicación a Java y ejecutarla en la nube con AWS, ya que se estaba volviendo costosa de mantener y no se integraba bien con otros sistemas más modernos.
Un intento de reescribir manualmente la aplicación de entrega a domicilio entre el 2006 y el 2009 ya había fracasado, dejando la aplicación prácticamente intacta hasta el 2015, cuando ejecutaba 600 trabajos por lotes con 3.500 archivos enviados diariamente a consumidores y sistemas descendentes, consumiendo unos 3TB de datos y almacenando 20TB de datos de copia de seguridad.
Ese año, los ingenieros de la editorial decidieron una estrategia de migración del código y los datos mediante la técnica de refactorización del código, utilizando un software de refactorización automatizado propio del socio especializado Modern Systems (posteriormente adquirido por Advanced). El código se convirtió a Java y los datos se trasladaron de archivos indexados a una base de datos relacional de Oracle. Este proceso duró dos años y, tras menos de un año de funcionamiento en un centro de datos privado, la nueva aplicación -llamada Aristo- se migró a AWS en marzo del 2018 tras ocho meses más de trabajo.
"Si el New York Times hubiera tenido ya su estrategia en la nube antes de iniciar la migración del mainframe, la compañía habría optado por migrar el mainframe directamente a AWS, evitando el trabajo extra para diseñar e implementar la implementación de Aristo en las instalaciones", señala una entrada del blog de AWS sobre el proyecto.
Ahora el sistema de entrega se ha integrado en la más moderna Plataforma de Suscripción Digital, que es dirigida, construida y mantenida por el mismo grupo de Plataformas de Suscripción del New York Times. Esto ha ayudado a reducir el coste total de propiedad de la aplicación Aristo en un 70% al año.
Basado en el artículo de Scott Carey (InfoWorld) y editado por CIO Perú
Puede ver también