Um CDN ainda funciona mesmo quando o servidor está inoperante?

10

Eu sou proprietário de um site que planeja usar o cloudfront S3 da Amazon. Eu tenho lido todas as coisas sobre o que um CDN pode fazer, mas ainda tenho uma pergunta sem resposta.

Um CDN ainda funciona mesmo quando o servidor principal está inativo. Essa é a principal razão pela qual estou interessado nisso. Porque, meu servidor geralmente experimenta interrupções frequentes devido a falta de energia aqui no Mali.

    
por Tola 25.11.2012 / 17:34

6 respostas

11

Dependeria de quem está hospedando seu CDN. Se você hospedar seu site em um servidor e o CDN com uma terceira parte, é provável que o seu CDN permaneça ativo quando o site estiver desativado. Isso pode não ser o caso, no entanto, como alguns CDNs só distribuem conteúdo que eles podem verificar está em seu site.

Uma nota secundária, os CDNs não servem para hospedar todo o site. Então, se você está pensando em usar um para substituir sua hospedagem na web ou usá-lo como algum tipo de plano de failover, você está latindo na árvore errada.

TL; DR - Você terá que perguntar ao seu provedor de CDN.

    
por 25.11.2012 / 17:41
10

Os CDNs são projetados para escalabilidade e desempenho, mas não para alta disponibilidade. A qualquer momento, eles podem exigir acesso aos arquivos originais.

A maioria das pessoas os utiliza para armazenar arquivos estáticos, como imagens, arquivos CSS e JavaScript. Alguns podem ser configurados para armazenar em cache o HTML, mas isso é somente se você tiver um site completamente estático. Se fosse esse o caso, você poderia hospedar tudo no S3 e não precisaria de um servidor.

    
por 25.11.2012 / 17:45
5

Geralmente, sim, até o TTL.

Ao usar CDNs, você geralmente configura TTLs (time to live) para o seu conteúdo. Isso é um máximo de quantos anos o cache pode obter antes de decidir que é absolutamente necessário atualizar o cache com o conteúdo mais recente. Por exemplo, suponha que você configure todos os URLs * .jpg para ter um TTL de 5 minutos.

Então, se o seu servidor cair, você terá mais 5 minutos para fazer o backup antes que os usuários percebam. Bem, pelo menos para .jpgs. Bem, pelo menos para .jpgs que por acaso já foram armazenados em cache.

Além disso, alguns CDNs usam recursos como o Akamai NetStorage, onde você pode enviar conteúdo diretamente para o CDN - o CDN recebe algum conteúdo e é solicitado a atendê-lo diretamente a priori. Uma vez que, para começar, nunca há um cache "on-demand" de estilo "pull", isso deve funcionar, obviamente, quando o servidor estiver inativo.

Como os outros pôsteres observaram, não é para isso que os CDNs são projetados e não oferecem garantias de que esse comportamento funcionará. Acontece que geralmente funciona (e é incrível quando você assiste isso acontecer!). E, é claro, para detalhes técnicos específicos, você deve entrar em contato com o seu provedor.

    
por 25.11.2012 / 18:59
5

Sim: os servidores CDN ainda estarão em execução mesmo quando o site estiver inoperante, o que é uma boa opção para lidar com grandes interrupções. Você tem uma quantidade razoável de controle sobre o que acontece para poder adaptar a experiência com base em seus recursos e prioridades. As opções geralmente se enquadram nessas categorias:

  1. Os objetos que foram configurados para armazenamento em cache (geralmente configurando o cabeçalho Cache-Control ) devem estar disponíveis até expirarem. Alguns CDNs oferecem a capacidade dos servidores de borda CDN de recuperar conteúdo de outros servidores CDN, o que pode ajudar durante interrupções, bem como melhorar geralmente o desempenho quando os servidores de origem possuem latência comparativamente alta em relação aos servidores CDN.

  2. Algumas CDNs oferecem a capacidade de exibir conteúdo que expirou quando o servidor de back-end não está disponível (por exemplo, com o Fastly, é possível ativar os modos grace ou saint do Vernish). Obviamente, isso não ajudará no conteúdo que nunca foi armazenado em cache, mas, em muitos casos, pode manter pelo menos sua página principal, informações de contato, etc. on-line enquanto você trabalha para reativar seus servidores.

  3. A maioria dos CDNs oferece a capacidade de testar vários servidores de back-end para que você tenha um site de failover separado para fornecer a experiência que faz sentido para seu site: failover para outro servidor ou site de funcionalidade reduzida, uma página HTML estática etc. Isso pode ser útil para falhas de hospedagem catastróficas, já que você tem a opção de hospedar uma empresa completamente diferente ou, no caso de algo como o Akamai NetStorage, diretamente com o provedor CDN, para que eles suportem o pacote completo.

Com exceção da terceira opção, você não tem controle sobre o que será armazenado em cache nos servidores CDN, portanto, a parte mais importante do processo é decidir como seu site pode se degradar se vários recursos não estiverem disponíveis: por exemplo, se você tiver um conteúdo HTML razoável, mesmo quando o JavaScript falhar completamente, um site predominantemente orientado a informações poderá ser executado apenas com conteúdo básico de página, mesmo quando os recursos mais avançados falharem silenciosamente em segundo plano.

    
por 25.11.2012 / 22:44
2

A maioria dos CDNs está armazenando conteúdo (dinâmico) em cache por um período de tempo (TTL) a partir da origem, neste caso, seu servidor. No Cloudfront Management Console da Amazon, o controle de cache de um bucket S3 é explicado.

  1. O comportamento padrão do S3 da Amazon é armazenar um objeto em cache 24 horas.

  2. Você pode influenciar o comportamento padrão, fornecendo / gravando um cabeçalho Cache-Control no seu servidor de origem ou um cabeçalho Expires.

    • Quando você usa o cabeçalho max-age Cache-Control, o valor mínimo é 0. Nesse momento, a Amazon contatará seu servidor de origem, para verificar se o objeto foi alterado, todas as vezes.

    • Quando você usa o cabeçalho Expires para um objeto, a Amazon não entrará em contato com o servidor de origem até essa data.

Espero que isso clarifique o comportamento da Amazon.

    
por 25.11.2012 / 21:54
0

Eu fui Engenheiro de Suporte em um CDN por mais de um ano e vou dizer que todas as respostas aqui são ótimas, mas IMO @ Chris-Adams tem a melhor resposta (se eu pudesse votar, eu o faria).

Uma coisa que nossos clientes fazem é apontar www para o CDN e 301 o TLD para www. Se um objeto TTL expirar, a borda exibirá o conteúdo expirado, se estiver disponível no cache.

Com isso dito, se o tempo de atividade (e o conteúdo novo) for importante para você, considerarei mover sua origem (dor na boca que conheço) para um host que não sofra interrupções frequentes de energia.

    
por 26.11.2012 / 01:16