Akamai vs CDN menor para tráfego de comércio eletrônico de pequeno / médio porte? (cache, latência, NetStorage)

6

A pequena / média empresa de varejo on-line que eu trabalho usa a Akamai como nosso CDN para imagens estáticas, mas eu estou imaginando se isso pode estar doendo em vez de ajudar e, se estiver abaixo do ideal, o que deveríamos estar fazendo. / p>

Recebemos tráfego mensal de cerca de 3 milhões de visualizações de página e 400 milhões de visitantes únicos. Temos 100k + imagens estáticas diferentes que aparecem em nossas várias páginas da web (várias imagens diferentes para cada um dos vários milhares de produtos, etc.).

O problema é que os servidores da Akamai estão solicitando arquivos do servidor de origem (que nos hospedamos) para cerca de 40% de todas as solicitações do navegador. Isso significa muito (na minha opinião) espera desnecessária para nossos clientes: 40% de todos os pedidos têm que fazer a viagem entre Akamai e nossa origem antes de retornar ao cliente.

TTLs de servidor não são o problema; eles estão todos definidos para 365 dias. Então parece que também

  1. Os servidores de borda da Akamai não mantêm nossas coisas no cache por tempo suficiente antes de trocá-las em favor de conteúdo que recebe mais tráfego do que o nosso e / ou
  2. existem tantos servidores de borda Akamai (eles reivindicam 70K + em todo o mundo) que cada servidor não recebe tráfego suficiente de nossos visitantes mensais de 450k para criar muito de um cache de nossos arquivos.

Então comecei a pensar se poderíamos ser mais bem servidos por um CDN com menos servidores, pensando que com menos servidores CDN, mais de nossas imagens seriam armazenadas em cache com mais freqüência em cada servidor e provavelmente permaneceriam no cache mais tempo sem ser trocado. Por outro lado, menos servidores provavelmente significa mais latência para usuários que não estão próximos de um dos servidores.

Existem duas opções baseadas na Akamai que estamos analisando, mas ainda não ativamos o gatilho:

  • Ainda não usamos o serviço NetStorage porque há um obstáculo técnico (que será o tópico da minha próxima pergunta sobre SF se formos nessa direção) e porque 40% das vezes ainda haveria essa rodada extra -trip entre o servidor de borda e a origem; seria apenas uma viagem de ida e volta dentro da rede da Akamai em vez de nossa origem hospedada separadamente - provavelmente mais rápido, mas ainda assim uma viagem de ida e volta.
  • Não pagamos pelo serviço opcional de distribuição em camadas da Akamai. Isso provavelmente aliviaria o problema em grande medida, mas (1) não é barato e (2) novamente, 40% do tempo ainda haveria uma viagem de ida e volta entre o servidor de borda e seu hub de camada.

Então, minhas perguntas são:

  1. Vocês acham que seria melhor ter os arquivos armazenados em cache em menos servidores, com o custo da latência extra para alguns usuários; ou a latência é um problema maior do que as viagens de ida e volta?

  2. Se formos com o NetStorage, alguém tem alguma ideia de quanto tempo as viagens de ida e volta à "origem" do NetStorage normalmente levam?

  3. Estou sentindo falta de alguma coisa? O que mais eu deveria estar pensando aqui?

por Aaron 29.11.2010 / 19:31

3 respostas

3

É sempre melhor basear as coisas em fatos, em vez de supor. Sua hipótese é que um CDN com menos nós atingiria sua origem com menos frequência. Para testar isso, gostaria de:

  1. Configure uma conta em vários CDNs com origem, mas que tenham um modelo "super-POP". Amazon CloudFront, MaxCDN e Voxel vêm à mente. CacheFly talvez também, embora você não possa fazer a busca de origem sem um contrato de serviços, eu acho. O LimeLight foi pioneiro no modelo "super-POP", mas requer passar pela venda de música e dança para criar um teste.
  2. Divida uma parte estatisticamente significativa de seu tráfego CDN para esses CDNs de teste. Isso pode ser tão simples quanto uma regra de reescrita feita n% do tempo, mas o "mix de conteúdo" precisa ser exatamente o mesmo para todos os CDNs. Você não pode restringi-lo a um subconjunto de seus recursos estáticos, pois o número de ativos estáticos também pode ter um efeito. Talvez mantenha 80% do tráfego na Akamai para o teste e, em seguida, faça 5% para as outras CDNs.
  3. Use os registros do seu servidor da Web para avaliar quantos hits de origem você está vendo de cada CDN em relação à quantidade de tráfego enviada para cada CDN.
  4. Use algo como pingdom para medir os tempos de resposta em todo o mundo para vários ativos estáticos em cada CDN. O descarregamento de hits de sua origem é um indicador de um CDN fazendo seu trabalho, mas a latência do usuário final também é importante.

Com esses fatos em mãos, sua decisão será fácil. Por que vale a pena, eu realmente acho que você está certo: a Akamai pode ter muitos nós para sites "menores".

Observe que alguns dos CDNs menores usam automaticamente um modelo em camadas para tudo; eles são apenas arquitetados assim desde o começo. Em tal modelo, um pedido para um determinado nó de borda é roteado para um nó "interior" em um erro de cache. O nó "interior" então encaminha para a origem se também tiver um erro de cache. Meu próprio teste indicou que o MaxCDN funcionava dessa maneira (por exemplo, a primeira solicitação de um arquivo no nó Amsterdam nem sempre resultava em uma busca de origem correspondente. Portanto, ele deve ter obtido o arquivo de outro local dentro da rede MaxCDN).

    
por 05.10.2011 / 18:11
0

Eu não trabalho para a Akamai, mas nós revendemos muitos dos seus serviços.

Você deu uma olhada no seu cache CDN? Se essas imagens estão mudando rapidamente, a situação pode ser onde os nós receberam conteúdo atualizado enquanto a Akamai está armazenando em cache os timestamps de outros. Tente limpar o cache através do painel de controle da Akamai.

Existem outros itens que estão em cache, estritamente Imagens. Qualquer CSS, Javascript?

A Akamai tem muitas opções disponíveis para ajudar a otimizar a entrega.

Recentemente fui apresentado ao Strangeloop, eles oferecem um serviço de compactação que reduz objetos por página e salva como modelos. Isso não seria um substituto, mas sim algo de interesse.

A latência e o armazenamento em cache beneficiam-se mutuamente. O NetStorage melhoraria o desempenho.

Deixe-me saber se posso ajudar, boa sorte!

    
por 29.11.2010 / 19:49
0

Você deve definitivamente chamar o suporte da Akamai e dar a eles um exemplo de algo que não está em cache como esperado. Tivemos um problema semelhante e foi devido a alguns cabeçalhos que estávamos definindo devido a uma má interpretação dos documentos. Você está pagando uma pilha de dinheiro para isso; não hesite em ligar.

O Akamai não faz "um hit por nó de borda"; eles fazem alguns hits para colocá-lo em sua "nuvem" e depois espalhá-lo para as bordas.

    
por 29.11.2010 / 19:51