La migración de aplicaciones es el proceso de mover una aplicación de software de un entorno informático a otro. Puede, por ejemplo, migrar una aplicación de un centro de datos a otro, de un servidor local al entorno de un proveedor de cloud, o de un entorno de cloud público a uno de cloud privado.
Debido a que las aplicaciones normalmente se crean para ejecutarse en sistemas operativos determinados en arquitecturas de red específicas o se desarrollan para una única plataforma cloud, mover una aplicación a un nuevo entorno conlleva varios retos. Por lo general, es más fácil migrar aplicaciones desde arquitecturas virtualizadas o basadas en servicios que migrar aquellas que se ejecutan en hardware bare metal.
Determinar una estrategia general para la migración de aplicaciones implica considerar las dependencias y los requisitos técnicos de cada aplicación, así como las limitaciones de seguridad, conformidad y coste de su empresa.
Cada aplicación puede trazar su propia ruta al cloud, incluso aplicaciones del mismo entorno tecnológico. Desde los inicios de cloud computing, los desarrolladores se han referido a estos patrones de migración de aplicaciones con nombres que empiezan por "R".
Realojamiento: también conocido como lift-and-shift, se trata de una estrategia común en la que la empresa mueve la aplicación de un servidor local a una máquina virtual en cloud sin realizar cambios significativos. El realojamiento de aplicaciones suele ser más rápido que otras estrategias de migración y puede reducir significativamente los costes de la migración. La desventaja es que, sin ninguna modificación, las aplicaciones no se beneficiarán igual de las prestaciones de la informática nativa en cloud, y los costes a largo plazo de su ejecución en cloud pueden ser más elevados.
Refactorización o rediseño: la refactorización se refiere a realizar cambios significativos en la aplicación para que se pueda escalar o ejecutar mejor en un entorno de cloud. Puede implicar la recodificación de gran parte del código de la aplicación para que pueda aprovechar mejor las funciones nativas en cloud, como la reestructuración de una aplicación monolítica en un conjunto de microservicios o la modernización del almacén de datos de SQL a NoSQL.
Replataforma: una especie de término medio entre "lift-and-shift" y el rediseño; modificar la plataforma de una aplicación implica realizar cambios menores en ella para adaptarla mejor a una arquitectura de cloud. Entre los ejemplos más destacados se incluyen la actualización de la aplicación para que funcione con una base de datos gestionada nativa en cloud, el cambio de los sistemas operativos o el middleware con el que trabajará, o la contenerización de la aplicación.
Retirada/reemplazo: en algunos casos, simplemente tiene más sentido desmantelar la aplicación. Posibles causas para su retirada serían que su valor es limitado, porque sus prestaciones están duplicadas en otros lugares del entorno o porque es más rentable reemplazar la aplicación por una nueva oferta, a menudo una plataforma de software como servicio (SaaS), que migrarla.
Para desarrollar la estrategia de migración de aplicaciones que sea mejor para el entorno de TI exclusivo de su empresa y las necesidades del negocio, deberá comprender exactamente qué hay en su portfolio de aplicaciones, los detalles de sus requisitos de seguridad y conformidad, los recursos de la nube que está consumiendo actualmente y cómo son sus infraestructuras locales de almacenamiento, cálculo y red.
Para lograr que la migración al cloud sea efectiva, también deberá clarificar los principales motores de negocio que la motivan y adaptar su estrategia en consonancia, sin perder de vista el por qué está migrando al cloud y qué espera lograr con la transición.
En el siguiente vídeo, Andrea Crawford analiza más detenidamente en qué consiste la migración al cloud:
Las partes interesadas pueden temer que las migraciones de aplicaciones provoquen interrupciones en el negocio o generen costes imprevistos. Los riesgos más frecuentes incluyen:
Llevar a cabo una evaluación minuciosa de los riesgos y beneficios asociados al realojamiento, el rediseño/replataforma o la retirada de cada aplicación del portfolio puede ayuda a mitigar los riesgos generales asociados a la migración de aplicaciones. En concreto, es importante comparar los costes a nivel de departamento con el coste total de la empresa y evaluar el coste total de propiedad (TCO) de cualquier hardware que necesite para mantener aplicaciones en local.
Hace unos años, las empresas a menudo trataban de mover aplicaciones al cloud porque querían la flexibilidad, la escalabilidad o la estructura de costes de pago por uso previsible que ofrecen los proveedores de cloud.
Ahora, sin embargo, las empresas también buscan entornos que habiliten la innovación. Tanto si esto se traduce en acceso a los procesadores de alto rendimiento necesarios para los algoritmos de deep learning como en aplicaciones en contenedores que permitan a los equipos de desarrollo mejorar las experiencias digitales de los clientes mediante la implementación rápida de cambios, las tecnologías de cloud permiten a las empresas experimentar, probar nuevas ideas y "fallar más rápido". En muchos casos, las tecnologías compatibles con el cloud, como la contenerización, permiten ofrecer a los usuarios finales mejores experiencias que las máquinas virtuales a las que pueden reemplazar.
En términos generales, el proceso de planificación de migración de aplicaciones se puede dividir en tres etapas. En cada una, es fundamental sopesar los costes de todas las opciones potenciales, incluida la opción de retener algunas cargas de trabajo locales.
Identificación y evaluación de aplicaciones. En esta fase de descubrimiento inicial, debe comenzar asegurándose de contar con un catálogo completo de todas las aplicaciones en su portfolio. A continuación, categorice las aplicaciones de acuerdo con su importancia (crucial o no crucial para el negocio), si su valor es estratégico o no y las expectativas que tiene al migrar cada una al cloud. Debe tratar de comprender el valor de cada aplicación en torno a estas características:
Finalmente, deberá realizar una evaluación de afinidad de cloud para cada aplicación que esté pensando en migrar. Durante este proceso, puede determinar qué aplicaciones están listas para migrarlas tal como están y cuáles necesitarían cambios significativos para adaptarse al cloud.
También puede emplear herramientas de descubrimiento de dependencia de aplicaciones para determinar la factibilidad de migrar una carga de trabajo particular fuera de su entorno actual.
Evaluación del coste total de propiedad (TCO). Determinar el coste total de un proyecto de migración al cloud puede ser complejo. Necesitará comparar escenarios hipotéticos para mantener las aplicaciones y la infraestructura local con aquellos asociados a la migración al cloud. Esto significa que tendrá que calcular los costes de compra, operación y mantenimiento del hardware que mantendría en local en cualquiera de los escenarios, y los costes de las licencias de software.
Será conveniente comparar la factura mensual de su proveedor de cloud en cualquiera de los escenarios y los costes de la migración en sí, incluidos los costes de la prueba de la nueva infraestructura y la formación a los empleados para utilizar el software actualizado. No olvide considerar los costes de mantenimiento de las aplicaciones existentes que permanecerán en local.
Evaluación global de la duración del proyecto y riesgos. En la fase final de la planificación de la migración, establecerá un cronograma para el proyecto e identificará los riesgos u obstáculos que probablemente surjan.
En términos generales, cuanto más antigua es la aplicación, mayor es el reto (y, en consecuencia, menor es su valor potencial) de migrar al cloud. El software desactualizado es problemático en muchos sentidos: su mantenimiento es caro, pueden surgir problemas de seguridad si ya no se le aplican parches y tiende a ofrecer un rendimiento inferior en entornos informáticos modernos. Sea especialmente minucioso a la hora de evaluar las aplicaciones existentes antes de decidirse a migrarlas.
Cuando las organizaciones evalúan la viabilidad y la prioridad de una aplicación para la migración, consideran los siguientes aspectos.
Complejidad: ¿Dónde se desarrolló esta aplicación? Si es internamente, ¿el desarrollador sigue trabajando en su compañía? ¿La documentación de la aplicación está fácilmente disponible? ¿Cuántos años tiene la aplicación? ¿Cuánto tiempo hace que se utiliza? ¿Cuántas otras aplicaciones o flujos de trabajo de su organización dependen de ella de alguna manera?
Criticidad: ¿Cuántos usuarios dependen de esta aplicación a diario? ¿Y semanalmente? ¿Cuánto tiempo de inactividad podrían tolerar antes de que se interrumpieran las operaciones de negocio? ¿Se utiliza la aplicación en producción, en desarrollo, en las pruebas o en las tres fases? ¿Está gestionada por un equipo informático interno o por un proveedor externo? ¿Existen otras aplicaciones con requisitos de tiempo de funcionamiento/inactividad que deban sincronizarse con los de esta aplicación?
Cumplimiento: ¿Con qué requisitos normativos debe cumplir la aplicación?
Disponibilidad: ¿A qué estándares de tiempo de funcionamiento debe ajustarse esta aplicación? Por ejemplo, ¿está sujeta a un acuerdo de nivel de servicio (SLA) que estipula el 99,99 % de tiempo de funcionamiento?
Pruebas
Para asegurar que no se pierdan datos ni prestaciones durante el proceso de migración de aplicaciones, debe realizar pruebas durante la migración para verificar que todos los datos estén presentes, que la integridad de los datos se haya mantenido y que los datos estén ahora en la ubicación de almacenamiento correcta.
También es esencial realizar una prueba de seguimiento una vez completada la migración, analizar el rendimiento de las aplicaciones y garantizar que los controles de seguridad permanezcan intactos.
La virtualización es un componente fundamental en muchas estrategias de migración al cloud porque las máquinas virtuales pueden ejecutarse fácilmente en nuevos entornos de hardware físicos. Incluso es posible migrar una aplicación en directo —en ejecución en una máquina virtual— entre máquinas físicas de host sin interrumpir la experiencia del usuario final. La flexibilidad y la versatilidad de los entornos informáticos virtualizados simplifican drásticamente el proceso de migración de aplicaciones.
Tipos de hipervisores y operaciones de migración
Hay varias soluciones de réplica y migración actualmente disponibles que permiten a sus clientes migrar máquinas virtuales entre servidores bare metal, servidores virtuales en cloud e incluso hipervisores.
Hay muchos servicios disponibles para ayudar a su empresa a diseñar estrategias, planear y ejecutar una migración al cloud eficiente.
Blueprint de migración: en una oferta de servicios de planificación completa, su proveedor le ayudará a aclarar su estrategia y objetivos de la migración a través de la recopilación de información sobre sus aplicaciones y entorno, la identificación de las necesidades de sus usuarios y los requisitos de su empresa, y la elaboración de un plan de acción detallado para la migración.
Despliegue de la migración: si elije una opción de despliegue gestionada, su proveedor no solo le ayudará en la elaboración de la estrategia y la planificación de su migración, sino que también gestionará la migración en sí y cualquier prueba y resolución de problemas asociada. Por lo general, se trata de una oferta de servicios completamente equipada que incluye soporte completo.
Servicios gestionados en cloud: una oferta de servicios gestionados en cloud normalmente incluye la supervisión y el mantenimiento de su entorno de TI basado en cloud. Su proveedor de servicios de cloud asumirá la responsabilidad de varias funciones, que van desde la gestión de la seguridad del cloud hasta la adquisición de ofertas como servicio de proveedores en su nombre. La migración de aplicaciones se puede incluir en una oferta de servicios empaquetada o añadirse "a la carta".
Modernización de aplicaciones: los servicios de modernización de aplicaciones incluyen ofertas de desarrollo personalizado que pueden preparar aplicaciones existentes para el cloud modificándolas para que se ejecuten en contenedores o en entornos virtualizados.
IBM Cloud Migration Services ayuda a gestionar la migración al cloud de su negocio para que pueda concentrarse en todo lo demás.
Cloud computing transforma la infraestructura de TI en un programa de utilidad, lo que le permite "conectarse" a las aplicaciones y recursos informáticos a través de Internet, sin tener que instalarlos ni mantenerlos en local.
La migración al cloud es el proceso de reubicación de los datos, las aplicaciones y las cargas de trabajo de una organización en una infraestructura cloud.
Actualmente, la modernización de aplicaciones se refiere principalmente a transformar aplicaciones monolíticas existentes en aplicaciones en cloud creadas sobre arquitectura de microservicios.