- Utilizando Google Cloud Storage e Cloud Run para CDN - 2
- Este é o segundo artigo sobre como construir um CDN usando Google Cloud Storage e Cloud Run. Explicaremos como otimizar a entrega de imagens e arquivos de texto, e como distribuir recursos em 8 regiões globais para reduzir a latência.
Texto traduzido pela IA.
Resumo do texto pela IA do durumis
- Este artigo explica como otimizar imagens carregadas no Google Cloud Storage e convertê-las em vários formatos usando o Cloud Run.
- Ele usa eventos de upload e exclusão de arquivos do Cloud Storage para converter arquivos de imagem em AVIF e WebP, compactar arquivos de texto e replicar e excluir arquivos em outras regiões para sincronização.
- Isso permite gerenciar de forma eficiente a otimização de imagens e a sincronização de arquivos em um ambiente CDN, e antecipa o conteúdo subsequente sobre o uso do Google Cloud Load Balancer.
No post anterior, discutimos sobre como enviar arquivos de imagem sincronizados com o GCS usando o Cloud Run.
Então, como a última parte da série sobre CDN, vamos falar sobre a sincronização e otimização de imagens no GCS.
O Cloud Run, por padrão, funciona por meio de um hook HTTP, mas este não é o único gatilho de evento.
Cloud Run
Ao configurar o Cloud Run, você encontrará uma seção chamada "Trigger" e, se você visualizar a lista, encontrará Pub/Sub, Cloud Storage, Filestore e outros. Além do HTTP padrão, os demais são os produtos mais usados, e a maioria dos eventos que você pode imaginar está incluída na categoria "Outros". Para começar, selecione o evento Cloud Storage e entre nele. Você verá tipos de eventos como alteração de arquivo, exclusão de arquivo, criação de arquivo e alteração de metadados de arquivo.
Cloud Run Eventarc
Aqui, usando os dois eventos "deleted" e "finalized", criaremos um Cloud Run para gerenciar eventos quando um arquivo for carregado para o GCS ou quando um arquivo carregado for excluído.
As tarefas que o Cloud Run precisa executar são principalmente as seguintes:
- Quando um arquivo é carregado, o tipo de arquivo é verificado e o seguinte processo é executado.
- Se for um arquivo de texto (css, js), ele é compactado usando br e gzip e um novo arquivo é gerado.
- Se for um arquivo de imagem, sharp npm é usado para gerar formatos convertidos como avif e webp.
- O novo arquivo gerado é replicado em várias outras "regiões" especificadas.
- Quando uma solicitação de exclusão de arquivo é recebida, o arquivo correspondente em outras regiões também é excluído.
Basicamente, se você lidar bem com essas três etapas principais (conversão, replicação e exclusão), a sincronização de arquivos não é muito difícil, mesmo com várias regiões. No código, você pode lidar facilmente com isso usando apenas duas bibliotecas npm: a que se conecta ao GCS e o sharp.
Assim, finalizamos esta série de posts básicos sobre CDN.
Nos próximos posts, abordaremos o GCLB (Google Cloud Loadbalancer).
Naturalmente, a discussão sobre CDN deve incluir o balanceador de carga (LB), mas alguns aspectos foram omitidos no conteúdo. Pretendemos abordá-los em uma série de posts futuros.
Obrigado.