O que um CDN de fato move

Prévia grátis 3 min de leitura

Três cursos de nível Sênior desta série apontaram para cá. "Banco de dados: estratégia multi-região" mediu a distância, "Kamal proxy: Thruster" mediu o custo em threads, e "System Design: load balancing camada 7" nomeou a borda como o lugar para onde rotear. Este curso leva isso adiante.

O problema, de novo

Um visitante em Mumbai está a cerca de 200 milissegundos de um servidor no leste dos Estados Unidos, e nenhuma otimização de servidor muda isso.

Uma primeira visita busca o HTML, duas folhas de estilo e algumas dezenas de módulos JavaScript pré-carregados. Cada um que ainda não está no cache do navegador é uma requisição que precisa ser respondida de algum lugar.

O HTML precisa vir da origem, porque é gerado a cada requisição. Todo o resto não precisa.

O que é um CDN

Um CDN são cópias dos seus arquivos em máquinas perto dos seus usuários, com uma regra para quando uma cópia pode ser servida em vez de perguntar a você.

Ele move bytes, não computação. Um CDN não consegue rodar o seu código Rails; ele só consegue guardar o que esse código produziu antes.

Então a pergunta para qualquer resposta é se ela foi produzida para todo mundo ou para esta pessoa. Todo o resto decorre disso.

flowchart TB
  R["uma resposta"] --> Q{"produzida para todos, ou para esta pessoa?"}
  Q -->|todos| C["cacheável na borda"]
  Q -->|esta pessoa| O["precisa vir da origem"]
  C --> A["assets, fontes, imagens públicas"]
  O --> H["a página de roadmap, o painel, qualquer coisa logada"]

O que esta aplicação move

O tailwind.css tem cerca de 105 KB sem compressão, e é a maior coisa que um visitante de primeira viagem baixa desta origem.

Some o lexxy.css e os módulos JavaScript servidos localmente, que o Propshaft marca com digest, e essa é a superfície de assets da própria aplicação.

Onde o CDN já está

As fontes vêm de fonts.bunny.net, e parte do JavaScript vem de cdn.jsdelivr.net. Esses sempre foram entregues pela borda.

Os assets da própria aplicação agora também são. A Cloudflare fica na frente do domínio inteiro e guarda /assets em cache na borda: uma requisição da folha de estilo responde cf-cache-status: HIT. Como a Cloudflare responde no mesmo hostname, nada na aplicação precisou mudar.

Então este curso explica por que isso é seguro, o que nunca pode ficar em cache na borda e o que sobra, que é o HTML. Dar nome à oportunidade com precisão é o que torna administráveis as próximas cinco lições.

Pontos-chave

  • Um CDN aproxima bytes, e não consegue mover computação.
  • A pergunta para qualquer resposta é se ela foi produzida para todo mundo ou para uma pessoa.
  • O HTML precisa vir da origem, e os assets não.
  • O tailwind.css, com cerca de 105 KB, é a maior coisa que esta origem envia a um visitante de primeira viagem.
  • As fontes e parte do JavaScript sempre vieram da borda, e a Cloudflare agora também guarda em cache os assets da própria aplicação.
Aula 1 de 7 · grátis

Continue com a aula 2

Por que digests tornam isso seguro

Mostra como o digest do Propshaft evita invalidar cache e torna seguro um cache público de um ano.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...