O que um CDN de fato move
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.
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.