Primeiro Byte vs CDN?

Quais são as diferenças entre carregar uma página usando CDN e que tipo de provedores você está utilizando?

Tenho um tempo de carregamento muito maior ao usar a CDN. Será que estou fazendo algo errado ou há algo que não sei? Talvez eu deva ainda configurar algumas opções das quais não tenho conhecimento?

O CDN ficará mais lento até que os recursos sejam armazenados em cache. Você pode precisar esperar um tempo antes de realizar qualquer teste.

Bem, a primeira pista… graças a .
Um pouco. Quanto? Estamos falando de dias, semanas?

Deveríamos forçar um payload em https ou melhor em http? Estou perguntando porque há diferenças no carregamento. O que determina se a página é carregada por completo ou se parece que o JavaScript original não foi carregado??

O prazo dependerá de como os usuários interagem com o site. Os ativos mais baixados serão carregados no cache da CDN e serão mais rápidos se você estiver mais próximo do servidor da CDN do que do servidor de origem.

Se o datacenter estiver ao seu lado e o servidor da CDN estiver a 1000 km de distância, a conexão será sempre mais lenta. A ideia da CDN é atender melhor um público geograficamente diversificado, não melhorar visitas centralizadas.

Mas estamos falando de uma situação após adicionarmos o endereço do CDN ao nosso arquivo app.yml ou não?

E qual é o motivo de usar um subdomínio para o endereço do CDN? Ou seja, por que não pode ser DISCOURSE_CDN_URL: //637763234.cdn-provider.com e deve ser discourse-cdn.example.com??

Sim, eu sei, mas estou verificando com diferentes ferramentas de teste de várias regiões do mundo. E a CDN é sempre mais lenta!

Você está falando do TTFB em qual caminho exatamente?

O TTFB para um recurso estático (como um arquivo JS ou uma imagem JPG enviada por um usuário) será sempre rápido ao usar uma CDN, pois a latência de vários PoPs ajudará nisso.

Por outro lado, comparar o TTFB de rotas dinâmicas não faz sentido, já que nosso DISCOURSE_CDN_URL não cobre esses casos de qualquer forma.

Você pode explicar exatamente o que quer dizer?

Estou fornecendo os resultados para o fórum de teste. (aliás, acabou de sair um pouco mais rápido) // Mas é apenas em um domínio novo sem conteúdo.

e para o Cloudfront criado

O que você está vendo é apenas uma variação normal. O CDN não terá impacto no tempo até o primeiro byte na raiz da sua instância Discourse ou em qualquer outra rota dinâmica. O CDN servirá apenas os ativos estáticos.

E há alguma diferença se esses recursos (ativos estáticos) forem mantidos no S3?

Não, não há nenhuma. O CDN armazenará esses ativos do S3 em cache conforme necessário.

Isso é apenas um endereço de vaidade, não é necessário de forma alguma.

Eu esperava que o CDN acelerasse o carregamento da página, mas imagino que será insignificante.

Existem outras maneiras muito mais eficazes de acelerar o carregamento da página para diferentes partes do mundo, além de aumentar os recursos de RAM e CPU?

O TTFB é o tempo que o servidor de aplicação leva para enviar uma resposta 200. Você não pode melhorá-lo usando uma CDN, pois a CDN apenas serve ativos.

Você acelerará a página, mas não o First Byte. Você acelerará o carregamento de multimídia (imagens, PDFs, vídeos) e JS. Isso melhorará a responsividade do site, mas todo o conteúdo dinâmico precisará ser carregado do servidor central.

Assim, os avatares dos usuários, por exemplo, serão carregados mais rapidamente, mas não os títulos dos tópicos.

Como o Discourse bloqueia a renderização enquanto aguarda JS e CSS, você ainda pode tornar a página interativa mais rapidamente aproveitando uma CDN.

Realizar esse tipo de análise exige um pouco mais do que executar cegamente o Lighthouse e o WebPageTest, escolher um resultado e se obsessar com ele.

Se sua prioridade é ter uma página com uma pontuação mais alta nessas ferramentas, recomendo executar um blog alimentado por ferramentas como https://jekyllrb.com/.

Então, como devo analisá-lo?