Execução de uma aplicação pesada de banco de dados no Reino Unido e configuração do servidor Aus

1

Estou executando um webapp de um datacenter do Reino Unido. A velocidade está bem como esperado. O webapp depende muito de um banco de dados. Eu gostaria de abrir o webapp para a Austrália e a Nova Zelândia, mas manter um bom tempo de resposta do servidor.

Essencialmente, cada usuário do aplicativo tem acesso aos dados armazenados em duas tabelas no banco de dados. Cada usuário usa esses dados para gerar sua própria combinação desses dados e armazenar em outras tabelas no banco de dados. Há poucas atualizações de recursos no aplicativo.

Os e-mails registrados precisariam ser únicos em todos os países.

Do meu conhecimento limitado nesta área, acredito que há duas opções: A - Replicação completa de banco de dados entre dois hosts, um no Reino Unido e outro no AUS B - Replicação periódica de dados de um host de origem, o reino unido, para os destinos, em aus e nz.

Isso, então, deixa o domínio 1 - Idealmente no domínio seria melhor no entanto isso precisaria de um servidor de roteamento de tipos para direcionar o tráfego com base na localização para diferentes servidores, mas isso aumentaria o tempo de resposta 2 - Possuir domínios alternativos por país encaminhando diretamente para o país local host

Eu aprecio não estou reinventando a roda aqui, mas qual é o protocolo padrão para um cenário como este? Um serviço de cdn do meu entendimento aqui é mais para entrega de imagem e vídeo, suponho que a questão básica aqui seja qual é o equivalente para bancos de dados?

Obrigado por qualquer ajuda, João

    
por John 24.05.2014 / 00:12

1 resposta

0

Você tem vários problemas diferentes aqui que provavelmente seriam melhor servidos como perguntas separadas. A primeira é como você deve arquitetar sua estrutura de banco de dados multi-site. O segundo é como você encaminha usuários para seus servidores.

Para o problema do banco de dados, algo tão simples quanto replicação multimestre pode ser tudo o que você precisa. Não há uma resposta fácil para isso, pois há muitas variáveis que precisam ser consideradas. O volume de dados, os recursos do software do servidor de banco de dados, a confiabilidade da conexão entre os dois sites, a quantidade de dados que realmente precisam ser compartilhados entre sites, se os dados precisam ser sempre exatamente iguais ou, eventualmente, iguais. .

Para o segundo problema, um CDN pode não ser uma boa escolha se seus sites forem quase totalmente dinâmicos. Um CDN não é para 'entrega de imagem e vídeo', é principalmente para a entrega de conteúdo estático (imagem e vídeos sendo um subconjunto disso, qualquer página da web que não está sendo exibida dinamicamente, arquivos javascript, css arquivos, etc.) Muitos CDNs oferecem serviços que podem acelerar o conteúdo dinâmico, bem como através de vários truques, mas não é isso que você está procurando.

Estou ciente de duas maneiras principais que um CDN e grandes organizações podem lidar com uma situação como essa. A primeira é através do DNS, usando algum tipo de mecanismo para determinar qual endereço IP retornar a um cliente. Isso pode ser baseado nos endereços de IP do cliente, como procurar em um banco de dados de geolocalização ou outro mecanismo para determinar o que é melhor direcionar o cliente para.

A segunda maneira é usar anycast . A idéia aqui é que você anuncie exatamente os mesmos endereços IP de vários locais e conte com o roteamento padrão da Internet para chegar a um site próximo (próximo da rede, não da geografia).

Se você quiser minha opinião, escolha um local com conectividade decente para os locais que deseja veicular. Se você está servindo apenas pessoas no Reino Unido e na Nova Zelândia, por exemplo, um único local nos EUA pode ser bom o suficiente para ambos. Não sei o que seu aplicativo faz, mas se a diferença de alguns milissegundos causar um impacto significativo em seu usuário, talvez seja melhor repensar o design. Da minha mesa de trabalho em San Jose, CA, são menos de um quarto de segundo para a Nova Zelândia e a Austrália (< 250ms).

    
por 24.05.2014 / 01:00