Como melhor atender os usuários transoceânicos?

2

Eu tenho um aplicativo da web (.NET servido do iis6) que serve dados quase em tempo real para os usuários finais. Nossos servidores estão instalados em um data center na América do Norte, mas nossos usuários australianos estão experimentando um desempenho inaceitável (sem surpresa). Dado que não temos recursos ilimitados, quais são algumas estratégias para melhorar o desempenho na Aus?

Colocar um servidor web / aplicativo na Austrália é a resposta óbvia, mas também precisamos do nosso dbs replicado (aproximando rapidamente 100 GB) e dado que a replicação precisa estar próxima do tempo real (até um minuto seria ok ) Isso soa como um esforço caro. O uso de um CDN ajudará no conteúdo estático.

Existem outras estratégias que eu deveria estar olhando para ajudar a situação?

    
por cagreen 08.02.2011 / 17:44

4 respostas

2

Se seus dados estiverem armazenados em um RDBMS e forem principalmente de leitura, sua melhor aposta será colocar um escravo & um front-end somente leitura na Austrália - Você deve ser capaz de manter a replicação quase em tempo real (± 1 a 5 minutos de atraso) de forma confiável com essa configuração, desde que seu banco de dados não tenha grandes mudanças acontecendo o tempo todo. Você nunca disse com que frequência tem alterações no banco de dados / quanto esses conjuntos de mudanças são grandes, mas normalmente a replicação do banco de dados pode ser feita em canais relativamente pequenos, uma vez que a sincronização inicial esteja fora do caminho.

Isso é algo com o qual você provavelmente deveria brincar primeiro em um laboratório de teste (usando um firewall de modelagem de tráfego para introduzir restrições de latência e / ou largura de banda para ver quais são os requisitos mínimos para uma replicação bem-sucedida). Você provavelmente também desejaria enviar um banco de dados praticamente atualizado e deixá-lo "acompanhar" a sincronização, uma vez instalado na Austrália, para minimizar o tempo inicial de inicialização ...

    
por 08.02.2011 / 18:08
0

Depende do número de usuários e do controle que você tem sobre a configuração do cliente, mas você pode considerar algo como o MS Terminal Services, o Citrix ou algo semelhante em um ambiente Linux.

    
por 08.02.2011 / 17:55
0

Você também pode considerar que o aplicativo envie suas atualizações de banco de dados a todos os locais (desde que o aspecto "atualização" do aplicativo esteja em apenas um lugar) e coloque o segmento somente leitura do aplicativo co-localizado para a instância de DB local.

    
por 08.02.2011 / 19:08
0

Se os dados exibidos em cada solicitação da Web forem pequenos, a movimentação dos dados pode não ser o problema real.

Pode ser que o html retornado pelo seu aplicativo esteja inchado. Se você conseguir diminuir o tamanho do HTML, os usuários acharão mais aceitável.

Você também pode mover seu (s) servidor (es) para a Califórnia. Um bom local de comprometimento para servir EUA e AU.

    
por 09.02.2011 / 02:10