Nosso site está crescendo e conquistamos mais e mais clientes em todo o mundo. Nós usamos Nginx, PHP e MySQL Nossos servidores estão no Reino Unido, por isso é rápido na Europa, mas quanto mais nos afastamos dos servidores - mais lento o site se torna. (Me chame de capitão óbvio a partir de agora).
Então, estou procurando maneiras de consertar isso. Nós temos uma estrutura padronizada:
[web-servers for dynamic content] [CloudFlare CDN]
| |
[database-servers] [web-servers for static content]
Portanto, estamos armazenando em cache nosso conteúdo estático e a pergunta sobre como disponibilizar o restante do site rapidamente em todo o mundo.
Eu estava pensando em duas soluções principais:
com a mesma infraestrutura em vários locais geográficos diferentes e usando alguma forma de DNS de geolocalização:
[Country-1] [Country-2] [Country-3]
| | |
[web-servers] [web-servers] [web-servers]
\ | /
\ | /
[DATABASES]
Agora, o problema que vejo aqui é como manter a replicação do MySQL atualizada em todo o mundo? Acredito que a replicação do master master de Cingapura para Londres não seria sempre atualizada e o atraso causaria problemas para a aplicação.
Usando proxies reversos com linhas privadas
[Country-1] [Country-2] [Country-3]
| | |
[Reverse Proxy] [Reverse Proxy] [Reverse Proxy]
\ | /
\ | /
[web-server]
|
[DATABASES]
Aqui eu estava pensando em ter como linhas privadas de cada país, e usando proxies reversos para criar uma espécie de rede de rodovias para nossos servidores, embora isso se pareça mais com ficção científica:)
De qualquer forma, estou procurando alguns recursos, ou aconselho como outros realizam isso.
Tags scaling scalability