¿Arqueología o ingeniería del software? El papel de cloud en la modernización de aplicaciones monolíticas

Susana Martínez Ferreiro    10 octubre, 2016

Hace unos meses tuve la oportunidad de escuchar a un importante cliente del sector bancario que afirmaba:

Necesito innovar desarrollando productos de una forma más rápida, porque si no lo hago yo, lo hará mi competencia”.

Tradicionalmente cloud se planteaba como una herramienta que hacía más eficientes los procesos TI, el ahorro de costes parecía ser su principal ventaja, pero cada vez más clientes están descubriendo que su verdadero potencial está en su capacidad de transformar los negocios.

Cloud es un catalizador de la transformación digital, permite mejorar la competitividad de las empresas pero sobre todo es muy útil para crear nuevos modelos de negocio y productos y servicios digitales de forma ágil y mucho más eficiente.

A través de cloud se pueden mejorar los ciclos de desarrollo de las aplicaciones, implantarse más rápidamente herramientas y modelos de organización DevOps y/o agile y, además, los desarrolladores de aplicaciones pueden consumir cloud sin prestar atención a la infraestructura subyacente, ya que pueden proveerse de ella gracias a la programabilidad de las infraestructuras desde las aplicaciones. En definitiva, estas aplicaciones presentan ciclos de desarrollos mucho más cortos y muy orientados al consumidor final. Por todo ello, lo que realmente cloud proporciona en la actualidad es valor al negocio y es indiscutible que ha sido un acelerador para los nuevos negocios digitales; en este sentido es significativa la explosión de desarrollos de las “app born in cloud”.

Podría parecer que ahora todo es más sencillo gracias a cloud, pero todavía tenemos un importante reto por delante que no podemos obviar: la famosa base instalada… De ella ya hemos escrito ampliamente en este blog, pero hoy os quería plantear el tema desde otra perspectiva: no desde el punto de vista de la infraestructura, sino desde el de las aplicaciones, en concreto las denominadas aplicaciones legadas. Aunque pueda parecer que no son importantes, un alto porcentaje de las mismas soporta los procesos de negocio de grandes clientes corporativos.

“Aplicación legada” es un término que hace referencia a una historia de cuarenta años de desarrollo de software (desde el COBOl, Coold Fusion hasta PHP, entre otros), y con diferentes arquitecturas de aplicaciones que han ido evolucionando desde las primeras arquitecturas mainframe, pasando por arquitecturas cliente-servidor, arquitecturas en múltiples capas, aplicaciones web, etc., etc.

Estas aplicaciones legadas siguen un esquema de desarrollo de aplicaciones monolíticas en el que todos los módulos que lo componen están fuertemente cohesionados, de tal forma que, cuando surge una nueva necesidad de negocio y se requiere implementar un cambio en el código que las compone, se traduce en tiempos de desarrollo muy largos y un time to market excesivo, que el negocio no puede permitirse.

Además, son aplicaciones que no están preparadas para ser consumidas desde múltiples dispositivos, no se pueden integrar fácilmente con nuevos servicios cloud, no pueden ser ofrecidas como servicio en arquitecturas multi-tenant, no tienen la elasticidad ni la escalabilidad suficientes para adaptarse a las cada vez más cambiantes necesidades de los actuales negocios, etc. Por tanto, las empresas empiezan a plantearse la necesidad de modernizar estas aplicaciones y se preguntan cómo pueden aprovechar los beneficios de las arquitecturas cloud en las aplicaciones más tradicionales.

Lo veremos en mi post de mañana.

Imagen: Trako Antonio

Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *