Blog de Amazon Web Services (AWS)
Cómo Dow Jones migró y modernizó sus bases de datos esenciales para la empresa en una sola operación para mejorar su eficacia y rentabilidad
Por Sheri Moran, Arquiteta-Chefe de Soluções;
Luke Sawatsky, Diretor de Engenharia na equipe da Market Data e
Alex Zuo Gerente de Produtos na Equipe de Serviços de Software Comercial do Amazon EC2
Acerca de la arquitectura de la plataforma de Market Data
A máxima capacidad, Dow Jones procesa más de 3000 solicitudes por segundo a través de la plataforma Market Data. Los datos abarcan desde los valores oficiales al final del día de las bolsas hasta los datos de valores en tiempo real, información de las empresas y datos de asignaciones. Después, la plataforma Market Data de Dow Jones ingiere, normaliza y hace aflorar estos datos de mercado en todo Dow Jones. Dado su valor estratégico para la empresa, la plataforma debe ser muy fiable, escalable y rápida, y ofrecer datos de mercado en tiempo real a los consumidores en milisegundos, con protección contra el tiempo de inactividad.
Antes de la modernización de la plataforma, el sistema constaba de más de 44 aplicaciones independientes que se ejecutaban en 200 servidores locales divididos en cuatro grupos principales.
La capa de almacenamiento de datos principal de la plataforma era un sistema de administración de bases de datos relacionales local de 2 TB creado en Microsoft SQL Server 2008 R2. Esta base de datos servía de repositorio central para todo lo relacionado con los datos del mercado y almacenaba todos los datos para el sistema de aplicaciones. Por ejemplo, albergaba datos sobre cada empresa que se correspondían directamente con su cotización en cada bolsa. La base de datos del servidor también almacenaba los datos de las operaciones de Market Data para procesar las transacciones, como todos los datos históricos de valores que se remontan a la década de 1970.
Algunas aplicaciones que administraban y proporcionaban datos de mercado a los consumidores giraban en torno a la base de datos SQL Server. La migración a AWS permitió retirar estos sistemas, entre los que se incluyen:
- DJ Symbology System, que proporcionaba la correspondencia real de los «códigos de empresa» (por ejemplo, el símbolo Dow Jones Ticker) con las cotizaciones en tiempo real o en diferido de empresas estadounidenses, canadienses e internacionales.
- El grupo de aplicaciones Real-time Feed Processor, que se encargaba de mantener los datos actualizados al segundo cuando los mercados estaban abiertos y las acciones se negociaban. Estas aplicaciones se conectaban a múltiples orígenes, realizaban la ingesta de los datos y los integraban en la plataforma Market Data.
- Los sistemas Intraday eran los encargados de mantener el estado del mercado. Y, por último, se migraron las API orientadas al cliente. Se trata de los sistemas de información utilizados para generar archivos XML para los clientes y el producto impreso, así como el sistema de gráficos y la API principal de Market Data.
Cada una de estas aplicaciones era responsable de una parte diferente de la arquitectura de Market Data, como administrar las alertas, calcular los índices, ofrecer los precios y actualizar su motor de consultas.
Desde una perspectiva arquitectónica, la base de datos SQL Server de Market Data local constaba de hasta 15 instancias individuales de servidores de bases de datos, distribuidas en dos centros de datos dispares en Estados Unidos. Dow Jones utilizó SQL Server Database Mirroring para aumentar la disponibilidad y la protección de los datos en caso de error. Había cuatro instancias principales reflejadas en los dos centros de datos dispares, mientras que el resto de las instancias de servidor se dividían en dos instancias de distribuidor y nueve instancias de suscriptor. La instancia del servidor principal proporcionaba la base de datos a todos los clientes desde un único centro de datos. Mientras tanto, la instancia de réplica principal actuaba como servidor de reserva activa en caso de que fallara el servidor principal. Una instancia del distribuidor en cada centro de datos se encargaba de la replicación sincrónica a los nodos locales de suscriptor. Todas las operaciones de escritura las procesaba el servidor principal en el centro de datos primario, mientras que las operaciones de lectura las procesaban las nueve instancias de los suscriptores distribuidas en ambos centros de datos.
Información general sobre la migración y la modernización de Dow Jones
Para conseguir un tiempo de producción lo más rápido posible, el equipo de Dow Jones utilizó una estrategia de migración a la nube mediante lift-and-shift para migrar los componentes principales de su aplicación de Market Data a AWS. Esta estrategia permitió a Dow Jones acelerar la migración con cambios mínimos en el código, sin rediseñar toda la aplicación. Este enfoque sería transitorio: una vez que Dow Jones migrara mediante lift-and-shift a AWS, planeaba modernizarse, pasando a un enfoque nativo en la nube. Los servicios en la nube y las optimizaciones de AWS proporcionaron importantes beneficios que facilitaron la actualización y rediseño del sistema.
Para administrar los costes de las licencias durante este proceso, la empresa actualizó su base de datos MS SQL Server de 2 TB local a una base de datos nativa en la nube, lo que le permitió aprovechar al máximo la fiabilidad, la escalabilidad, la capacidad de administración y la optimización de costes que ofrece este tipo de base de datos de AWS. Por ello, se rediseñó Market Data con Amazon Aurora. Amazon Aurora es una base de datos relacional compatible con MySQL y creada para la nube que combina el rendimiento y la disponibilidad de las bases de datos comerciales de gama alta con la sencillez y la rentabilidad de las bases de datos de código abierto.
Según Luke Sawatsky, director de ingeniería de software de Dow Jones, «la migración de la base de datos SQL Server local a Amazon Aurora MySQL fue un proceso fácil que implicó varias etapas clave».
Etapa 1: convertir el esquema de la base de datos
Conversión automática de esquemas mediante AWS Schema Conversion Tool
Antes de migrar sus bases de datos de 2 TB de MS SQL Server a una base de datos de destino de Amazon Aurora MySQL, Dow Jones necesitaba crear el esquema de destino. Para ello, la empresa utilizó AWS Schema Conversion Tool (AWS SCT) a fin de convertir su esquema de base de datos existente de MS SQL Server a Amazon Aurora MySQL.
Como parte de este proceso, Dow Jones generó el informe de evaluación de la migración de la base de datos de AWS SCT. En este informe se evaluó qué parte del proyecto podía completarse con AWS Schema Conversion Tool y qué otras cosas había que hacer para completar la conversión. El informe fue una herramienta muy valiosa, ya que en él se resumieron todas las tareas de conversión del esquema y se detallaron los elementos de acción para el esquema que no se pudo convertir a la instancia de la base de datos de destino de Aurora MySQL.
Tras completar este análisis, Dow Jones descubrió que el 99,8 % de los objetos de almacenamiento de su base de datos (por ejemplo: esquemas, tablas, índices, tipos, tipo de tabla, etc.) y el 52 % de los objetos de código de la base de datos (por ejemplo: desencadenadores, vistas, procedimientos, funciones, etc.) podían convertirse automáticamente o con cambios mínimos mediante el uso de Amazon Aurora MySQL Compatible como destino migración. Además, el 97 % de todo el esquema de la base de datos de Dow Jones pudo convertirse automáticamente a Amazon Aurora (compatible con MySQL).
Conversión manual del esquema
Aunque la mayor parte del trabajo de migración podía automatizarse, había algunos aspectos que requerían intervención manual. El informe señalaba un objeto de almacenamiento de base de datos y 38 objetos de código de base de datos con «acciones significativas» que requerirían una intervención manual.
Por ejemplo, uno de los problemas importantes de los objetos de código de base de datos estaba relacionado con el uso de cursores globales por parte de Dow Jones:
Al final, el marco Aurora MySQL Cursors era más sencillo que el de SQL Server y solo proporcionaba los tipos básicos de servidores. Si el código de Dow Jones se hubiera basado en características de cursor avanzadas, habría necesitado una reescritura completa. En su lugar, Dow Jones pudo resolver este problema con el uso de tablas temporales.
Dow Jones encontró un segundo problema relacionado con una función de SQL Server. Esta función usaba una instrucción SQL anidada para obtener un árbol de registros y sus registros principales. Como esta recursión no podía recrearse en MySQL, Dow Jones tuvo que reescribir la instrucción SQL en C#.
Para cada problema de conversión, Dow Jones modificó los objetos de la base de datos SQL Server de origen para que AWS SCT pudiera convertirlos a la base de datos MySQL de Aurora de destino correctamente. Gracias a SCT, Dow Jones pudo volver a comprobar el informe de evaluación después de cada iteración.
Durante esta fase, se ejecutaron varias pruebas de concepto (POC) pequeñas en paralelo para validar que los cambios de código tenían el rendimiento esperado. Dow Jones continuó este proceso hasta que no encontró más problemas de conversión. En total, Dow Jones calcula que un ingeniero tardó un mes en reescribir el código de sus procedimientos almacenados. Dow Jones descubrió que al arreglar un problema de código a menudo se arreglaban otros problemas simultáneamente, lo que reducía el tiempo total invertido. Tras completar todas las conversiones, Dow Jones aplicó los cambios de esquema a la base de datos MySQL de Aurora y se preparó para la siguiente fase: la migración de datos.
Etapa 2: migración de los datos con AWS Database Migration Service
Al utilizar AWS Database Migration Service (AWS DMS), Dow Jones pudo migrar de un modo rápido y seguro sus datos de forma continua desde SQL Server local a Amazon Aurora MySQL. La base de datos de origen permaneció totalmente operativa durante la migración, lo que minimizó el tiempo de inactividad de las aplicaciones de Market Data que dependían de su base de datos. Al configurar la tarea de migración de la base de datos, Dow Jones eligió la opción de «migrar los datos existentes y replicar los cambios en curso». Esto garantizó que AWS DMS capturara y aplicara los cambios, incluso después de haber cargado los datos masivos. AWS DMS superó la complejidad de la migración completa de datos y completó correctamente el proceso en 24 horas. Como paso final, la tarea de replicación de AWS DMS se actualizó a «solo CDC» para garantizar que ambas bases de datos permanecieran sincronizadas hasta la conmutación final.
Etapa 3: fase de pruebas internas y revisión de AWS Well-Architected
En su siguiente etapa de migración, Dow Jones puso en marcha un amplio periodo de pruebas internas para garantizar que la plataforma Market Data estuviera lista para la producción. Durante este periodo, Dow Jones colaboró con los expertos de AWS para realizar una revisión de AWS Well-Architected (WAR) de la plataforma. Este paso crítico garantizó que Dow Jones usara las prácticas recomendadas para asegurar la excelencia operativa, la seguridad, la fiabilidad y la eficiencia del rendimiento. Para garantizar el éxito, Dow Jones tomó la decisión empresarial estratégica de sobreaprovisionar la capacidad en lugar de optimizar los costes. La optimización de costes se planteó como parte de una iniciativa posterior a la migración.
La WAR de Market Data fue decisiva para descubrir varios problemas técnicos clave con la arquitectura de AWS actual que requerían una atención y un remedio inmediatos. Y lo que es más importante, el equipo de Market Data pudo dar con un plan práctico en el que se detallaban las siguientes prácticas recomendadas:
- Aprovisionar tipos o tamaños de instancia de base de datos idénticos para las réplicas de lectura y el nodo escritor en el clúster global de Aurora para proteger la base de datos en caso de error.
- Equilibrar el número de instancias entre las regiones principales y las de copia de seguridad.
- Establecer un TTL de DNS apropiado (1 segundo) para la aplicación.
- Escalar horizontalmente para satisfacer la demanda.
- Implementar la automatización para garantizar que el clúster no fallara nunca por debajo de un umbral definido.
- Sobreaprovisionar para los picos y reducir la cantidad o la clase de instancia en momentos de poca actividad mediante la automatización o el escalado automático.
- Ejecutar pruebas completas de carga y resiliencia «a escala» de la base de datos Aurora antes de la fecha de puesta en marcha.
El resultado final: Dow Jones pudo modernizar correctamente su base de datos SQL Server heredada local a una arquitectura de base de datos nativa en la nube, escalable y resiliente. Esta base de datos nativa en la nube disponía de un clúster global de Amazon Aurora con un nodo escritor y cinco nodos lectores en Virginia (us-east-1) y seis nodos lectores en Ohio (us-east-2).
Etapa 4: transición de la base de datos MySQL de Aurora a producción
En esta fase del proceso de migración, Dow Jones tenía dos entornos de bases de datos paralelos en funcionamiento para Market Data:
- Una base de datos Aurora MySQL nativa en la nube que funciona en modo de prueba en AWS
- Un MS SQL Server local que proporciona datos de producción a los clientes
Después, Dow Jones trabajó para facilitar la transición a MySQL Aurora sin que ningún cliente tuviera que hacer cambios en sus puntos de conexión. Para hacer frente a este desafío, el equipo de Market Data utilizó un servicio proxy llamado NGINX para redirigir las solicitudes de datos de los clientes desde el entorno local a AWS. De este modo se garantizó un servicio ininterrumpido para los clientes de Dow Jones. En ocho horas, se instalaron los proxies, se actualizaron las entradas DNS y los clientes de Market Data se conectaron correctamente a la base de datos MySQL de Aurora en AWS. Dos semanas después, la base de datos MS SQL Server local se cerró oficialmente y todo el tráfico de producción se dirigió a la base de datos Aurora MySQL en AWS. La transición a Aurora MySQL se había completado.
Etapa 5: optimización de las bases de datos después de la migración
Dow Jones’ migration journey did not end once it had migrated to AWS. There was a post-migration stage. During this stage, Dow Jones addressed cost optimization and rightsizing opportunities across its entire AWS infrastructure. Using Amazon CloudWatch metrics and CloudHealth management software to analyze data, Dow Jones quickly determined, based on current performance and usage requirements for the Market Data workload, that the database instance types/sizes it was using for Aurora MySQL were significantly overprovisioned. As a result of this analysis, Dow Jones took steps to rightsize the Aurora MySQL database instance type/size to better match current capacity requirements and eliminate two Reader nodes per region for further cost savings. After redeploying, Dow Jones was able to reduce its spend significantly.
Conclusión
El proceso de migración de Dow Jones no terminó una vez que migró a AWS. Hubo una etapa posterior a la migración. Durante esta etapa, Dow Jones abordó la optimización de costes y las oportunidades de redimensionamiento en toda su infraestructura de AWS. Gracias a las métricas de Amazon CloudWatch y al software de administración CloudHealth para analizar los datos, Dow Jones determinó rápidamente, basándose en el rendimiento actual y en los requisitos de uso de la carga de trabajo de Market Data, que los tipos o tamaños de instancias de bases de datos que utilizaba para Aurora MySQL estaban considerablemente sobreaprovisionados. A raíz de este análisis, Dow Jones adoptó medidas para redimensionar el tipo o tamaño de la instancia de la base de datos MySQL de Aurora para que se ajustara mejor a las necesidades actuales de capacidad y eliminar dos nodos lectores por región a fin de ahorrar más costes. Tras la nueva implementación, Dow Jones pudo reducir el gasto de forma significativa.
AWS puede ayudarle a evaluar cómo su empresa puede sacar el máximo provecho de la nube. Únase a los millones de clientes de AWS que confían en nosotros para migrar y modernizar sus aplicaciones más importantes en la nube. Para obtener más información acerca de la modernización de Windows Server o SQL Server, visite Windows en AWS. Contacte con nosotros para iniciar su proceso de migración hoy mismo.
Acerca de los autores
Sheri Moran es Arquitecta de Soluciones Principal en Amazon Web Services con residencia en Nueva York. Trabaja con las principales instituciones de servicios financieros, diseñando y modernizando sus aplicaciones a gran escala con los servicios en la nube de AWS. Aporta más de 20 años de experiencia en tecnología en múltiples ámbitos, como las finanzas, los medios de comunicación, el sector editorial y la sanidad.
Luke lleva 13 años en Dow Jones. Durante estos años, ha ocupado varios cargos en diferentes equipos, pero actualmente es director de ingeniería en el equipo de Market Data. Su equipo es responsable de obtener, normalizar y distribuir los datos del mercado en todas las propiedades de Dow Jones. Cuando no trabaja, le gusta pasar tiempo con sus tres hijos, leer y decepcionarse con los equipos deportivos de Minnesota.
Alex Zuo es Director de Producto en el equipo del servicio de software comercial de Amazon EC2. Se centra en convertir AWS en el mejor lugar para ejecutar cargas de trabajo de SQL Server y en facilitar a los clientes la migración y modernización de las cargas de trabajo de SQL Server en AWS.