Seleccionar página
3 de abril de 2024

Proceso de migración de bases de datos OnPrem a PaaS de Azure (Parte I)

El post que se desarrolla a continuación, es el primero de una serie de dos artículos. En éste, sentamos las bases e identificando las fases asociadas a proyectos de migración y una descripción de la herramientas que se utilizarán en dicho proceso. En el segundo capítulo de la serie, veremos un caso real de migración con detalles de los pasos a seguir.

 

¡Comenzamos!

En este primer post de la serie de migraciones a Azure, se describen y analizan las fases incluidas en un proceso de migración de bases de datos de un entorno OnPrem (servidores físicos o virtuales), o entorno virtual en Azure, a servicios de PaaS de Azure.

Azure dispone, principalmente, de dos entornos puramente relacionales de SQL en el ámbito PaaS, Azure Managed Instances y Azure SQL Databases, cada una con sus pros y contras, para llevar nuestro entorno a este tipo de plataformas.

Como alternativas a los entornos PaaS, tenemos entornos IaaS Este tipo de entornos están basados en templates de máquinas virtuales preparadas y optimizadas para albergar servicios SQL Server.

Las fases sobre las que trabajaremos son tres: pre-migración, migración y post-migración. En la siguiente ilustración, se muestran las subfases y tareas a acometer en cada una de las fases principales del proyecto.

fases-migracion-exitosa-azure

Tareas a acometer en un proceso de migración

Es importante tener en cuenta que cada migración puede ser única y puede requerir pasos adicionales dependiendo de los requisitos específicos de las aplicaciones en la infraestructura a la que se migra.

En cuanto a la estructura del post, se acometerán dos apartados principales:

  • Herramientas de apoyo para los procesos de migración.
  • Fases del proceso de migración.

Ánimo, vamos allá.

Migra y moderniza tus aplicaciones a la nube con Azure

Mejora la eficiencia de tu plataforma, con seguridad y cumpliendo las normativas vigentes, mientras despliegas proyectos innovadores para acelerar tu negocio y mantenerte competitivo.

Apostar por Microsoft Azure es apostar por una infraestructura sostenible con un impacto local. Usar la plataforma en la nube de Microsoft puede ofrecerte hasta un 93 % más de eficiencia energética y hasta un 98 % más de eficiencia en materia de carbono en comparación con las soluciones locales.

Contacta con nosotros para explorar cómo podemos hacer que la inteligencia artificial trabaje para tu empresa.

Herramientas de apoyo a la migración

Antes de entender el proceso, hemos de conocer las herramientas que se utilizarán durante la migración. Para dichas migraciones, se hará uso, principalmente, de tres herramientas:

Por un lado, tenemos Data Migration Assistant que nos permitirá comprobar el ‘Modo de Compatibilidad’ máximo en el que puede correr nuestras bases de datos.

Por otro lado, haremos uso de Azure Database Migration Services integrado con Azure Migration Assistant. Dicha herramienta nos facilitarán el análisis de viabilidad de la migración que proyectamos ejecutar, estimar el dimensionamiento de los recursos Azure destino de la migración y apoyo durante todo el proceso, asegurando la continuidad del servicio.

azure-herramienta-funcionalidad-tabla

Data migration assistant

Data Migration Assistant (DMA) es una herramienta proporcionada por Microsoft que nos ayudará con la evaluación de compatibilidad de las bases de datos que se migrarán posteriormente.

Antes de la migración, se realizará un análisis exhaustivo de la base de datos OnPrem para identificar cualquier problema de compatibilidad que pueda surgir al migrar a los posibles destinos en Azure (Azure SQL Database, Azure SQL Managed Instance). Esto incluye comprobaciones de características, consultas de rendimiento y otros elementos que puedan afectar la migración.

La herramienta dispone de un asistente paso a paso intuitivo que nos guiará en el análisis de compatibilidad con múltiples versiones de SQL Server. Este análisis nos permitirá identificar las versiones más recientes en las que puede funcionar nuestra base de datos.

microsoftsqlserver-compatibilidad-version-correcion-versionado

Azure migration assistant

Al igual que DMA, Azure Migration Assistant es una herramienta proporcionada por Microsoft que nos apoyará y simplificará la complejidad del proceso de migración. Dicha herramienta se instala como complemento de Azure Data Studio e incorpora informes de evaluación y procesos automatizados.

SQL-SERVER-ON-PREMISE-MIGRACION-AZURE

Azure Migration Assistant dispone de una interfaz de usuario que incluye todas las tareas para ejecutar la migración. Comenzaríamos con una evaluación de compatibilidad y, posteriormente, una recomendación del dimensionamiento del servicio al que proyectamos migrar. El proceso completo por el que nos guía la herramienta, finaliza con la migración y puesta en producción de las bases de datos en destino.

La asistencia de Azure Migration Assistant incluye los siguientes subprocesos:

  • Identificación y trazas de rendimiento de las bases de datos que van a ser migradas.

     

  • Evaluación de la compatibilidad y actividad de elementos a migrar (Assessment summary and SKU recommendations). Como resultado de dicho assesment, se nos presentarán recomendaciones de dimensionamiento de los servicios Azure e informes de posibles contingencias que puedan surgir durante la migración.

En la siguiente ilustración, se muestra un ejemplo del informe de compatibilidad con las distintas opciones de recursos de Azure y la recomendación de dimensionamiento de la instancia manejada a la que podríamos migrar.

AZURE-SQL-DATABASE

Informe de compatibilidad y recomendación de dimensionamiento

  • Migración: Una vez finalizada la fase de migración seguimos apoyándonos en Azure Migration Assistant para el proceso de migración. El proceso de migración contempla las siguientes tareas: 
      • Identificación de la plataforma destino.
      • Parametrización de Azure Database Migration Service.
      • Modelo de migración (Online u offline): La integración de Azure Migration Assistant con Azure Database Migration Service permite la capacidad de ejecutar modos de migración en línea (para migraciones que requieren un tiempo de inactividad mínimo) o sin conexión (para migraciones en las que el tiempo de inactividad persiste mientras dura la migración).

Azure Database Migration Service

Azure Database Migration Service (DMS) es un servicio PaaS de Azure que, integrada con Azure Migration Assistant, nos facilitará la migración de bases de datos locales a Azure, minimizando el tiempo de inactividad del servicio.

DMS se integra con Azure Migration Assistant para la ejecución de la fase principal de la migración, que es la transferencia de la base de datos desde origen hasta destino, una vez realizadas las comprobaciones de compatibilidad y viabilidad descritas en apartados anteriores.

En el proceso integrado de Azure Migration Assistant, se configura el servicio de DMS con las opciones propias de la migración como la suscripción de destino, la red virtual, y las credenciales de origen y destino.

El principal beneficio de ejecutar la migración apoyándonos en el servicio de Azure Migration Assistant es minimizar el tiempo de inactividad.

escenarios-migracion-azure-sql

Acciones a ejecutar para una migración exitosa

Llegados aquí, hemos visto la planificación e identificación de tareas asociadas a una migración y una descripción de las herramientas sobre las que nos apoyaremos en dicho proceso. Para facilitar el seguimiento resumimos esto en las siguientes ilustraciones:

fases-migracion-exitosa-azure

Identificación de tareas de la migración

herramientas-apoyo-azure-migracion

Funcionalidad de las herramientas de apoyo

Sentadas las bases de qué tenemos que hacer y cómo, en los siguientes apartados entramos en el detalle de la ejecución.

Fase Pre-Migración

1. DESCUBRIR

Identificación y análisis de tasas actividad de bases de datos a migrar

Una de las principales tareas a acometer, previa a cualquier proceso de migración, es determinar su actividad actual con objeto de garantizar que los recursos destino de la migración, pueden soportar la carga transaccional de la base de datos origen. Para ello, hemos de recopilar información sobre el tamaño de las bases de datos, tasa de transacciones, consultas ejecutadas, frecuencia de lectura y escritura, entre otros aspectos.

Para cubrir este objetivo se programarán procesos que monitoricen la actividad transaccional en aras de asegurar que los servicios de destinos soportarán dicha carga.

2. EVALUAR

En este proceso se verificará la compatibilidad con los servicios Azure a los que vamos a migrar. Para ello, se hará uso herramientas como el Data Migration Assistant para evaluar la compatibilidad de las bases de datos existentes y corregir cualquier problema identificado, con Azure SQL Managed Instance, Azure SQL Database y Azure Virtual Machine.

Análisis de los niveles de compatibilidad de las bases de datos de origen

Antes de la migración, con el apoyo de DMA, se ha de realizar un análisis exhaustivo de la base de datos origen para identificar incompatibilidades con versiones de SQL Server. El objetivo de esta fase es identificar qué versiones de SQL Server son compatibles con la versión en la que se encuentra la base de datos que proyectamos migrar, e identificar los aspectos que podemos corregir para elevar el nivel de compatibilidad a la que podemos llevar la base de datos.

Nota: Para esta tarea, haremos uso de las trazas de actividad obtenidas en la fase de descubrimiento.

Análisis de la viabilidad de migración de base de datos

Incluido en el proceso de evaluación, se ha de evaluar si las bases de datos locales son compatibles con los servicios Azure a los que proyectamos migrar (Azure SQL Database, Azure SQL Managed Instance o Azure Virtual Machine). En este proceso, con el apoyo de Azure Migration Assistant, obtendremos informes sobre posibles problemas que pudieran aparecer en posteriores fases facilitando la identificación de características o funcionalidades que pueden no ser compatibles en Azure.

Otro de los objetivos de esta fase es estimar el dimensionamiento del servicio Azure en base a la actividad transaccional. Este proceso utiliza los datos recopilados en la fase de ‘discover’ para planificar la migración de manera efectiva, asegurando la asignación de los recursos adecuados y optimizar el rendimiento del entorno de SQL Server.

Nota: Al igual que en el caso anterior, para esta tarea, haremos uso de las trazas de actividad obtenidas en la fase de descubrimiento.

 Proceso de Migración

Con la fase de ‘discover’ y ‘evaluación’ hemos visto qué nivel de compatibilidad soporta nuestra base de datos y hemos aplicado las acciones oportunas para adecuar dicha base de datos a los requerimientos de los servicios Azure a los que proyectamos migrar. Además, de estas fases, se extrae una estimación de requerimientos y dimensionamiento del servicio.

Llegados aquí estamos en disposición de acometer la migración. Como se ha comentado en apartados anteriores, para dicho proceso, contaremos con el apoyo del componente ‘Azure Migration Assistant’, integrado como componente en ‘Azure Data Studio’ y Azure Database Migration Service.

El proceso de migración con Azure Migration Assistant, se basa en la restauración de backups, en modalidad full backup (full, diferenciales y transaction log) de la base de datos origen en la base de datos destino, de forma análoga a lo que hace log shipping.

azure-on-premise

En esta fase iniciamos el proceso de migración de forma efectiva. Dicho proceso se apoya en Azure Migration Assistant y Azure DMS.

DMS se integra con Azure Migration Assistant para la ejecución de la fase principal de la migración, que es la transferencia de la base de datos desde origen hasta destino. Este proceso está basado en la restauración de backups en el destino y puede acometerse de forma online y desatendida para migraciones con destino a máquinas virtuales o a instancia manejadas.

El principal beneficio de ejecutar la migración apoyándonos en el servicio de Azure Migration Assistant, es minimizar el tiempo de inactividad ya que se basan en procesos de sincronización o replicación para garantizar que los datos permanezcan actualizados durante el período de transición.

Según el servicio destino de la migración, tenemos opción de hacer migraciones online (con conexión, en línea) u offline (sin conexión):

• Con una migración sin conexión, el tiempo de inactividad de la aplicación comienza cuando se inicia la migración.
• En el caso de una migración en línea, el tiempo de inactividad se limita al tiempo necesario para adecuar el nuevo entorno cuando se completa la migración.

escenarios-migracion-azure-sql-maquina-virtual

En el caso de migraciones ‘en línea’, la puesta en producción de la nueva plataforma consiste en ‘cerrar’ el acceso a la plataforma origen y dar acceso a la nueva ubicación, sin pérdida de información y con la menor parada de servicio posible.

Con la opción de migraciones en línea, el único momento de inaccesibilidad de servicio es el que comprende la restauración del tail log origen y puesta de la base de datos en modo non-recovery.

Antes de poner en producción la instancia destino, debemos asegurar de haber capturado y aplicado todos los cambios del origen al destino en tiempo real durante la fase de sincronización de datos antes de deshabilitar el acceso a dicho origen.

 Procesos de POST-Migración

La fase de post-migración tiene como objetivo asegurar que la nueva plataforma es capaz de dar servicio a los aplicativos corporativos en, al menos, las mismas condiciones que teníamos en la arquitectura original.

Para asegurar este objetivo, hemos de acometer dos tareas principales: La integración de la nueva plataforma con el ecosistema corporativo y el seguimiento de la eficiencia y rendimiento de la nueva plataforma.

+

Integración de la nueva plataforma con el ecosistema corporativo

Una vez ejecutada la migración queda asegurar la continuidad de las aplicaciones que hacen uso de los datos migrados. Para ello, se ha de identificar las dependencias de la base de datos con los elementos que forman parte del ecosistema de los aplicativos: aplicaciones, servicios y procesos que están integrados con SQL Server, servicios web, informes, integraciones con otras bases de datos, entre otros.

integracion-sistemas-informacion
Z

Seguimiento de la eficiencia y rendimiento de la nueva plataforma

Esta tarea es un proceso iterativo de vigilancia continua del entorno migrado. Para ello, se hace uso de herramientas de captura y análisis de trazas como Log Analytics (por fin estamos en Azure😉), Query Store, etc.

En la siguiente ilustración se bosqueja el seguimiento que se aproxima a un proceso iterativo de mejora continua basado en el esquema de calidad de Deming (digo basado no copiado 😊). 

Este esquema basado en los principios la mejora continua, da un enfoque proactivo a los procesos funcionales de los aplicativos que se integran con la arquitectura recién migrada. Este modelo junto con la adaptabilidad de los recursos de Azure, permitirán adaptar la infraestructura a las necesidades de la organización.

integracion-sistemas-informacion-mejora-continua

Conclusión

En este post, se identifican los procesos que se llevarán a cabo en la migración de bases de datos OnPrem a servicios PaaS de Azure. En el siguiente artículo pasaremos a ilustrar dichos procesos con un ejemplo real de migración en el que nos adentraremos en los detalles y el uso de aplicaciones de apoyo para llevarla a cabo.

A modo de resumen, este tipo de migraciones consta de tres fases fundamentales:

fases-migracion-exitosa-azure

Las fases de ‘Descubrir’ y ‘Evaluar’ son fases de premigración y, a continuación, tenemos la migración propiamente dicha. Tras la migración,  hemos de comprobar que el funcionamiento de la nueva plataforma es correcto y en línea con las necesidades funcionales de la organización. Estas serie de tareas de comprobación, se enmarcan en los procesos de postmigración.

Con este post finaliza la parte más teórica asociada a la migración de SQL Server a servicios Paas (e IaaS) de Azure. En el próximo post, analizamos un caso práctico de migración que nos ayudará a contextualizar los conceptos vistos aquí.

Conviértete en un experto en SQL con Verne Academy

¿Necesitas mejorar el rendimiento de tu base de datos? ¿Has ido aprendiendo sin una metodología clara, picoteando de distintas fuentes para resolver necesidades puntuales, pero no cuentas con una visión general y completa? ¡Deja tus tareas más rutinarias en manos de la tecnología y focalizar tu tiempo en lo importante! Con nuestros cursos de SQL podrás refrescar todos tus conocimientos y aprender con casos prácticos diferentes conceptos y buenas prácticas que te ayudarán a conseguir bases de datos más estables y a optimizar su rendimiento.
alvaro-mollor-quesada

Antonio Llompart Freire

Data & Cloud Mentor