O que é um CDN, como eles funcionam e por que você deveria usar um?!
Publicados: 2016-03-22Imagine um mundo onde cada página da web carregasse instantaneamente, sem um único milissegundo de tempo de espera. Embora isso ainda não seja possível, estão surgindo tecnologias que nos ajudam a dar alguns passos mais perto.
Uma rede de distribuição de conteúdo (ou CDN, abreviadamente), é uma das etapas para atingir esse objetivo.
Neste artigo, explicarei o que é um CDN, como um modelo CDN se compara ao modelo tradicional de hospedagem na web, discutirei os prós e os contras de usar um CDN para o seu site e, por último, mostrarei como iniciar seu site. com um CDN.
O que é um CDN?
Um CDN é um sistema de servidores web, geograficamente dispersos pelo mundo, cada um dos quais hospeda uma cópia do seu site, a fim de melhorar a forma como o seu conteúdo é entregue aos usuários.
Qual é o objetivo principal de um CDN?
O principal objetivo de uma CDN é servir o conteúdo do seu site de forma mais eficiente ( ou seja, mais rápida ) aos usuários finais.
Se você usar uma CDN, quando um usuário carregar o conteúdo do seu site, o servidor CDN mais próximo do usuário fornecerá esse conteúdo.
Como o conteúdo tem menos distância a percorrer, ele chega ao usuário mais rápido, o que significa que o tempo de carregamento do seu site é mais rápido!
Como veremos, essa não é a única vantagem de usar um CDN!
Como funciona uma CDN?
Como já discutimos, quando você usa um CDN como parte da configuração de sua hospedagem na web, cada um dos servidores da rede hospeda uma cópia do seu site.
Esses servidores CDN são chamados de servidores de “borda” porque estão na borda da rede e mais próximos dos usuários.
Isso contrasta com o servidor de “origem”, que é fornecido pela sua empresa de hospedagem e é onde seus arquivos são carregados e armazenados automaticamente quando você cria e atualiza seu site.
Você pode estar se perguntando como seu site sai do servidor de origem e chega a esses servidores de borda?
Bem, isso depende se o seu CDN é push ou pull …
O que é Pull CDN (e como funciona)?
Uma configuração pull CDN funciona puxando arquivos do servidor de origem , como e quando eles são necessários.
Na primeira vez que um usuário solicitar um arquivo, o servidor de borda precisará ler o arquivo do seu servidor de origem (ou seja, seu provedor de hospedagem atual).
O servidor de borda armazenará então uma versão em cache desse arquivo. Uma versão “em cache” significa apenas uma cópia do arquivo daquele momento específico.
Solicitações futuras do arquivo virão diretamente do servidor de borda (em vez de serem extraídas do servidor de origem), até que o arquivo expire (fique desatualizado).
Após a expiração, o arquivo precisará ser atualizado novamente no servidor de origem e armazenado em cache.
O que é um Push CDN (e como funciona)?
Um CDN push permite que os usuários carreguem (“push”) seus arquivos para o próprio CDN , e os arquivos são imediatamente distribuídos para os servidores de borda, uma vez carregados.
Assim, seus arquivos já estão armazenados em todos os servidores de borda, sem a necessidade de serem extraídos de um servidor de origem.
Esta é uma opção menos comum; entretanto, é vantajoso para distribuição de grandes arquivos de mídia , já que uma cópia da mídia sempre será armazenada nos servidores de borda.
Um CDN substitui sua hospedagem na web?
Não, um CDN não substitui sua hospedagem na web . Eles trabalham em conjunto.
Todos os seus arquivos originais são armazenados no servidor do seu host. Este é o servidor de origem.
Os servidores CDN contêm apenas cópias dos arquivos no servidor de origem.
Se você se livrar da sua hospedagem na web, o CDN não terá de onde copiar os arquivos!
Resumo em vídeo de um CDN
Se você ainda estiver um pouco confuso, aqui está um vídeo rápido que explica um CDN em termos muito simples:
O problema da hospedagem na web sem CDN
Com o modelo tradicional de hospedagem na web, todos os arquivos do seu site (HTML, CSS, imagens, etc.) são hospedados em um único local no mundo – basicamente onde quer que o datacenter do seu provedor de hospedagem na web esteja localizado.
Quando os usuários finais acessam seu site, o conteúdo do site é sempre recuperado desse local .
Existem várias desvantagens nisso:
1. As velocidades diminuem com a distância
Se o datacenter do seu provedor de hospedagem estiver localizado no Texas, sempre que um usuário quiser carregar o seu site, o conteúdo será entregue a partir desse datacenter no Texas.
As velocidades de transferência tendem a diminuir quanto mais o usuário estiver geograficamente localizado em seu servidor, uma vez que os arquivos precisam percorrer uma distância maior. Quanto mais longe o usuário estiver do datacenter, mais tempo levará para o seu site carregar.
Portanto, um usuário de site no Reino Unido carregará seu site mais lentamente do que um usuário nos EUA, devido à proximidade do datacenter do Texas.
2. Taxas de transferência limitadas
Considere uma situação em que vários usuários tentam carregar seu site ao mesmo tempo.
Assim como o seu computador pessoal tem limitações quanto à rapidez com que os arquivos podem ser transferidos pela rede (taxa de transferência), os servidores também têm limitações quanto à rapidez com que podem transferir arquivos.
A sua hospedagem atual está preparada para esse aumento no tráfego?
Considere especificamente soluções de hospedagem compartilhada, onde as taxas de transferência não são especificadas. Nesses e em outros ambientes, as taxas de transferência podem ser bastante limitadas, o que pode resultar em um impacto perceptível no desempenho quando há um aumento no tráfego do seu site.
Por esses motivos, um aumento no tráfego pode aumentar o tempo de carregamento do seu site, pois o conteúdo do site é enviado a todos os usuários finais de uma só vez.
As vantagens de usar um CDN
Com um modelo CDN, podemos superar as desvantagens do modelo tradicional de hospedagem web. Na verdade, um CDN tem várias vantagens, tais como:
1. Tempos de carregamento mais rápidos (servindo conteúdo do servidor mais próximo do usuário)
Lembre-se de que quanto mais longe o usuário estiver do datacenter do seu provedor de hospedagem, mais tempo levará para o seu site carregar, já que os arquivos precisam ser transferidos por uma distância maior.
Uma CDN servirá conteúdo de um servidor de borda que esteja mais próximo ou seja mais eficiente para cada usuário final individual, com base em sua localização no mundo.
Por exemplo, se alguém na China carregasse o seu site, o CDN poderia carregar automaticamente uma cópia do conteúdo do seu site a partir de um servidor na China. Se alguém acessasse seu site do Reino Unido, um servidor no Reino Unido poderia ser usado para carregar seu site para esse usuário específico.
O CDN determinará automaticamente qual servidor é a escolha mais eficiente para cada usuário final.
2. Melhor tratamento de picos de tráfego (por transferência dispersa de arquivos)
Conforme mencionado anteriormente, os servidores contêm restrições sobre a quantidade de dados que podem ser transferidos através deles de uma só vez. Um CDN ajuda a melhorar o desempenho do seu site quando vários usuários tentam acessá-lo ao mesmo tempo.
Dada a natureza de funcionamento da CDN, as solicitações simultâneas ao seu site provavelmente serão tratadas por vários servidores em diversas áreas do mundo, dependendo de onde as solicitações vêm.
Dessa forma, um servidor específico não é inundado com todas as solicitações dos usuários. Os provedores de CDN também implementarão outros procedimentos para garantir que seus arquivos sejam carregados com eficiência, mesmo em meio a um aumento no tráfego.
3. Melhor segurança (por meio de mitigação e proteção contra DDoS)
Um ataque DDoS ocorre quando o seu servidor é inundado com solicitações ilegítimas para o seu site, com o objetivo de travar o seu site ou causar aumento nas tarifas de largura de banda devido a transferência excessiva.
Seu provedor de CDN provavelmente oferecerá mecanismos de detecção e mitigação de DDoS, o que ajudará a melhorar o desempenho e o tempo de atividade do seu site em meio a um ataque DDoS.
As desvantagens de usar um CDN
No entanto, existem algumas desvantagens em usar um CDN.
1. Custo: CDNs normalmente são pagos conforme o uso
Os provedores de CDN geralmente cobram com base na quantidade de conteúdo que você está transferindo. Por causa disso, seu custo mensal varia a cada mês .
Seu atual provedor de hospedagem na web já pode incluir uma certa quantia de transferência mensal como parte de seu pacote de hospedagem atual; portanto, você precisará considerar se o custo adicional do CDN é viável para a presença online da sua empresa.
Observe que os provedores de “push CDN” geralmente também cobram pelo espaço de armazenamento (veja abaixo).
Para ajudá-lo a entender quanto custará a transição para a nuvem, considere o seguinte cenário…
Digamos que o tamanho do seu site seja de 1 MB e que seu provedor de CDN cobre US$ 0,085/GB de transferência. O custo para 10.000 usuários acessarem todo o seu site seria: ((1/1.024)×10.000) ÷ 0,085 = 114 centavos, ou US$ 1,14 por 10.000 solicitações .
Como você pode ver, este não é um custo exorbitante.
No entanto, muitas ofertas de CDN leem seus arquivos do local de armazenamento do seu provedor de hospedagem atual, o que representa um custo adicional. Esse servidor de origem pode ser um sistema de armazenamento de arquivos, como o Amazon S3, ou pode ser seu provedor de hospedagem atual.
Se o seu site contiver conteúdo dinâmico, você ainda precisará manter uma solução de hospedagem que possa processar esses tipos de arquivos.
Como as soluções CDN costumam ser pagas conforme o uso, um ataque DDoS pode ser financeiramente desfavorável – o aumento drástico nas transferências de arquivos causado por esse tipo de ataque resultaria em um aumento de custo para o seu negócio.
No entanto, os fornecedores de CDN estão a trabalhar na deteção e mitigação destes tipos de ataques, conforme discutido anteriormente.
Observação: muitos dos melhores provedores de hospedagem na web agora incluem serviços CDN gratuitos em seus planos.
2. Configuração extra necessária para armazenar em cache o conteúdo alterado
Lembre-se de que um CDN funciona armazenando em cache cópias do conteúdo do seu site em todo o mundo.
No entanto, a maioria dos sites inclui algum conteúdo que muda dependendo do usuário específico que acessa o site ou de outros critérios (mensagens de boas-vindas para um usuário específico, carrinhos de compras, etc.).
Esse tipo de conteúdo não é tão trivial para armazenar em cache em todo o mundo, pois é constantemente atualizado por solicitação.
Arquivos de streaming são outra forma de conteúdo que requer atenção especial para serem utilizados no CDN. Veja abaixo mais alguns detalhes.
Outras considerações sobre CDN
Atualizando o cache de arquivos ao atualizar seus arquivos
Quando você precisar atualizar um de seus arquivos usando um CDN pull, todas as cópias em cache em todo o mundo também precisarão expirar para que sejam atualizadas na próxima solicitação.
Para que isso aconteça, pode ser necessário aguardar o tempo de expiração padrão (que varia de acordo com o provedor) ou forçar a invalidação imediata dos arquivos em cache (limpando o cache manualmente).
Embora a atualização dos seus arquivos possa envolver esta etapa adicional, os arquivos estáticos do seu site provavelmente não serão atualizados com muita frequência.
Garanta tempo de expiração suficiente para arquivos acessados com pouca frequência
As soluções Pull CDN não contêm necessariamente uma cópia de seus arquivos em cada servidor de borda o tempo todo (discutido com mais detalhes abaixo). Se ainda não houver uma versão em cache de um arquivo, o arquivo deverá ser extraído do servidor de origem.
Isso é mais problemático para arquivos maiores, como vídeos, já que o impacto no desempenho do carregamento desses tipos de arquivos do servidor de origem pode ser sentido de forma bastante significativa.
Algumas soluções para esse problema são aumentar o tempo de expiração do arquivo em cache (se possível), para que o arquivo não precise ser atualizado do servidor de origem com tanta frequência, ou armazenar arquivos grandes em uma solução push CDN (veja abaixo ).
Conteúdo estático vs. conteúdo dinâmico
Os sites contêm dois tipos principais de dados – conteúdo estático e conteúdo dinâmico.
A maior parte do conteúdo que você vê em um site (ou seja, a aparência, as imagens, os vídeos, os arquivos CSS e JavaScript, etc.) geralmente é conteúdo estático. O conteúdo estático nunca muda (a menos que você carregue novamente o arquivo de origem).
Por exemplo, a aparência do logotipo da sua empresa não mudará, não importa quem visite seu site ou quantas vezes você recarregar a página.
O conteúdo dinâmico muda dependendo de quem solicita os dados ou outros critérios.
Por exemplo, quando John faz login em sua conta bancária, ele vê seus saldos. No entanto, quando David faz login, os saldos não são os mesmos que Joe vê.
Como outro exemplo: após fazer login no painel do WordPress, você verá uma mensagem como “Olá, John!”.
O conteúdo que muda dependendo do usuário ou de outros critérios é considerado conteúdo dinâmico.
Como uma CDN lida com conteúdo estático, dinâmico e de streaming?
Neste ponto, chegamos a uma questão importante: “Que tipo de arquivos posso armazenar na CDN?”.
Como os arquivos estáticos tendem a permanecer os mesmos o tempo todo, independentemente de quem está carregando seu site, eles são adequados para serem armazenados em cache em todo o mundo por meio de um CDN, já que os arquivos são atualizados com pouca frequência.
No que diz respeito ao conteúdo dinâmico (ou seja, um carrinho de compras), normalmente não existe um único arquivo que possa ser armazenado em cache em todo o mundo, já que ele muda frequentemente de acordo com cada usuário ou outros critérios.
No entanto, os provedores de CDN estão implementando soluções para melhorar a eficiência do carregamento de conteúdo dinâmico, como encontrar a rota mais rápida entre o usuário e seu servidor de hospedagem.
Muitos provedores de CDN também implementaram soluções para transmitir mídia ao vivo e sob demanda por meio de uma CDN.
Como configurar um CDN
Então agora você provavelmente está pensando: “Estou convencido de que meu site precisa de um CDN! Como faço a transição?”.
A resposta depende de qual provedor de hospedagem você usa e do tipo de solução CDN que você deseja.
Alguns provedores de hospedagem na web oferecem uma opção para habilitar facilmente o CDN por meio de seu painel de controle. Outras configurações requerem algumas etapas extras.
Adicione uma camada CDN a todo o seu site
Esta opção é uma das mais simples de configurar para pequenos empresários. Cada solicitação dos usuários para acessar o conteúdo do seu site será primeiro filtrada por meio de um sistema gerenciado por um provedor de CDN.
O conteúdo estático será carregado do CDN, enquanto o conteúdo dinâmico será carregado diretamente do servidor existente (ou uma técnica pode ser usada para melhorar o tempo de carregamento do conteúdo dinâmico, conforme discutido anteriormente).
Na verdade, um CDN pull será implementado nos bastidores para distribuir arquivos por meio do CDN.
CloudFlare é uma dessas empresas que oferece esse tipo de solução CDN. Algumas empresas, como a CloudFlare, também fornecerão outras melhorias para o desempenho do seu site, além do CDN apenas.
Como configurar
A principal etapa na configuração desse tipo de sistema CDN é atualizar os registros DNS do seu site para apontar para a camada CDN. A camada CDN encaminhará as solicitações para o seu servidor de origem conforme necessário.
Você ainda precisará manter sua solução de hospedagem atual para que o CDN extraia arquivos dela.
Como configurar um Pull CDN
Você especifica o local dos seus arquivos no servidor de origem para distribuição no CDN. O CDN extrairá os arquivos do servidor de origem conforme necessário.
Você também precisará atualizar os links dos arquivos do seu site para o endpoint do CDN ou atualizar as configurações de DNS para apontar para o CDN.
Como configurar um Push CDN
Carregue seus arquivos para o provedor CDN. Você também precisará atualizar os links dos arquivos do seu site para o endpoint do CDN ou atualizar as configurações de DNS para apontar para o CDN.
Devo deixar meu provedor de hospedagem na web?
Não. Mesmo depois de adquirir uma solução CDN, você precisará contratar um provedor de hospedagem na web.
Lembre-se de que um CDN é usado para armazenar conteúdo em cache ; se o seu site contiver algum conteúdo dinâmico, você ainda precisará manter sua solução de hospedagem atual para processar esse conteúdo.
Quais empresas de hospedagem fornecem um CDN?
Atualmente, muitas empresas de hospedagem fornecem um CDN como parte de seus planos de hospedagem compartilhada:
- SiteGround (use seu próprio CDN SiteGround personalizado)
- Bluehost (Cloudflare está pré-habilitado)
- Kinsta (um plano Cloudflare pago está incluído gratuitamente)
- WP Engine (um plano Cloudflare pago está incluído gratuitamente)
- HostGator (Cloudflare está incluído apenas no plano Business)
- IONOS (Cloudflare está incluído apenas no plano Expert)
- Cloudways (Cloudflare Enterprise pode ser adicionado por apenas US$ 4,99 por mês)
Conclusão
CDNs são uma solução viável para melhorar a eficiência do seu site, reduzindo o tempo necessário para transferir arquivos aos usuários. Isso provavelmente serve para aumentar a retenção de clientes em seu site e possivelmente até melhorar suas classificações nos resultados de pesquisa.
Os CDNs também reduzirão a carga de solicitações de arquivos em sua configuração de hospedagem atual, o que pode ajudar a lidar com grandes volumes de tráfego.
No entanto, um CDN geralmente tem um custo maior. Seu site merece a melhoria de desempenho que um CDN poderia oferecer, mas os benefícios devem superar os custos potenciais e outras compensações.
Não se esqueça de que um CDN é apenas uma das muitas etapas que você pode realizar para melhorar o desempenho do seu site. Escolher um host rápido é o primeiro (e mais importante).
E também há muitas outras coisas que você pode fazer para aumentar geralmente a velocidade do seu site (como compactação de imagens) e, especificamente, melhorar o tempo de carregamento do seu site WordPress!
Você usou um CDN para o seu site? Deixe-nos saber nos comentários abaixo o que você pensa sobre CDNs!