Tres opciones para llevar sus aplicaciones heredadas a la nube
Cuando se trata de modernizar aplicaciones y migrarlas hacia la nube, las organizaciones pueden elegir enfoques de “levantar y cambiar”, rediseñar su app de cero o rehospedarla e irla modificando.
La migración a la nube permite a las empresas mantenerse al día y adaptarse a las cambiantes necesidades del mercado. Sin embargo, numerosas empresas se resisten o demoran la decisión de migrar las aplicaciones heredadas a la nube. Esto no tiene sentido si se considera que el traslado a la nube es la medida más potente, fácil y a menudo más rentable que puede adoptar una empresa para avanzar, ya que libera los recursos no disponibles, y reduce los problemas de tiempo y costos.
¿Por qué migrar?
Por lo general, los clientes buscan la modernización de sus aplicaciones cuando experimentan algunos o todos estos problemas típicos de las aplicaciones heredadas:
- Aumento repentino en el uso. Es una situación frecuente en la que se encuentran muchas empresas en crecimiento: Esperan un gran aumento repentino del uso con la incorporación de un nuevo cliente o, de manera similar, son un minorista que prevé una gran oleada de público.
- Escasez de talento/precio. Hay empresas que no pueden encontrar o permitirse pagar programadores para las aplicaciones heredadas (COBOL/PHP), pues estos tienen más experiencia y, por tanto, son más costosos. De manera alternativa, podrían buscar en el extranjero, pero ello conlleva otros desafíos importantes, propios de la situación.
- Gran demora. Su proceso de incorporación de programadores es demasiado lento para ser eficaz. De hecho, recientemente, supimos de un cliente que demoró nueve meses en incorporar por completo a cada programador.
- No pueden escalar. Su aplicación solo puede escalar verticalmente y está llegando a sus límites.
- Antigüedad de la interfaz. Su aplicación ganó una reputación en el mercado por estar desactualizada. Aunque las reglas comerciales de la empresa sean las mejores de la industria, no tienen éxito debido a una mala UI/UX o solucionan problemas con una arquitectura que ya no es viable.
Beneficios de la migración a la nube
Al considerar la migración de una aplicación heredada a la nube, la razón principal de una organización será probablemente reducir el riesgo de diferentes formas:
- Reducir costos. Amazon Web Services (AWS) hace mucho más fácil desarrollar aplicaciones altamente disponibles y tolerantes a fallas con múltiples zonas de disponibilidad y múltiples regiones al instante, con un modelo de pago por uso.
- Reducir la complejidad operativa. La organización ya no tendrá que preocuparse por adquirir hardware ni gestionar un centro de datos que no sea esencial para la empresa.
- Reducir la dificultad de encontrar ingenieros que trabajen en la base de código heredada. A menudo se pasa por alto, pero el motivo clave de la migración a la nube es que resulta más fácil reclutar personal. El cómputo en la nube es el futuro y aquí es donde los programadores quieren su experiencia. La realidad es que cada vez es más difícil conseguir programadores de COBOL y PHP, y el grupo de programadores que desean trabajar con tecnologías en la nube está creciendo.
- Reducir el costo y el tiempo de llegada al mercado de las nuevas funcionalidades. Las aplicaciones bien diseñadas impulsadas por tecnologías en la nube suelen poder expandirse mediante la adición de microservicios y carecen de esa inercia heredada.
- Eliminar las barreras en cuanto a la escalabilidad y el crecimiento. Las arquitecturas nativas de la nube son casi ilimitadamente escalables.
- Aumentar la seguridad de su aplicación. Las aplicaciones heredadas no se diseñaron para abordar los problemas de seguridad modernos. Las prácticas recomendadas en torno a la codificación, el inicio de sesión único con federación de identidades y los protocolos de acceso a la seguridad de los datos han cambiado en los últimos años. Nadie quiere ser noticia por las violaciones a la seguridad corporativa.
- Aumentar la solidez de su aplicación. Los proveedores de nube facilitan en gran medida la implementación de aplicaciones de alta disponibilidad o tolerantes a fallas, que sean resistentes en varios centros de datos o incluso en todo un continente.
Se requiere conocer todo el espectro de opciones disponibles
A menudo, cuando una empresa se plantea migrar una aplicación heredada, también cree, por error, que la migración va a costar una fortuna. Piensa que no tiene a qué recurrir; que la migración en sí será compleja, lenta y costosa; que tendrá que reunir todo y trasladarlo a la nube, lo que significa un cambio total de arquitectura. Ese no es el caso.
Al afrontar la actualización de su propia infraestructura o arquitectura de aplicaciones obsoletas, muchos no se dan cuenta de que existe un camino intermedio en el que el proceso se puede realizar en etapas con menos riesgo. Existe la oportunidad de adoptar de manera gradual estas nuevas tecnologías en la nube.
[Frente a este escenario, proponemos tres opciones que las organizaciones pueden considerar:]
Opción 1: Contenerizar la aplicación heredada y rehospedarla en la nube (con la subopción de Migrar DB2 o archivos sin formato a AWS Aurora).
Las ventajas de este modelo son: el escalado vertical es mucho más fácil, por lo que se podría manejar la nueva carga a tiempo para cumplir con los requisitos del mercado; se puede realizar de manera relativamente rápida, con un riesgo relativamente bajo (la migración de la base de datos podría ser un desafío); y la aplicación tendrá una vida útil extensa.
En cuanto a sus desventajas: si la base de datos es un embotellamiento, DB2 a Postgres o MySQL (AWS Aurora) podría requerir una recodificación de la capa de acceso a los datos, que es complicada, especializada y propensa a errores; además, los procedimientos almacenados podrían ser un problema, o podría definitivamente no ser posible. También se requiere algunas modificaciones. Pero, por sobre todo, esto no resuelve el problema heredado subyacente, simplemente lo evita.
Opción 2: Rediseñar la aplicación para que tenga tecnología sin servidor y sea nativa de la nube
Sus ventajas son: la aplicación moderna sin servidor será modular, basada en eventos y tendrá la capacidad de escalar a infinito; la UI/UX actualizada se ve mejor en el mercado; los lenguajes modernos que son más compatibles con la nube permiten una dotación de personal más sencilla y una incorporación más rápida; las arquitecturas modernas sin servidor se entienden bien y hay innumerables recursos actualizados disponibles; se resuelve los años/décadas de deuda funcional y técnica atrasada; y, normalmente, le deja a una empresa una comprensión mucho mejor de cómo opera su negocio.
Pero, como desventajas: demanda mucho tiempo y se podría salir del mercado con el tiempo; y especialmente puede ser una opción costosa.
Opción 3: Rehospedar toda la aplicación, y luego rediseñar solo las partes de la aplicación que son clave para alcanzar los objetivos de la empresa.
En este modelo, las ventajas son: combina los beneficios de las dos primeras opciones con pocos inconvenientes; se reduce el riesgo general; y el equipo actual puede volver a capacitarse poco a poco con la ayuda de expertos en tecnologías de la nube y técnicas de desarrollo nativo de la nube.
La única desventaja es que puede ser difícil integrar nuevas tecnologías en las partes más obsoletas de la aplicación.
Arquitectos experimentados que han visto y resuelto las tres opciones en muchas empresas pueden ayudarlo a descubrir con rapidez sus otras ventajas y desventajas, y ofrecerle una hoja de ruta de modernización detallada, con estimaciones de tiempo y costos para brindar soporte a su proceso de toma de decisiones.
[Otros riesgos que se debe tener en cuenta son] si necesita ayuda para comprender todos sus casos de uso y (…) la posibilidad de encontrar resistencia por parte del equipo actual, que puede sentirse amenazado, reacio o incapaz de aprender nuevos paradigmas.
Trasladar las bases de datos y los sistemas de un centro de datos local a la nube requiere de una estrategia. Una migración exitosa necesita una planificación avanzada y el uso de recursos dedicados. Usted debe tener especial cuidado en limitar las interrupciones, evitar el tiempo de inactividad y garantizar que sus datos permanezcan seguros durante toda la migración. Esto es sobre todo cierto en industrias muy reguladas como el cuidado de la salud, la seguridad nacional y las finanzas.
Cuando no se cuenta con la experiencia o los recursos para crear y ejecutar una estrategia de migración, el contratar a un socio desde el principio es la mejor manera de ayudar a garantizar la culminación exitosa de su migración a AWS.
Nota del editor: Este artículo fue editado por extensión y estilo editorial.
Sobre el autor: Tom Manning es gerente del Área de Desarrollo Nativo de Nube e IoT en Rackspace Technology. Es líder de software de aplicaciones nativas de nube con más de dos décadas de experiencia en la industria, y con experiencia en metodologías ágiles, arquitectura de productos y capacitación de clientes, entre otras habilidades. Anteriormente, trabajó como ingeniero de software en Onica y Tasktop, y fue líder de desarrollo de producto en NTT Data. Es ingeniero civil por la Universidad de British Columbia y se graduó en Ciencia Computacional por la misma universidad. Es ingeniero DevOps nivel profesional y desarrollador asociado certificado por AWS.