La migración de aplicaciones es el proceso de trasladar aplicaciones de software de un entorno informático a otro. Por ejemplo, puede migrar una aplicación de un centro de datos a otro, de un servidor local al entorno de un proveedor de nube, o de la nube pública a un entorno de nube privada.
Debido a que las aplicaciones generalmente se crean para ejecutarse en sistemas operativos particulares en arquitecturas de red específicas o se desarrollan para una plataforma única en la nube, mover una aplicación a un nuevo entorno puede plantear varios desafíos. 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 de 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 costos de su empresa.
Las diversas aplicaciones pueden tomar rutas distintas para llegar a la nube, incluso dentro del mismo entorno tecnológico. Desde los primeros días de la computación en la nube, los desarrolladores se han referido a estos patrones de migración de aplicaciones con nombres que comienzan con "R".
Rehospedaje: también conocido como lift-and-shift, es una estrategia común en la que la empresa traslada la aplicación de un servidor local a una máquina virtual en la nube sin realizar cambios significativos. El rehospedaje de aplicaciones suele ser más rápido que otras estrategias de migración y puede reducir significativamente los costos de migración. La desventaja es que sin ninguna modificación, las aplicaciones no se beneficiarán igual de las funcionalidades de la computación nativa de la nube , y los costos a largo plazo de su ejecución en la nube pueden ser más elevados.
Refactorización o rediseño: la refactorización es una técnica que consiste en realizar cambios bastante significativos en la aplicación para que pueda escalar o funcionar mejor en un entorno de nube. Podría implicar la recodificación de partes importantes de la aplicación para que pueda aprovechar mejor las funcionalidades nativas de la nube, 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.
Cambio de plataforma (replatform): como una especie de término medio entre "lift-and-shift" y rediseño, el cambio de plataforma de una aplicación implica realizar cambios menores para que pueda beneficiarse mejor de la arquitectura en la nube. Algunos ejemplos podrían ser la actualización de la aplicación para que funcione con una base de datos gestionada nativa de la nube, el cambio de los sistemas operativos o el middleware con el que funcionará, o la contenerización de la aplicación.
Retiro/reemplazo: en algunos casos, tiene más sentido simplemente deshacerse de la aplicación. Esto podría deberse a que su valor es limitado, a que sus funcionalidades se duplican en otras partes de su entorno o a que es más rentable reemplazarla con una nueva solución, a menudo una plataforma de software como servicio (SaaS), que migrar la aplicación.
Para desarrollar la estrategia de migración de aplicaciones que mejor se adapte al entorno de TI y a las necesidades comerciales propias de su empresa, deberá comprender exactamente qué hay en su portafolio de aplicaciones, las características específicas de sus requisitos de seguridad y conformidad, los recursos en la nube que consume actualmente y cómo son sus infraestructuras de red, computación y almacenamiento en las instalaciones.
Para que una migración a la nube tenga éxito, también deberá tener claros los principales incentivos empresariales que la impulsan y alinear su estrategia en consonancia, sin perder de vista el por qué está migrando y qué espera obtener.
En el siguiente video, Andrea Crawford analiza más detenidamente la migración a la nube:
Es probable que los stakeholders teman que la migración de aplicaciones cause interrupciones en el negocio o genere costos imprevistos. Los riesgos más comunes incluyen:
Llevar a cabo una evaluación cuidadosa y detallada de los riesgos y beneficios asociados al rehospedaje, el rediseño/cambio de plataforma o la retirada de cada aplicación del portafolio puede ayudar a mitigar los riesgos generales vinculados a la migración de aplicaciones. En particular, es importante comparar los costos de los distintos departamentos con el costo total para la empresa y evaluar el costo total de propiedad (TCO) de cualquier hardware que deba conservar para mantener las aplicaciones en las instalaciones.
En años anteriores, muchas veces las empresas procuraban trasladar aplicaciones a la nube porque querían la flexibilidad, la escalabilidad o la estructura de costos de pago por uso previsible que ofrecen los proveedores de la nube.
Hoy, sin embargo, también buscan entornos que permitan la innovación. Ya sea que eso signifique el acceso a los procesadores de alto rendimiento necesarios para impulsar algoritmos de deep learning o aplicaciones en contenedores que permitan a los equipos de desarrollo mejorar las experiencias digitales de los clientes rápidamente al implementar cambios a gran velocidad, las tecnologías en la nube hacen posible que las empresas experimenten y prueben nuevas ideas, y "fallen más rápido". En muchos casos, las tecnologías compatibles con la nube, como la contenerización, permiten ofrecer a los usuarios finales mejores experiencias que las máquinas virtuales a las que reemplazan.
En términos generales, el proceso de planificación de la migración de aplicaciones se puede dividir en tres etapas. En cada una de ellas, es fundamental sopesar los costos de todas las posibles opciones, incluida la elecció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 portafolio. A continuación, debe categorizar las aplicaciones de acuerdo con su importancia (crítica o no crítica para el negocio), si su valor es estratégico o no estratégico y lo que espera de migrar cada una a la nube. Debe tratar de comprender el valor de cada aplicación en relación con las siguientes características:
Luego, deberá realizar una evaluación de afinidad con la nube para cada aplicación que considere migrar. Durante este proceso, puede determinar qué aplicaciones están listas para migrar tal como están y cuáles necesitarían cambios significativos antes de estar listas para la nube.
También puede emplear herramientas de detección de dependencias de aplicaciones para determinar la factibilidad de migrar una carga de trabajo particular fuera de su entorno actual.
Evaluación del costo total de propiedad (TCO). Determinar el costo total de un proyecto de migración a la nube puede ser una tarea compleja. Deberá comparar escenarios hipotéticos en los que mantiene las aplicaciones y la infraestructura en las instalaciones con los que implican un traslado a la nube. Esto significa que tendrá que calcular los costos de compra, operación y mantenimiento del hardware que mantendría en las instalaciones en cualquier escenario y los costos de licencia del software.
Deberá comparar la factura mensual que obtendría de su proveedor de nube en cualquier escenario y los costos de la migración en sí, incluidos los costos de probar la nueva infraestructura y capacitar a los empleados para usar el software actualizado. No olvide considerar los costos de mantenimiento de las aplicaciones heredadas que permanecerán en las instalaciones.
Evaluación general del riesgo y la duración del proyecto. En la fase final de la planificación de la migración, deberá establecer un cronograma para el proyecto e identificar los riesgos u obstáculos que muy probablemente encuentre.
En términos generales, cuanto más antigua es la aplicación, más complicado (y en consecuencia, potencialmente menos valioso) es migrar a la nube. El software obsoleto es problemático de muchas maneras: es caro de mantener, puede generar problemas de seguridad si ya no se le aplican parches y tiende a ofrecer un rendimiento inferior en los entornos informáticos modernos. Sea especialmente minucioso al evaluar las aplicaciones heredadas antes de decidir migrarlas.
Cuando las organizaciones evalúan qué tan viable y prioritaria es la migración de una aplicación, consideran los siguientes aspectos.
Complejidad: ¿Dónde se desarrolló esta aplicación? Si fue desarrollada internamente, ¿el desarrollador sigue trabajando en su empresa? ¿La documentación de la aplicación se puede obtener fácilmente? ¿Cuántos años tiene la aplicación? ¿Cuánto tiempo ha estado en uso? ¿Cuántas otras aplicaciones o flujos de trabajo dentro de su organización dependen de esta de alguna manera?
Criticidad: ¿Cuántos usuarios dependen de esta aplicación a diario? ¿Semanalmente? ¿Cuánto tiempo de inactividad podrían tolerar antes de que se interrumpan las operaciones empresariales? ¿Se utiliza la aplicación en producción, desarrollo, pruebas o en las tres actividades? ¿Está gestionada por un equipo de TI interno o por un proveedor externo? ¿Hay otras aplicaciones con requisitos de tiempo de actividad/tiempo de inactividad que deban sincronizarse con esta aplicación?
Conformidad: ¿Qué requisitos normativos debe cumplir la aplicación?
Disponibilidad: ¿Qué estándares de tiempo de actividad debe cumplir esta aplicación? Por ejemplo, ¿está sujeta a un acuerdo de nivel de servicio (SLA) que estipula un tiempo de actividad del 99.99 %?
Pruebas
Para asegurar de que no se pierdan datos o funcionalidades durante el proceso de migración de la aplicación, debe realizar pruebas durante la migración para verificar que todos los datos estén presentes, que se haya mantenido la integridad de los datos y que los datos estén ahora en la ubicación de almacenamiento correcta.
También es fundamental realizar pruebas de seguimiento después de que se complete la migración, comparar el rendimiento de la aplicación y garantizar que los controles de seguridad se mantengan.
La virtualización es un componente fundamental en muchas estrategias de migración a la nube porque las máquinas virtuales se pueden ejecutar fácilmente en nuevos entornos de hardware físico. Incluso es posible mover una aplicación en vivo, que se está ejecutando en una máquina virtual, entre máquinas host físicas sin interrumpir la experiencia del usuario final. La flexibilidad y versatilidad de los entornos informáticos virtualizados simplifica drásticamente el proceso de migración de aplicaciones.
Tipos de hipervisores y operaciones de migración
Varias soluciones de replicación y migración disponibles actualmente permiten a sus clientes migrar máquinas virtuales entre servidores bare metal, servidores virtuales en la nube e incluso hipervisores.
Hay muchos servicios disponibles para ayudar a su empresa a diseñar estrategias, planificar y ejecutar una migración exitosa a la nube.
Plan de migración: en un paquete completo de servicios de plan de migración, su proveedor le ayudará a aclarar su estrategia y objetivos de migración recopilando información sobre sus aplicaciones y entorno, identificando las necesidades de sus usuarios y los requisitos de su empresa, y elaborando un plan de acción detallado para su migración.
Implementación de la migración: si elige una opción de implementación gestionada, su proveedor no solo le ayudará a diseñar una estrategia y planificar su migración, sino que también gestionará la migración en sí y cualquier prueba y resolución de problemas asociados. Por lo general, se trata de un paquete de servicios completo e inmediato que incluye soporte a gran escala end-to-end.
Servicios gestionados en la nube: una solución de servicios gestionados en la nube normalmente incluye la supervisión y el mantenimiento de su entorno de TI basado en la nube. Su proveedor de servicios gestionados en la nube asumirá la responsabilidad de múltiples funciones, que van desde la gestión de la seguridad de la nube hasta la adquisición de soluciones como servicio de proveedores en su nombre. La migración de aplicaciones puede incluirse dentro de un paquete de servicios o agregarse después.
Modernización de aplicaciones: los servicios de modernización de aplicaciones incluyen soluciones de desarrollo personalizadas que pueden preparar aplicaciones heredadas para su uso en la nube, modificándolas para que se ejecuten en contenedores o entornos virtualizados.
IBM Cloud Migration Services le ayuda a gestionar la migración de su empresa hacia la nube para que pueda enfocarse en otros aspectos importantes.
La computación en la nube transforma la infraestructura de TI en un servicio, lo que le permite "conectarse" a los recursos y aplicaciones informáticos a través de Internet, sin instalarlos ni mantenerlos en las instalaciones.
La migración a la nube es el proceso de reubicación datos, aplicaciones y cargas de trabajo de una organización en una infraestructura en la nube.
Actualmente, la modernización de aplicaciones se refiere principalmente a la transformación de aplicaciones heredadas monolíticas en aplicaciones en la nube basadas en una arquitectura de microservicios.