O blog da AWS
Como o Dow Jones migrou e modernizou seus bancos de dados essenciais aos negócios em um único movimento para obter eficácia e benefícios de custo
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
Este artigo explora as ferramentas e práticas recomendadas que o Dow Jones usou para migrar e modernizar com êxito as workloads de banco de dados essenciais aos negócios da plataforma Market Data do MSSQL on-premises para o Amazon Aurora.
Sobre a arquitetura da plataforma Market Data
Em sua capacidade máxima, o Dow Jones processa mais de 3.000 solicitações por segundo por meio da plataforma Market Data. Os dados variam de preços oficiais de fechamento diário e taxas de câmbio até dados de preços em tempo real, informações da empresa e dados de mapeamento. A plataforma Market Data do Dow Jones ingere, normaliza e expõe esses dados de mercado no Dow Jones. Por conta de seu valor estratégico para os negócios, a plataforma deve ser altamente confiável, escalável e rápida, fornecendo dados de mercado em tempo real aos consumidores em milissegundos, com proteção contra tempo de inatividade.
Antes de modernizar a plataforma, o sistema consistia em mais de 44 aplicações separadas executadas em 200 servidores on-premises, divididos em quatro grupos principais.
A camada principal de armazenamento de dados da plataforma era um sistema de gerenciamento de banco de dados relacional de 2 TB on-premises criado no Microsoft SQL Server 2008 R2. Esse banco de dados serviu como um repositório central para tudo relacionado a dados de mercado, armazenando todos os dados do sistema de aplicações. Por exemplo, ele abrigava dados sobre as empresas que mapeava diretamente de volta à sua listagem em cada bolsa de valores. O banco de dados do servidor também armazenava os dados de operações da Market Data para processar transações, incluindo todos os dados históricos de preços que remontam à década de 1970.
Algumas aplicações que gerenciam e fornecem dados de mercado aos consumidores estavam centradas no banco de dados do SQL Server. A migração para a AWS permitiu a retirada desses sistemas, incluindo:
- DJ Symbology System, que fornecia o mapeamento real de “códigos da empresa” (por exemplo, o símbolo Dow Jones Ticker) para cotações em tempo real ou com atraso para empresas americanas, canadenses e globais.
- O grupo Real-time Feed Processor, que era responsável por manter os dados atualizados quando os mercados estavam abertos e as ações estavam sendo negociadas. As aplicações deste grupo eram conectadas a várias fontes, ingerindo dados e integrando-os à plataforma Market Data.
- Os sistemas intraday eram encarregados de manter o estado do mercado. E, por fim, as APIs voltadas para o cliente foram migradas. Esses são os sistemas de relatórios usados a fim de gerar arquivos XML para clientes e o produto impresso, bem como o sistema de gráficos e a API principal da Market Data.
Cada uma dessas aplicações era responsável por uma parte diferente da arquitetura da Market Data, como gerenciar alertas, calcular índices, fornecer preços e atualizar seu mecanismo de consulta.
De uma perspectiva da arquitetura, o banco de dados SQL Server da Market Data on-premises consistia em até 15 instâncias de servidor de banco de dados individuais, distribuídas em dois datacenters diferentes nos Estados Unidos. O Dow Jones usava o espelhamento de banco de dados do SQL Server para maior disponibilidade e proteção de dados em caso de falha. Quatro instâncias primárias eram espelhadas em dois datacenters diferentes, enquanto o restante das instâncias do servidor foi dividido em duas instâncias de distribuidor e nove de assinantes. A instância primária do servidor principal fornecia o banco de dados a todos os clientes de um único datacenter. Enquanto isso, a instância de espelho primário atuava como um servidor em espera ativa, caso o servidor primário falhasse. Uma instância de distribuidor em cada datacenter processava a replicação síncrona para nós de assinante locais. Todas as gravações eram processadas pelo servidor principal no datacenter primário, enquanto as leituras eram processadas pelas instâncias de nove assinantes distribuídas em ambos os datacenters.
Visão geral da migração e modernização do Dow Jones
Para viabilizar um tempo de produção mais rápido, a equipe do Dow Jones usou uma estratégia lift-and-shift de migração para a nuvem para migrar os principais componentes de sua aplicação Market Data para a AWS. Essa estratégia permitiu que o Dow Jones acelerasse a migração com alterações mínimas de código, sem redesenhar toda a aplicação. Essa abordagem seria transitória: assim que o Dow Jones concluísse o processo de lift-and-shift para a AWS, ele planejava se modernizar, migrando para uma abordagem nativa da nuvem. As otimizações e os serviços de nuvem da AWS forneceram benefícios significativos que facilitaram a atualização e a redefinição da arquitetura do sistema.
Para gerenciar os custos de licenciamento durante esse processo, a empresa atualizou seu banco de dados MS SQL Server on-premises de 2 TB existente para um banco de dados nativo da nuvem, permitindo aproveitar ao máximo a confiabilidade, escalabilidade, gerenciabilidade e otimização de custos que esse tipo de banco de dados da AWS oferece. Dessa forma, a arquitetura da Market Data foi redefinida usando o Amazon Aurora. O Amazon Aurora é um banco de dados relacional compatível com MySQL criado para a nuvem que combina a performance e a disponibilidade de bancos de dados comerciais avançados com a simplicidade e a economia de bancos de dados de código aberto.
De acordo com Luke Sawatsky, gerente de engenharia de software do Dow Jones, “migrar do banco de dados SQL Server on-premises para o Amazon Aurora MySQL foi um processo fácil que envolveu várias etapas importantes”.
Etapa 1: converter o esquema de banco de dados
Conversão automática do esquema usando a AWS Schema Conversion Tool
Antes de mover seus bancos de dados de 2 TB do MS SQL Server para um banco de dados de destino do Amazon Aurora MySQL, o Dow Jones precisava criar o esquema de destino. Para ajudar nesse processo, a empresa usou a AWS Schema Conversion Tool (AWS SCT) para ajudar a converter seu esquema de banco de dados existente do MS SQL Server para o Amazon Aurora MySQL.
Como parte desse processo, o Dow Jones gerou o relatório de avaliação da migração de banco de dados da AWS SCT. Este relatório avaliou quanto do projeto poderia ser concluído usando a AWS Schema Conversion Tool e o que mais precisava ser feito para concluir a conversão. O relatório foi uma ferramenta extremamente valiosa, pois resumia todas as tarefas de conversão de esquema e detalhava os itens de ação do esquema que não puderam ser convertidos na instância de banco de dados de destino do Aurora MySQL.
Depois de concluir essa análise, o Dow Jones descobriu que 99,8% de seus objetos do armazenamento de banco de dados (por exemplo: esquemas, tabelas, índices, tipos, tipo de tabela etc.) e 52% dos objetos de código de banco de dados (por exemplo, acionadores, visualizações, procedimentos, funções) poderiam ser convertidos automaticamente ou com alterações mínimas usando o Amazon Aurora compatível com MySQL como destino da migração. Além disso, 97% de todo o esquema de banco de dados do Dow Jones poderia ser convertido para o Amazon Aurora (compatível com MySQL) automaticamente.
Conversão manual do esquema
Embora a maior parte do trabalho de migração pudesse ser automatizada, havia alguns aspectos que exigiam intervenção manual. O relatório sinalizou um objeto do armazenamento de banco de dados e 38 objetos do código de banco de dados com “ações significativas” que exigiriam intervenção manual.
Por exemplo, um dos problemas significativos do objeto do código de banco de dados estava relacionado ao uso de cursores globais pelo Dow Jones:
Acontece que o framework dos cursores do Aurora MySQL era mais simples que o SQL Server e fornece apenas os tipos básicos de servidores. Se o código do Dow Jones dependesse de recursos avançados de cursor, ele precisaria de uma redefinição completa. Em vez disso, o Dow Jones conseguiu resolver esse problema usando tabelas temporárias.
O Dow Jones encontrou um segundo problema relacionado a uma função do SQL Server. Essa função usava uma instrução SQL aninhada para obter uma árvore de registros e seus registros pai. Como essa recursão não pôde ser recriada no MySQL, o Dow Jones teve que reescrever a instrução SQL em C#.
Para cada problema de conversão, o Dow Jones modificou os objetos no banco de dados de origem do SQL Server para que a AWS SCT pudesse converter esses objetos no banco de dados Aurora MySQL de destino com êxito. Usando a SCT, o Dow Jones conseguiu verificar novamente o relatório de avaliação após cada iteração.
Durante essa etapa, vários POCs pequenos foram executados em paralelo para confirmar se as alterações de código estavam funcionando conforme o esperado. O Dow Jones continuou esse processo até não encontrar mais problemas de conversão. No total, o Dow Jones estima que um engenheiro levou um mês para reescrever o código para seus procedimentos armazenados. O Dow Jones descobriu que corrigir um problema de código geralmente corrigia outros problemas simultaneamente, reduzindo o tempo total gasto. Depois que todas as conversões foram concluídas, o Dow Jones aplicou as alterações de esquema ao banco de dados Aurora MySQL e estava pronto para o próximo estágio: a migração de dados.
Etapa 2: migrar os dados com o AWS Database Migration Service
Ao usar o AWS Database Migration Service (AWS DMS), o Dow Jones conseguiu migrar de forma rápida e segura seus dados continuamente do SQL Server on-premises para o Amazon Aurora MySQL. O banco de dados de origem permaneceu totalmente operacional durante a migração, o que minimizou o tempo de inatividade para as aplicações Market Data que dependiam de seu banco de dados. Ao configurar a tarefa de migração do banco de dados, o Dow Jones escolheu a opção “migrate existing data and replicate ongoing changes” (migrar dados existentes e replicar alterações contínuas). Isso garantiu que o AWS DMS capturasse e aplicasse alterações, mesmo após o carregamento dos dados em massa. O AWS DMS gerenciou as complexidades da migração completa de dados, concluindo com êxito o processo em 24 horas. Como etapa final, a tarefa de replicação do AWS DMS foi atualizada para “CDC only” (somente CDC) para garantir que ambos os bancos de dados permanecessem sincronizados até a transição final.
Etapa 3: Fase de testes internos e revisão do AWS Well Architected
Em sua próxima etapa de migração, o Dow Jones iniciou um extenso período de testes internos para garantir que a plataforma Market Data estivesse pronta para produção. Durante esse período, o Dow Jones colaborou com especialistas da AWS para realizar uma revisão do AWS Well-Architected (WAR) da plataforma. Essa etapa fundamental garantiu que o Dow Jones estivesse usando as práticas recomendadas para garantir excelência operacional, segurança, confiabilidade e eficiência de performance. Para garantir o sucesso, o Dow Jones tomou uma decisão empresarial estratégica de provisionar a capacidade em vez de otimizar os custos. A otimização de custos foi então programada como parte de uma iniciativa pós-migração.
A WAR da Market Data foi fundamental para descobrir vários problemas técnicos importantes com a arquitetura atual da AWS que exigiam atenção e correção imediatas. Mais importante ainda, a equipe da Market Data conseguiu sair com um plano acionável detalhando as seguintes recomendações de práticas recomendadas:
- Provisione tamanhos/tipos de instância de banco de dados idênticos para réplicas de leitura e nó gravador no cluster global do Aurora para proteger o banco de dados em caso de falha.
- Equilibre o número de instâncias entre as regiões primária e de backup.
- Defina um TTL de DNS apropriado (1 s) para a aplicação.
- Escale horizontalmente para atender à demanda.
- Implemente a automação para garantir que o cluster nunca falhe abaixo de um limite definido.
- Provisione em excesso em momentos de pico e reduza a quantidade e/ou a classe de instância fora do pico usando automação/escalabilidade automática.
- Execute testes completos de carga e resiliência “em escala” do banco de dados do Aurora antes da data de ativação.
O resultado final: o Dow Jones conseguiu modernizar com sucesso seu banco de dados SQL Server on-premises herdado para uma arquitetura de banco de dados nativa da nuvem escalável e resiliente. Esse banco de dados nativo da nuvem apresentava um cluster global do Amazon Aurora com um nó gravador e cinco nós leitores na região Virgínia (us-east-1) e seis nós leitores em Ohio (us-east-2).
Etapa 4: transição do banco de dados Aurora MySQL para produção
Nessa etapa do processo de migração, o Dow Jones tinha dois ambientes de banco de dados paralelos em funcionamento para a Market Data:
- Um banco de dados Aurora MySQL nativo da nuvem operando em modo de teste na AWS; e
- Um MS SQL Server on-premises que fornece dados de produção para clientes.
Depois, o Dow Jones trabalhou para facilitar a transição para o Aurora MySQL sem exigir que cada cliente fizesse uma alteração em seus endpoints. Para enfrentar esse desafio, a equipe da Market Data usou um serviço de proxy chamado NGINX para redirecionar as solicitações de dados do cliente on-premises para a AWS. Isso garantiu um serviço ininterrupto para os clientes do Dow Jones. Em oito horas, os proxies foram instalados, as entradas DNS foram atualizadas e os clientes da Market Data foram conectados com sucesso ao banco de dados Aurora MySQL na AWS. Duas semanas depois, o banco de dados MS SQL Server on-premises foi oficialmente encerrado e todo o tráfego de produção estava atingindo o banco de dados Aurora MySQL na AWS. A transição para o Aurora MySQL foi concluída.
Etapa 5: otimizar os bancos de dados pós-migração
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.
Conclusão
A jornada de migração do Dow Jones não terminou depois da migração para a AWS. Houve um estágio pós-migração. Durante esse estágio, o Dow Jones abordou a otimização de custos e as oportunidades de dimensionamento correto em toda a sua infraestrutura da AWS. Usando métricas do Amazon CloudWatch e o software de gerenciamento CloudHealth para analisar dados, o Dow Jones determinou rapidamente, com base nos requisitos atuais de performance e uso para a workload da Market Data, que os tamanhos/tipos de instância de banco de dados que estava usando para o Aurora MySQL tinham um provisionamento excessivo significativo. Como resultado dessa análise, o Dow Jones tomou medidas para dimensionar corretamente o tamanho/tipo de instância do banco de dados Aurora MySQL para atender melhor aos requisitos de capacidade atuais e eliminar dois nós leitores por região para economizar ainda mais. Após a reimplantação, o Dow Jones conseguiu reduzir significativamente seus gastos.
Este artigo foi traduzido do Blog da AWS em Inglês.
A AWS pode ajudar a avaliar como sua empresa pode aproveitar ao máximo a nuvem. Junte-se aos milhões de clientes da AWS que confiam em nós para migrar e modernizar suas aplicações mais importantes na nuvem. Para aprender mais sobre modernização do Windows Server ou do SQL Server, acesse Windows na AWS. Entre em contato conosco para começar sua jornada de migração hoje mesmo.
Sobre os autores
Sheri Moran é arquiteta-chefe de soluções da Amazon Web Services com sede em Nova York. Ela trabalha com grandes instituições de serviços financeiros, arquitetando e modernizando suas aplicações de grande escala usando os serviços de nuvem da AWS. Ela tem mais de 20 anos de experiência em tecnologia em vários domínios, incluindo finanças, mídia, publicação e saúde.
Luke trabalha no Dow Jones há 13 anos. Ao longo desse tempo, ele ocupou cargos diferentes em diversas equipes, mas atualmente é diretor de engenharia na equipe da Market Data. Sua equipe é responsável por obter, normalizar e distribuir dados de mercado em todas as propriedades do Dow Jones. Fora do trabalho, ele gosta de passar tempo com seus três filhos, ler e se decepcionar com as equipes esportivas de Minnesota.
Alex Zuo é gerente de produtos na equipe de serviços de software comercial do Amazon EC2. Seu foco é tornar a AWS o melhor lugar para executar workloads do SQL Server e permitir que os clientes migrem e modernizem workloads do SQL Server na AWS.S.