Monitorando o CDN de diferentes localizações geográficas

3

Recentemente, tivemos um problema com nosso serviço CDN: um dos locais de borda armazenou em cache a versão incompleta do arquivo javascript e nossos clientes dos Emirados Árabes Unidos (e talvez alguns outros países próximos) não puderam usar nosso serviço. Esse problema foi resolvido agora, mas percebemos que o monitoramento de nossa rede CDN pode ser uma boa ideia.

Precisamos monitorar:

  1. Recursos estão disponíveis.
  2. Eles têm o tipo de conteúdo correto, codificação de conteúdo (gzip), expira e alguns outros cabeçalhos
  3. Eles têm o mesmo tamanho em todas as localizações geográficas.
  4. Os recursos geralmente alteram os nomes (estamos alterando o sufixo do nome de arquivo ao atualizá-lo com uma nova versão), por isso precisamos ter a capacidade de alterar URLs de recursos monitorados rapidamente e, no melhor dos casos, automaticamente durante as implantações.

Como o nosso provedor de CDN tem muitos servidores em locais diferentes, também precisamos rastrear isso de vários locais diferentes. Eu vi muitos serviços que podem rastrear sites de vários locais, mas todos eles parecem estar focados em medir a disponibilidade e a velocidade, enquanto que para essa questão estamos mais focados na consistência.

Então, acredito que temos as seguintes opções:

  1. Encontre um serviço de monitoramento hospedado que possa ser necessário. Alguém conhece algum?
  2. Escreva um script de monitoramento usando alguma lista / rede de servidores proxy. Existe alguma lista / serviço confiável para isso?
  3. Escreva um script usando a especificação de nó de saída tor para rastrear nossos recursos de diferentes locais.
  4. Use alguns outros CDN que tenham essa funcionalidade pronta e garantam que todas as cópias de recursos em todos os locais sejam consistentes. Mas ainda gostaríamos de ter algum monitoramento de terceiros.

Qual é a melhor abordagem? Você pode sugerir algo mais para resolver nosso problema?

Obrigado.

    
por rvs 08.07.2011 / 10:01

3 respostas

3

Desculpe, mas isso é praticamente impossível.

A melhor maneira seria obter uma lista de todos os endereços IP dos servidores de borda do provedor CDN e, em seguida, criar um script para testar as cópias nos locais das extremidades. Mas, tenho 99% de certeza de que você não encontrará um provedor de CDN que forneça informações detalhadas sobre todos os pontos de presença - os CDNs estão em um negócio extremamente competitivo.

Com exceção da lista de IPs acima, com um CDN você não pode confiar no monitoramento DYI, ou no monitoramento HTTP feito pelo Gomez, Pingdom ou qualquer outro serviço de monitoramento HTTP . As CDNs têm localizações de borda em muitas cidades e usam algum tipo de roteamento de tráfego "inteligente":

  • DNS com reconhecimento geográfico, por exemplo, procure a localização do endereço IP resolvendo o cache DNS e forneça um IP correspondente a um CDN POP próximo ao resolvedor de DNS.
  • BGP Roteamento Anycast .

Por esse motivo, seu cliente de monitoramento será direcionado para o CDN POP 'mais próximo' e não poderá monitorar os outros POPs CDN. Você teria que executar agentes de monitoramento em muitos locais ao redor antes de ter certeza de que cobria todos os POPs CDN.

Todos os bons CDNs têm um monitoramento extensivo de sua própria rede, então não deve haver razão para duplicar isso por conta própria. Em vez disso, sugiro considerar:

  • Mudando para um provedor de CDN melhor?

  • Forçando os POPs do CDN a despejar suas versões em cache com mais frequência. Boas CDNs podem gerenciar o TTL do cache em suas bordas independentemente do que o HTTP expira & Cabeçalhos de controle de cache dizem. Dessa forma, se houver um arquivo incompleto, ele será liberado mais cedo.

por 12.07.2011 / 23:32
0

1) Confira os locais de monitoramento de pingdom.com e websitepulse.com
2) Não confiável
3) Não confiável
4) nunca ouvi falar de

    
por 08.07.2011 / 10:05
0

Você conversou com seu provedor de CDN para verificar possíveis ferramentas que atendem às suas necessidades de monitoramento? Um CDN pode fornecer uma interface para escolher especificamente um site ou região espelho para suas solicitações de verificação. Eu tomaria isso como a rota número um, porque todo o resto é mais um truque do que uma solução real.

Existem diretórios de proxy, mas estes não são confiáveis e mudam com frequência, como afirmou 3molo. Você pode considerar a execução de seus próprios proxies sobre serviços de nuvem (por exemplo, AWS ou Azure) como agentes de monitoramento, mas isso realmente depende dos algoritmos de geolocalização usados pelo seu CDN se isso refletir a detecção "real" e obter suas solicitações atendidas pelo " "servidores" certos.

Apoiar-se em uma infra-estrutura peer-to-peer não confiável, como o monitoramento de sons, é uma má idéia e pode valer a pena uma tentativa se você estiver fora de outras opções.

    
por 08.07.2011 / 10:55