- Utiliser Cloud Run pour servir des fichiers statiques - 1
- Article de blog sur la manière de servir des fichiers statiques à l'aide de Google Cloud Run. L'accent est mis sur la redirection et l'amélioration des performances.
Texte traduit par l'IA.
Résumé du texte par durumis AI
- Nous avons mis en place un système CDN qui utilise l'intégration de Google Cloud Storage (GCS) et de Cloud Run pour gérer efficacement les images et les ressources web, et fournir des fichiers optimisés en fonction de l'environnement du navigateur web.
- Les images téléchargées sont converties et stockées dans différents formats (webp, avif, etc.) et les fichiers texte sont compressés (gzip, br, etc.) afin de fournir un contenu optimisé aux utilisateurs.
- Cloud Storage et Cloud Run sont déployés dans 8 régions du monde afin de fournir les ressources depuis la région la plus proche de l'utilisateur, ce qui minimise la latence et améliore l'expérience utilisateur.
Article précédentprésentait la partie concernant le service de fichiers statiques à l'aide de Cloud Run utilisé par durumis.
Cependant, contrairement à des fichiers tels que robots.txt ou favicon.ico, les fichiers image publiés sur le blog ou les ressources du site Web lui-même ne peuvent pas être traités simplement comme des fichiers statiques.
Par conséquent, ces fichiers doivent être utilisés avec Cloud Run, qui est lié à Google Cloud Storage (ci-après GCS).
Le concept de base est simple. Les fichiers image téléversés en temps réel ou les nouvelles ressources lors de la mise à jour du site sont téléversés sur GCS, et lorsque des demandes externes sont reçues, Cloud Run vérifie si le fichier existe dans GCS et, le cas échéant, le transmet.
Cependant, la façon dont il fonctionne en réalité est beaucoup plus complexe que cela.
Lors du téléversement d'images sur GCS, durumis les convertit généralement en trois formats différents.
Lors du téléversement, si le fichier image est au format jpeg ou png, il est automatiquement converti en webp et avif et enregistré simultanément.
Tous les fichiers image sont demandés via une URL sans extension, et lorsque la demande est effectuée, Cloud Run vérifie l'en-tête du navigateur Web qui effectue la demande et vérifie si le navigateur Web peut recevoir des fichiers image avif et webp dans cet ordre. Si aucun des deux fichiers n'est disponible, il est transmis au format jpeg ou png. En outre, en plus de la simple conversion de format, il est également redimensionné à l'avance en fonction de la taille requise par la page Web et stocké/transmis.
Diagramme
Il en va de même pour les fichiers texte.
De nombreuses ressources nécessaires au site Web sont des images, mais aussi des fichiers texte tels que js et css.
Les fichiers js et css sont également compressés en gzip et br lors du téléversement, de manière similaire aux images, puis le fichier pris en charge par le navigateur Web est transmis tel quel lors de la demande.
Le rôle du CDN ne se limite pas à la mise en cache du contenu. Dans le cas de Google Cloud Platform (GCP), la fonctionnalité Cloud CDN peut être directement connectée à Google Cloud Load Balancer (GCLB), offrant ainsi des fonctionnalités encore plus puissantes.
Cloud CDN reçoit les données du Backend Service, les stocke, puis les transmet au client. Au cours de ce processus, Cloud CDN peut transmettre le fichier optimisé en fonction de l'en-tête de la demande du client. Cela permet de fournir différents formats de contenu pour la même URL.
Par exemple, pour la même URL « /image/tempImage »
- Dans le cas des fichiers image
- En fonction de l'en-tête « Accept » du navigateur, un fichier image d'un format différent est transmis.
- Le navigateur Chrome affiche généralement une préférence dans l'ordre suivant : « image/avif,image/webp,image/apng ».
- Le CDN fournit un fichier image dans le format possible en fonction de cet ordre, et s'il n'est pas pris en charge, il le remplace par un fichier jpeg ou png.
- De même, pour les fichiers texte
- La préférence pour la méthode de compression est également prise en compte.
- Le navigateur Chrome prend en charge des méthodes de compression telles que « gzip, deflate, br, zstd ».
- Par exemple, le service durumis prend actuellement en charge gzip et br, et le fichier compressé br est transmis en priorité.
Grâce à ces fonctionnalités avancées du CDN, vous pouvez fournir un contenu optimisé pour l'environnement de l'utilisateur, ce qui améliore considérablement les performances et l'expérience utilisateur du site Web.
Même avec Cloud CDN, des demandes de fichiers sont nécessaires à Cloud Run depuis le CDN, de sorte que durumis utilise une méthode de déploiement préalable de Cloud Storage et Cloud Run dans 8 régions du monde entier et de transmission des ressources correspondantes. Ainsi, bien que cela entraîne une légère augmentation des coûts et du volume de travail, les utilisateurs bénéficient d'une latence considérablement améliorée.
Même en utilisant Cloud CDN, le fichier doit être récupéré à partir du serveur d'origine (dans ce cas, Cloud Run). Durumis optimise cette structure pour fournir un meilleur service aux utilisateurs du monde entier.
Stratégie d'optimisation globale de durumis :
- Déploiement préalable de Cloud Storage et Cloud Run dans 8 régions du monde entier
- Déploiement préalable des ressources nécessaires dans chaque région
- Transmission des ressources à partir de la région la plus proche lors d'une demande utilisateur
Cette méthode nécessite une légère augmentation des coûts et des tâches supplémentaires, mais elle offre les avantages suivants aux utilisateurs :
- Latence considérablement améliorée
- Temps de chargement du contenu plus rapide
- Amélioration globale de l'expérience utilisateur
Voici une représentation visuelle de cette structure :
Grâce à cette structure, durumis peut fournir un service rapide et cohérent aux utilisateurs du monde entier. Étant donné que le contenu est fourni à partir de la région la plus proche de l'emplacement de l'utilisateur, le service peut être utilisé avec une faible latence partout dans le monde.
Cette approche nécessite plus d'efforts pour la configuration initiale et la maintenance, mais elle présente l'avantage d'améliorer considérablement l'expérience utilisateur finale. En particulier, pour les entreprises qui fournissent des services mondiaux, cette structure peut grandement contribuer à la fourniture de services compétitifs.
Dans cet article sur le CDN, nous n'avons examiné que les concepts de base.
En réalité, nous aurions pu aborder les aspects de la configuration détaillée, mais comme ils varient d'un fournisseur de cloud à l'autre (GCP, Azure, AWS) et qu'ils sont moins... intéressants, nous avons opté pour une explication conceptuelle.
Si l'occasion se présente, nous aborderons ces aspects plus en détail ultérieurement.
La prochaine fois, nous aborderons la question de savoir comment synchroniser les multiples instances (nous en avons 8 !) de Cloud Storage dans différentes régions...
Merci.