Alternativas de modernización de sistemas legados
La modernización de sistemas legados es un proceso que no siempre resulta sencillo. Los problemas que pueden surgir durante el proceso son casi ilimitados. Desde la actualización del código, hasta la de la plataforma. Esto, sin olvidar los datos, pueden suponer grandes desafíos para los responsables de TI.
En general, cuando se emprende la modernización de un sistema legado, es que ya está bordeando la obsolescencia tecnológica. Si es que no la han alcanzado ya en algunos aspectos. El software puede seguir funcionando correctamente, ya que probablemente se trata de una aplicación bien diseñada y que ha recibido mantenimiento. Sin embargo, es probable que no tenga sentido adaptarlo a tecnologías que no existían cuando se puso en marcha. En estos y otros casos, es mejor modernizarlo. Para ello, como veremos a continuación, hay varias técnicas de modernización, y diversas alternativas.
Modernización de sistemas legados mediante un nuevo proyecto
Es el enfoque más evidente: mediante un análisis del proyecto actual, y de los requisitos para el nuevo proyecto, se pone este en marcha en paralelo al software heredado. Después, llegado cierto momento, la modernización del sistema legado se lleva a cabo reemplazando uno por otro.
Entre sus ventajas está el hecho de que podrás llevar a cabo toda la actualización de un solo golpe, después de probar el nuevo software en su conjunto. E, incluso, de formar a los usuarios. Sus desventajas, sin embargo, son también numerosas. Puede exigir unos tiempos de desarrollo muy largos, y la migración de datos no es trivial. Además, no siempre es posible llevar a cabo el testeo previo de todo el sistema en condiciones reales.
Sin embargo, actualmente existen soluciones que permiten modernizar sistemas legados de forma muy eficaz y con plazos muy competitivos. Los sistemas de actualización automatizados de código heredado son, en manos expertas, herramientas muy potentes que pueden desembocar en una transición sencilla y rápida.
Modernización de sistemas legados mediante servicios y microservicios
Se trata de un enfoque para la modernización de sistemas legados que permite desmontar el software obsoleto por partes. En lugar de llevar a cabo un gran proyecto, puedes dividir este en proyectos más pequeños. Para elegir cómo trocearlo y qué proyectos encarar en primer lugar, puedes tener en cuenta varios criterios.
En primer lugar, está la dificultad de desacoplar cada servicio. Por ejemplo, un servicio de autenticación de usuarios puede ser relativamente sencillo de implementar. Reemplazando el login actual por un adaptador que acceda al nuevo, el resto de la aplicación no debería modificarse. Así podrías conseguir que esa parte se actualice con relativamente poco mantenimiento del software legado.
Por otra parte, debes valorar lo importante que es cada servicio de cara a reemplazar otros servicios posteriormente. En nuestro ejemplo, el acceso de usuarios es muy interesante, ya que probablemente lo usarán todos los servicios que vayas separando del software heredado. Además, evitarás tener un login diferente para las aplicaciones nuevas y las antiguas, con los problemas de sincronización que puedan llegar a darse en tal caso.
La seguridad es otro factor importante a la hora de valorar qué servicios desplegar en primer lugar. De nuevo, el acceso de usuarios es un punto crítico, y parece buena idea que la modernización del sistema legado empiece por ahí. Sin embargo, es importante tener en cuenta que uno de los principios básicos de cualquier sistema de seguridad es que esta es tan fuerte como su eslabón más débil. Por eso es necesario tomar medidas para que el software heredado no resulte un problema.
Para que no lo sea, por ejemplo, puedes evitar que las conexiones al sistema de acceso se produzcan desde la aplicación a través de la red sin cifrar o con un cifrado poco seguro. En su lugar, puedes crear un servicio que se ejecute en local y que haga las veces de intermediario entre la aplicación heredada y el nuevo sistema.
En este caso, la conexión insegura se producirá en la misma máquina o en una subred creada a tal efecto. Pero lo que circulará por el resto de la red, y lo que aceptará el servicio de autenticación, será información cifrada de forma completamente segura.
El problema de los datos
En algún punto del proceso de modernización de sistemas legados llegan los cambios que “rompen” la compatibilidad con versiones anteriores. Este punto suele estar relacionado, en muchísimas ocasiones, con los datos almacenados. Un diseño eficiente en los años 90, pensado para una base de datos SQL ejecutada en un servidor único (o, como mucho, con alguna copia en espejo por seguridad) puede no ser lo más adecuado para el presente. Y, lo más importante, para el futuro de la compañía.
En estos casos, la modernización se puede enfocar de varias formas. Una de ellas es adaptar la aplicación actual para que acceda al nuevo servicio de datos y, posteriormente, reemplazar esta por la nueva aplicación. Este enfoque suele ser costoso de implementar, si es que es viable. Además, descubrirás que tienes que llevar a cabo un gran mantenimiento. Además, este terminará finalmente por descartarse para dar paso al nuevo software.
Otro enfoque que, normalmente, da mejores resultados, pasa por mantener dos copias de los datos. Una en el nuevo formato y otra en el antiguo. Lo ideal es disponer de procesos que sincronicen en tiempo real ambas bases de datos, aunque esto no siempre es posible.
Una ventaja de este enfoque es que la sincronización puede ser bidireccional. Piensa, por ejemplo, en un formulario que permite a los clientes registrarse con tu empresa. Este registro se lleva a cabo en una base de datos que necesitas reemplazar por otra nueva. Tendrá un modelo de datos completamente distinto que, tal vez, ni siquiera es relacional.
El código que lleva a cabo esta inserción puede modificarse para actualizar ambas bases de datos. O, mejor aún, levantar un nuevo proceso que sincronice la información insertada en la nueva base de datos. Una vez que se actualice ese formulario para que acceda directamente al nuevo sistema, el antiguo podrá seguir funcionando si dicha sincronización se hace en el sentido inverso. Una vez que todos los componentes del viejo sistema se han actualizado, bastará con que desactives el servicio de sincronización. Habrá dejado de ser necesario.
Como has visto, los enfoques posibles para la modernización de software legado son muy diversos, y no exentos de complejidad. Para asegurarte de que eliges el camino más adecuado para tus necesidades y de que cada paso se da con todas las garantías de éxito, lo mejor es acudir a especialistas en modernizar sistemas legados. Estos conocen las mejores técnicas para conseguirlo, y te podrán ayudar a que el proceso sea sencillo y exitoso. Así que ¡elige la mejor opción para tu migración de sistemas legados!
Comments (0)