Héberger des sites Web

Last reviewed 2023-02-28 UTC

Dans cet article, nous expliquons comment héberger un site Web sur Google Cloud. Google Cloud offre une plate-forme robuste, flexible, fiable et évolutive pour diffuser des sites Web. Google a conçu Google Cloud en utilisant la même infrastructure que celle qui lui permet de diffuser le contenu provenant de sites tels que Google.com, YouTube et Gmail. Vous pouvez héberger le contenu de votre site Web en utilisant le type et le modèle d'infrastructure répondant le mieux à vos besoins.

Cet article vous sera certainement utile si vous :

  • savez comment créer un site Web, et avez déjà déployé et exploité une infrastructure d'hébergement Web ;
  • êtes en train d'évaluer une potentielle migration de votre site vers Google Cloud, et la façon de procéder.

Si vous souhaitez créer un site Web simple, pensez à utiliser Google Sites, un outil structuré de création de pages Web et de wikis. Pour en savoir plus, consultez l'Aide de Google Sites.

Choisir une option

Si vous débutez sur Google Cloud, nous vous conseillons de commencer par utiliser le type de technologie que vous connaissez déjà. Par exemple, si vous utilisez actuellement des serveurs matériels ou des machines virtuelles (VM) pour héberger votre site (peut-être avec un autre fournisseur cloud ou avec votre propre matériel), Compute Engine vous offre un modèle familier. Si vous employez déjà une offre Platform as a Service (PaaS), comme Heroku ou Engine Yard, App Engine peut constituer le meilleur point de départ. Si vous préférez l'informatique sans serveur, Cloud Run est probablement une bonne option pour vous.

Une fois familiarisé avec Google Cloud, vous pourrez explorer la richesse des produits et services proposés par la plate-forme. Par exemple, si vous avez commencé par utiliser Compute Engine, vous pouvez étendre les fonctionnalités de votre site avec Google Kubernetes Engine (GKE), ou migrer une partie ou l'ensemble de celles-ci vers App Engine et Cloud Run.

Vous trouverez un récapitulatif des options d'hébergement sur Google Cloud dans le tableau suivant :

Option Produit Stockage de données Équilibrage de charge Évolutivité Journalisation et surveillance
Site Web statique

Cloud Storage

Firebase Hosting

Bucket Cloud Storage

HTTP(S) facultatif

Automatique

Cloud Logging

Cloud Monitoring

Machines virtuelles Compute Engine

Cloud SQL, Cloud Storage, Firestore et Bigtable, ou un autre fournisseur de stockage externe.

Disques persistants sur disque dur, appelés disques persistants standards et disques persistants SSD.

HTTP(S)

Proxy TCP

Proxy SSL

Terminaison IPv6

Réseau

Interrégional

Interne

Automatique avec des groupes d'instances gérés

Cloud Logging

Cloud Monitoring

Console Monitoring

Conteneurs GKE Semblable à Compute Engine, mais interagissant différemment avec les disques persistants

Réseau

HTTP(S)

Autoscaler de cluster

Cloud Logging

Cloud Monitoring

Console Monitoring

Plate-forme gérée

App Engine

Services Google Cloud tels que Cloud SQL, Firestore, Cloud Storage et bases de données tierces accessibles

HTTP(S)

Géré par Google

Géré par Google

Cloud Logging

Cloud Monitoring

Console Monitoring

Sans serveur

Cloud Run

Services Google Cloud tels que Cloud SQL, Firestore, Cloud Storage et bases de données tierces accessibles

HTTP(S)

Géré par Google

Géré par Google

Cloud Logging

Cloud Monitoring

Console Monitoring

Cet article peut vous aider à vous familiariser avec les principales technologies utilisables pour l'hébergement Web sur Google Cloud et vous donner un aperçu de leur fonctionnement. Vous y trouverez des liens vers une documentation complète, des tutoriels et des articles relatifs aux solutions qui vous permettront d'approfondir vos connaissances lorsque vous serez prêt.

Comprendre les coûts

Étant donné qu'il existe de nombreuses variables et que chaque mise en œuvre est différente, nous ne proposons pas de conseils spécifiques relatifs aux coûts dans cet article. Pour comprendre les principes de Google concernant le fonctionnement de la tarification sur Google Cloud, consultez la page des tarifs. Pour comprendre la tarification des services individuels, consultez la section concernant les tarifs des produits. Vous pouvez également utiliser le Simulateur de coût pour estimer le coût de votre utilisation de Google Cloud. Vous pouvez fournir des détails sur les services que vous souhaitez utiliser, puis obtenir une estimation des tarifs.

Configurer des services de nom de domaine

En général, vous aurez besoin d'enregistrer un nom de domaine pour votre site. Vous pouvez utiliser un service public d'enregistrement de noms de domaine, tel que Google Domains, afin d'enregistrer un nom unique pour votre site. Si vous souhaitez contrôler totalement votre propre système de noms de domaine (DNS), vous pouvez utiliser Cloud DNS en tant que fournisseur DNS. La documentation de Cloud DNS inclut un guide de démarrage rapide facilitant la mise en route.

Si vous voulez utiliser un fournisseur DNS existant, vous devez en général créer quelques enregistrements avec ce fournisseur. Pour un nom de domaine comme example.com, vous allez créer un enregistrement A auprès de votre fournisseur DNS. Pour le sous-domaine www.example.com, vous allez créer un enregistrement CNAME pour www afin de le faire pointer vers le domaine example.com. L'enregistrement A mappe un nom d'hôte à une adresse IP. L'enregistrement CNAME crée un alias pour l'enregistrement A.

Si votre service d'enregistrement de noms de domaine est également votre fournisseur DNS, vous n'aurez probablement rien d'autre à faire. Si vous utilisez des fournisseurs différents pour l'enregistrement et le DNS, assurez-vous que votre service d'enregistrement de noms de domaine dispose des serveurs de noms appropriés associés à votre domaine.

Une fois les modifications DNS effectuées, la propagation des mises à jour des enregistrements peut prendre du temps, selon les valeurs TTL (Time To Live) de votre zone. S'il s'agit d'un nouveau nom d'hôte, les modifications prennent effet rapidement, car les résolveurs DNS n'ont pas mis en cache les valeurs précédentes et peuvent contacter le fournisseur DNS pour obtenir les informations nécessaires au routage des requêtes.

Héberger un site Web statique

Le moyen le plus simple de diffuser du contenu de site Web via HTTP(S) consiste à héberger des pages Web statiques. Les pages Web statiques sont diffusées telles qu'elles ont été écrites, généralement en HTML. L'utilisation d'un site Web statique est une bonne option si les pages de votre site changent rarement après leur publication, comme les articles de blog ou les pages faisant partie du site Web d'une petite entreprise. Vous pouvez réaliser de nombreuses actions avec les pages Web statiques. Toutefois, si vous avez besoin que votre site entretienne des interactions solides avec les utilisateurs via un code côté serveur, vous devez envisager d'opter pour les autres options décrites dans cet article.

Héberger un site Web statique avec Cloud Storage

Pour héberger un site statique dans Cloud Storage, vous devez créer un bucket Cloud Storage, y importer le contenu et tester votre nouveau site. Vous pouvez diffuser vos données directement depuis storage.googleapis.com, ou confirmer que vous êtes bien le propriétaire de votre domaine et utiliser votre nom de domaine.

Vous pouvez créer vos pages Web statiques comme bon vous semble. Par exemple, vous avez la possibilité de créer manuellement des pages en utilisant les langages HTML et CSS. Vous pouvez faire appel à un générateur de site statique tel que Jekyll, Ghost ou Hugo pour créer le contenu. Les générateurs de site statique vous permettent de créer un site Web statique en utilisant le format markdown, ainsi que les modèles et outils qu'ils fournissent. Les générateurs de site fournissent généralement un serveur Web local grâce auquel vous pouvez prévisualiser votre contenu.

Une fois que votre site statique fonctionne, vous pouvez mettre à jour les pages statiques en utilisant le processus de votre choix. Ce processus peut être aussi simple que de copier manuellement une page mise à jour dans le bucket. Vous pouvez choisir d'utiliser une approche plus automatisée, comme stocker votre contenu sur GitHub, puis utiliser un webhook afin d'exécuter un script qui met à jour le bucket. Un système encore plus avancé peut employer un outil d'intégration continue/de livraison continue (CI/CD), tel que Jenkins, pour mettre à jour le contenu du bucket. Jenkins dispose d'un plug-in Cloud Storage qui offre une étape post-build Google Cloud Storage Uploader pour la publication d'artefacts de compilation dans Cloud Storage.

Si vous disposez d'une application Web qui doit diffuser du contenu statique ou du contenu multimédia statique ajouté par les utilisateurs, Cloud Storage peut vous offrir un moyen rentable et efficace d'héberger et de diffuser ce contenu, tout en vous permettant de réduire le nombre de requêtes dynamiques adressées à votre application Web.

De plus, Cloud Storage peut accepter directement le contenu ajouté par les utilisateurs. Cette fonctionnalité permet aux utilisateurs d'importer des fichiers multimédias volumineux directement et de manière sécurisée, sans passer par un serveur proxy.

Pour optimiser les performances de votre site Web statique, consultez la page Bonnes pratiques relatives à Cloud Storage.

Pour en savoir plus, consultez les pages suivantes :

Héberger un site Web statique avec Firebase Hosting

Firebase Hosting offre un hébergement statique rapide et sécurisé pour votre application Web. Grâce à cette fonctionnalité, vous pouvez déployer à l'aide d'une seule commande des applications Web et du contenu statique sur un réseau de diffusion de contenu (CDN) à l'échelle mondiale.

Voici quelques avantages dont vous pouvez profiter lorsque vous utilisez Firebase Hosting :

  • Cette fonctionnalité dispose de la technologie SSL configurée automatiquement. Les certificats SSL sont provisionnés gratuitement pour les domaines personnalisés.
  • Tout votre contenu est diffusé via HTTPS.
  • Votre contenu est diffusé à destination de vos utilisateurs depuis les périphéries des réseaux CDN du monde entier.
  • Grâce à la CLI Firebase, votre application peut être opérationnelle en quelques secondes. Vous pouvez utiliser des outils de ligne de commande pour ajouter des cibles de déploiement à votre processus de compilation.
  • Vous pouvez profiter de fonctionnalités de gestion des releases, telles que le déploiement atomique de nouveaux éléments, la gestion complète des versions et les rollbacks en un seul clic.
  • L'hébergement offre une configuration utile pour les applications monopages et les sites semblables à des applications.
  • Hosting est conçu pour être utilisé de manière transparente avec d'autres fonctionnalités de Firebase.

Pour en savoir plus, consultez les pages suivantes :

Utiliser des machines virtuelles avec Compute Engine

Pour les cas d'utilisation de type Infrastructure as a Service (IaaS), Google Cloud fournit Compute Engine. Ce produit offre une infrastructure informatique robuste. Vous devez toutefois choisir et configurer les composants de la plate-forme que vous souhaitez utiliser. Avec Compute Engine, il vous incombe de configurer, d'administrer et de surveiller les systèmes. Google s'assure que les ressources sont disponibles, fiables et prêtes à l'emploi, mais vous êtes responsable de leur provisionnement et de leur gestion. L'avantage réside dans le fait que vous contrôlez entièrement les systèmes et disposez d'une flexibilité illimitée.

Vous pouvez vous servir de Compute Engine pour concevoir et déployer quasiment n'importe quel système d'hébergement de sites Web. Vous avez la possibilité d'utiliser des VM, appelées instances, pour créer votre application, comme si vous disposiez de votre propre infrastructure matérielle. Compute Engine offre plusieurs types de machines pour personnaliser votre configuration en fonction de vos besoins et de votre budget. Vous pouvez choisir les systèmes d'exploitation, les piles de développement, les langages, les frameworks, les services et les autres technologies logicielles que vous préférez.

Configurer automatiquement votre infrastructure avec Google Cloud Marketplace

Le moyen le plus simple de déployer une pile complète d'hébergement Web consiste à utiliser Google Cloud Marketplace. En quelques clics, vous pouvez déployer n'importe laquelle des 100 solutions entièrement réalisées avec Google Click to Deploy ou Bitnami.

Cloud Marketplace

Par exemple, vous pouvez configurer une pile LAMP ou WordPress avec Cloud Marketplace. Le système déploie une pile logicielle complète et opérationnelle en quelques minutes sur une seule instance. Avant de procéder au déploiement, Cloud Marketplace vous indique les coûts estimés pour l'exploitation du site, vous précise clairement les versions des composants logiciels qu'il installe pour vous, et vous permet de personnaliser votre configuration en modifiant les noms des instances de composants, en choisissant le type de machine et en sélectionnant une taille de disque. Une fois le déploiement réalisé, vous contrôlez entièrement les instances Compute Engine, leurs configurations et le logiciel.

Configurer manuellement

Vous pouvez également créer manuellement votre infrastructure sur Compute Engine, soit en construisant votre configuration à partir de zéro, soit en utilisant un déploiement sur Google Cloud Marketplace. Par exemple, vous souhaiterez peut-être utiliser une version d'un composant logiciel non proposé par Cloud Marketplace, ou bien installer et configurer vous-même tous les éléments.

Fournir un framework complet et de bonnes pratiques pour configurer un site Web dépasse le cadre de cet article. Toutefois, d'un point de vue général, l'aspect technique de la configuration d'une infrastructure d'hébergement Web sur Compute Engine requiert ce qui suit :

  • Comprendre les conditions requises : si vous créez un site Web, veillez à bien identifier les composants requis (par exemple, instances, besoins de stockage et infrastructure de mise en réseau). Si vous migrez votre application à partir d'une solution existante, vous avez probablement déjà cerné ces exigences. Toutefois, vous devez réfléchir à la manière dont votre configuration existante peut être mappée avec les services Google Cloud.
  • Planifier la conception : pensez à votre architecture dans son ensemble et élaborez votre plan de conception. Soyez aussi clair que possible.
  • Créer les composants : les composants que vous considérez généralement comme des éléments physiques, tels que les ordinateurs et les commutateurs réseau, sont fournis via des services dans Compute Engine. Par exemple, si vous voulez utiliser un ordinateur, vous devez créer une instance Compute Engine. Si vous souhaitez employer un disque dur persistant, vous devez également en créer une. Les outils de type Infrastructure as Code, tels que Terraform, rendent ce processus simple et reproductible.
  • Configurer et personnaliser : une fois que vous disposez des composants souhaités, vous devez les configurer, installer et configurer les logiciels, puis écrire et déployer le code de personnalisation dont vous avez besoin. Vous pouvez répliquer la configuration en exécutant des scripts shell, ce qui permet d'accélérer les déploiements ultérieurs. Terraform est également utile à cet égard, car il fournit des modèles de configuration déclaratifs et flexibles pour le déploiement automatique des ressources. Vous pouvez également recourir à des outils d'automatisation informatique tels que Puppet et Chef.
  • Déployer les éléments : Vous utiliserez vraisemblablement des pages Web et des images.
  • Tester le site : Vérifiez que tout fonctionne comme vous le souhaitez.
  • Déployer le site vers l'environnement de production : ouvrez votre site pour que tous puissent y accéder et l'utiliser.

Pour vous aider à démarrer et à savoir comment configurer manuellement des instances Compute Engine, consultez un ou plusieurs des tutoriels suivants :

Stocker des données avec Compute Engine

La plupart des sites Web ont besoin d'un type de stockage. Vous pouvez avoir besoin de stockage pour diverses raisons, telles que l'enregistrement des fichiers importés par vos utilisateurs et, bien sûr, des éléments utilisés par votre site.

Google Cloud propose différents services de stockage géré, y compris les services suivants :

  • Une base de données SQL dans Cloud SQL, qui est un service de base de données relationnelle entièrement géré pour MySQL, PostgreSQL et SQL Server.
  • Deux options pour le stockage de données NoSQL : Firestore et Bigtable.
  • Memorystore, un service de stockage de données en mémoire entièrement géré pour Redis et Memcached.
  • Un espace de stockage d'objets cohérent, évolutif et à grande capacité dans Cloud Storage, Cloud Storage inclut plusieurs classes :
    • Le stockage standard offre une disponibilité maximale.
    • Le stockage Nearline constitue une solution peu coûteuse, idéale pour les données auxquelles vous accédez moins d'une fois par mois.
    • Le stockage Coldline offre un service d'archivage économique, adapté aux données consultées moins d'une fois par trimestre.
    • Le stockage Archive constitue la solution la moins coûteuse en matière d'archivage, de sauvegarde et de reprise après sinistre.
  • Des disques persistants sur Compute Engine qui peuvent être utilisés comme espace de stockage principal pour vos instances. Compute Engine propose à la fois des disques persistants sur disque dur, appelés disques persistants standards, et des disques persistants SSD. Vous pouvez également choisir de configurer votre technologie de stockage préférée sur Compute Engine en utilisant des disques persistants. Par exemple, vous avez la possibilité de configurer PostgreSQL en tant que base de données SQL ou MongoDB en tant qu'espace de stockage NoSQL. Pour découvrir la gamme complète des services de stockage disponibles sur Google Cloud et leurs avantages, consultez la page Choisir une option de stockage.

Équilibrer la charge avec Compute Engine

Pour les sites Web fonctionnant à grande échelle, il est souvent nécessaire d'utiliser des technologies d'équilibrage de charge pour répartir la charge de travail entre les serveurs. Vous disposez de nombreuses options pour concevoir l'architecture de vos serveurs Web à équilibrage de charge sur Compute Engine, y compris les suivantes :

Le déploiement de l'équilibrage de charge est flexible. Vous pouvez donc utiliser Compute Engine avec vos solutions existantes. Par exemple, l'équilibrage de charge HTTP(S) à l'aide de Nginx est une solution possible à utiliser à la place de l'équilibreur de charge Compute Engine.

Distribution de contenu avec Compute Engine

Le temps de réponse est une métrique primordiale pour tout site Web. Il est donc souvent nécessaire d'utiliser un CDN pour réduire la latence et améliorer les performances, en particulier pour un site avec un trafic Web mondial.

Cloud CDN utilise des points de présence périphériques distribués à l'échelle mondiale par Google pour diffuser du contenu à partir des emplacements de cache les plus proches des utilisateurs. Cloud CDN fonctionne avec l'équilibrage de charge HTTP(S). Pour diffuser du contenu en dehors de Compute Engine et/ou de Cloud Storage à partir d'une seule adresse IP, activez Cloud CDN pour un équilibreur de charge HTTP(S).

Réaliser un autoscaling avec Compute Engine

Vous pouvez configurer votre architecture de façon à pouvoir ajouter et supprimer des serveurs en fonction de la demande. Grâce à cette approche, vous êtes en mesure de garantir le bon fonctionnement de votre site lors des pics de charge, tout en maîtrisant les coûts pendant les périodes de demandes habituelles. Compute Engine propose un autoscaler que vous pouvez utiliser dans ce but.

L'autoscaling est une fonctionnalité des groupes d'instances gérés. Un groupe d'instances géré est un pool d'instances de VM homogènes créées à partir d'un même modèle d'instance. Un autoscaler ajoute ou supprime des instances dans un groupe d'instances géré. Bien que Compute Engine dispose de groupes d'instances gérés et non gérés, seuls les groupes d'instances gérés peuvent être utilisés avec un autoscaler. Pour en savoir plus, reportez-vous à la page traitant de l'autoscaling sur Compute Engine.

Consultez la page sur la création d'applications Web évolutives et résilientes pour en savoir plus à ce sujet.

Journaliser et surveiller des données avec Compute Engine

Google Cloud inclut des fonctionnalités vous permettant de surveiller ce qu'il se passe sur votre site Web.

Cloud Logging collecte et stocke les journaux des applications et des services sur Google Cloud. Vous pouvez afficher ou exporter ces journaux et intégrer des journaux tiers à l'aide d'un agent de journalisation.

Logging

Cloud Monitoring fournit des tableaux de bord et des alertes pour votre site. Vous configurez Monitoring à l'aide de Google Cloud Console. Vous pouvez consulter les métriques de performances des services cloud, des VM et des serveurs Open Source courants tels que MongoDB, Apache, Nginx et Elasticsearch. L'API Cloud Monitoring vous permet d'extraire des données de surveillance et de créer des métriques personnalisées.

Cloud Monitoring propose également des tests de disponibilité, qui envoient des requêtes à vos sites Web pour vérifier s'ils répondent. Vous pouvez surveiller la disponibilité d'un site Web en déployant une règle d'alerte qui crée un incident en cas d'échec du test de disponibilité.

Gérer DevOps avec Compute Engine

Pour en savoir plus sur la gestion de DevOps avec Compute Engine, consultez les articles suivants :

Utiliser des conteneurs avec GKE

Vous utilisez peut-être déjà des conteneurs, tels que des conteneurs Docker. Pour l'hébergement Web, les conteneurs offrent plusieurs avantages, y compris les suivants :

  • Séparation des composants : Vous pouvez séparer les différents composants de votre application Web grâce à des conteneurs. Supposons, par exemple, que votre site utilise un serveur Web et une base de données. Vous pouvez exécuter ces composants dans des conteneurs distincts, en modifiant et en mettant à jour un composant sans affecter l'autre. Lorsque la conception de votre application se complexifie, les conteneurs sont une option appropriée pour une architecture orientée services, y compris pour les microservices. Ce type de conception est compatible avec l'évolutivité, entre autres objectifs.
  • Portabilité : un conteneur dispose de tout ce dont il a besoin pour s'exécuter, c'est-à-dire qu'il regroupe votre application et ses dépendances. Vous pouvez exécuter vos conteneurs sur plusieurs plates-formes différentes, sans vous soucier des détails sous-jacents du système.
  • Déploiement rapide : au moment du déploiement, votre système est conçu à partir d'un ensemble de définitions et d'images, de sorte que les composants puissent être déployés rapidement de manière fiable et automatique. Les conteneurs sont généralement petits et se déploient beaucoup plus rapidement que les machines virtuelles, par exemple.

L'informatique en conteneurs sur Google Cloud offre encore plus d'avantages pour l'hébergement Web, y compris les suivants :

  • Orchestration : GKE est un service géré basé sur Kubernetes, le système d'orchestration de conteneurs Open Source conçu par Google. Avec GKE, votre code s'exécute dans des conteneurs faisant partie d'un cluster composé d'instances Compute Engine. Plutôt que d'administrer des conteneurs individuels, ou de créer et d'arrêter manuellement chaque conteneur, vous pouvez gérer automatiquement le cluster via GKE, qui utilise la configuration que vous avez définie.
  • Enregistrement d'images : Container Registry ou Artifact Registry offrent un espace de stockage privé pour les images Docker sur Google Cloud. Vous pouvez accéder au registre via un point de terminaison HTTPS afin de récupérer des images depuis n'importe quelle machine, qu'il s'agisse d'une instance Compute Engine ou de votre propre matériel. Le service de registre héberge vos images personnalisées dans Cloud Storage, au sein de votre projet Google Cloud. Cette approche garantit par défaut que vos images personnalisées ne sont accessibles qu'aux entités principales ayant accès à votre projet.
  • Mobilité : cela signifie que vous avez la possibilité de déplacer et combiner des charges de travail avec d'autres fournisseurs cloud, ou de combiner des charges de travail cloud computing avec des mises en œuvre sur site pour créer une solution hybride.

Stocker des données avec GKE

GKE est exécuté sur Google Cloud et utilise des instances Compute Engine en tant que nœuds. Vos options de stockage présentent donc de nombreuses similitudes avec le mécanisme de stockage utilisé dans Compute Engine. Vous pouvez accéder à Cloud SQL, Cloud Storage, Firestore et Bigtable via leurs API. Vous avez également la possibilité d'utiliser un autre fournisseur de stockage externe si vous le souhaitez. Toutefois, GKE interagit avec les disques persistants Compute Engine différemment d'une instance Compute Engine classique.

Une instance Compute Engine inclut un disque associé. Lorsque vous utilisez Compute Engine, le volume de disque reste associé à l'instance tant que celle-ci existe. Vous pouvez même dissocier le disque et vous en servir avec une autre instance. Toutefois, dans un conteneur, les fichiers sur disque sont éphémères. Lorsqu'un conteneur redémarre (après un plantage, par exemple), les fichiers sur disque sont perdus. Kubernetes résout ce problème en utilisant des abstractions de volume et de classe de stockage. GCE PD est un type de classe de stockage. Cela signifie que vous pouvez utiliser des disques persistants Compute Engine avec des conteneurs pour empêcher la suppression de vos fichiers de données lorsque vous vous servez de GKE.

Pour comprendre les caractéristiques et les avantages d'un volume, vous devez d'abord vous familiariser un peu avec les pods. Vous pouvez considérer un pod comme un hôte logique spécifique à une application pour un ou plusieurs conteneurs. Un pod s'exécute sur une instance de nœud. Lorsque les conteneurs sont membres d'un pod, ils peuvent partager plusieurs ressources, y compris un ensemble de volumes de stockage partagés. Ces volumes permettent aux données de résister aux redémarrages des conteneurs et d'être partagées entre les conteneurs du pod. Vous pouvez bien sûr également utiliser un conteneur et un volume uniques dans un pod, mais ce dernier est une abstraction nécessaire à la connexion logique de ces ressources les unes aux autres.

Pour obtenir un exemple, consultez le tutoriel Utiliser des disques persistants avec WordPress et MySQL.

Équilibrer la charge avec GKE

De nombreuses grandes architectures d'hébergement Web ont besoin que plusieurs serveurs s'exécutent et soient capables de partager les demandes de trafic. GKE vous permet de créer et gérer plusieurs conteneurs, nœuds et pods. Il convient donc parfaitement à un système d'hébergement Web à équilibrage de charge.

Utiliser l'équilibrage de charge réseau

Le moyen le plus simple de créer un équilibreur de charge dans GKE consiste à utiliser le mécanisme d'équilibrage de charge réseau de Compute Engine. L'équilibrage de charge réseau permet d'équilibrer la charge de vos systèmes en fonction des données IP (Internet Protocol) entrantes, telles que l'adresse, le port et le type de protocole. Ce procédé utilise des règles de transfert. Ces règles pointent vers les pools cibles qui répertorient les instances pouvant être utilisées pour l'équilibrage de charge.

Avec l'équilibrage de charge réseau, vous pouvez équilibrer la charge de protocoles supplémentaires basés sur les protocoles TCP/UDP, tels que le trafic SMTP. Votre application peut aussi directement inspecter les paquets.

Vous pouvez déployer un équilibrage de charge réseau simplement en ajoutant le champ type: LoadBalancer à votre fichier de configuration de service.

Utiliser l'équilibrage de charge HTTP(S)

Si vous avez besoin de fonctionnalités d'équilibrage de charge plus avancées (telles que l'équilibrage de charge HTTPS, basé sur le contenu ou interrégional), vous pouvez intégrer votre service GKE à la fonctionnalité d'équilibrage de charge HTTP/HTTPS de Compute Engine. Kubernetes fournit l'entrée qui intègre un ensemble de règles permettant de diriger le trafic externe vers les points de terminaison Kubernetes. Dans GKE, le provisionnement et la configuration de l'équilibreur de charge HTTP/HTTPS de Compute Engine sont gérés par une ressource Entrée (Ingress).

Pour en savoir plus sur l'utilisation de l'équilibrage de charge HTTP/HTTPS dans GKE, consultez la page Configurer l'équilibrage de charge HTTP avec l'objet Entrée.

Procéder au scaling avec GKE

Pour redimensionner automatiquement des clusters, vous pouvez vous servir de l'autoscaler de cluster. Cette fonctionnalité permet de vérifier régulièrement si des pods attendent un nœud comportant des ressources libres sans être planifiés. Si de tels pods existent, l'autoscaler redimensionne le pool de nœuds si le redimensionnement permet de planifier les pods en attente.

L'autoscaler de cluster surveille également l'utilisation de tous les nœuds. Si un nœud n'est pas utilisé pendant une période prolongée et si tous ses pods peuvent être planifiés ailleurs, il est supprimé.

Consultez la documentation sur l'autoscaler de cluster pour en savoir plus sur ce dernier, ses limites et les bonnes pratiques associées.

Assurer la journalisation et la surveillance avec GKE

Comme sur Compute Engine, Logging et Monitoring fournissent des services de journalisation et de surveillance. Logging recueille et stocke les journaux des applications et des services. Vous pouvez afficher ou exporter ces journaux et intégrer des journaux tiers à l'aide d'un agent de journalisation.

Monitoring fournit des tableaux de bord et des alertes pour votre site. Vous configurez Monitoring à l'aide de Google Cloud Console. Vous pouvez consulter les métriques de performances des services cloud, des VM et des serveurs Open Source courants tels que MongoDB, Apache, Nginx et Elasticsearch. L'API Monitoring vous permet de récupérer des données de surveillance et de créer des métriques personnalisées.

Gérer le DevOps avec GKE

En utilisant GKE, vous profitez déjà de nombreux avantages que l'on associe généralement au concept de DevOps, surtout en termes de simplification de la création de packages, du déploiement et de la gestion. Pour vos besoins de workflows CI/CD, vous pouvez vous servir d'outils conçus pour le cloud, tels que Cloud Build et Cloud Deploy, ou d'outils populaires tels que Jenkins. Pour en savoir plus, consultez les articles suivants :

Compiler sur une plate-forme gérée avec App Engine

Sur Google Cloud, l'infrastructure Platform as a Service (PaaS) gérée s'appelle App Engine. Lorsque vous développez votre site Web sur App Engine, vous devez vous concentrer sur le codage de vos fonctionnalités et laisser Google s'occuper de la gestion de l'infrastructure secondaire. Le service App Engine offre des fonctionnalités très variées qui rendent l'évolutivité, l'équilibrage de charge, la journalisation, la surveillance et la sécurité bien plus faciles à mettre en place que si vous deviez créer et gérer ces processus vous-même. Il vous permet de coder dans divers langages de programmation et peut utiliser de nombreux autres services Google Cloud.

App Engine fournit l'environnement standard qui vous permet d'exécuter des applications dans un environnement sécurisé en mode bac à sable. L'environnement standard App Engine répartit les requêtes sur plusieurs serveurs et adapte ces derniers à la demande de trafic. Votre application s'exécute dans son propre environnement sécurisé et fiable, indépendant du matériel, du système d'exploitation ou de l'emplacement physique du serveur.

Application Web utilisant App Engine et d'autres composants

App Engine vous offre des options supplémentaires grâce à l'environnement flexible. Lorsque vous utilisez cet environnement, votre application s'exécute sur des instances Compute Engine configurables, mais App Engine gère l'environnement d'hébergement pour vous. Cela signifie que vous pouvez utiliser des environnements d'exécution supplémentaires (y compris personnalisés) pour avoir plus de choix concernant les langages de programmation. Vous avez également la possibilité de profiter de la flexibilité offerte par Compute Engine avec, entre autres, des options de processeur et de mémoire très variées.

Langages de programmation

L'environnement standard App Engine fournit des environnements d'exécution par défaut. Vous écrivez du code source dans des versions spécifiques des langages de programmation compatibles.

Avec l'environnement flexible, vous écrivez du code source dans une version de n'importe quel langage de programmation compatible. Vous pouvez personnaliser ces environnements d'exécution, ou fournir votre propre environnement d'exécution avec une image Docker ou un Dockerfile personnalisés.

Si le langage de programmation que vous utilisez est une préoccupation majeure, vous devez déterminer si les environnements d'exécution fournis par l'environnement standard App Engine répondent à vos besoins. Si tel n'est pas le cas, vous devez envisager d'utiliser l'environnement flexible.

Pour savoir quel environnement répond le mieux aux besoins de votre application, consultez la page Choisir un environnement App Engine.

Tutoriels de prise en main par langage

Les tutoriels suivants peuvent vous aider à vous familiariser avec l'environnement standard App Engine :

Les tutoriels suivants peuvent vous aider à vous familiariser avec l'environnement flexible :

Stocker des données avec App Engine

App Engine vous offre plusieurs options pour stocker vos données :

Nom Structure Cohérence
Firestore Sans schéma Fortement cohérent
Cloud SQL Relationnelle Fortement cohérent
Cloud Storage Fichiers et leurs métadonnées associées Fortement cohérent, sauf lors de l'exécution d'opérations de listes qui obtiennent la liste des buckets ou des objets.

Vous pouvez également utiliser plusieurs bases de données tierces avec l'environnement standard.

Pour en savoir plus sur le stockage dans App Engine, consultez la page Choisir une option de stockage, puis sélectionnez le langage de programmation souhaité.

Si vous utilisez l'environnement flexible, vous pouvez vous servir des mêmes options de stockage, de la même façon qu'avec l'environnement standard, ainsi qu'un éventail plus large de bases de données tierces. Pour en savoir plus sur les bases de données tierces dans l'environnement flexible, consultez la page Utiliser des bases de données tierces.

Équilibrer la charge et réaliser un autoscaling avec App Engine

Par défaut, App Engine achemine automatiquement les requêtes entrantes vers les instances backend appropriées et effectue l'équilibrage de charge à votre place. Toutefois, si vous souhaitez profiter des fonctionnalités complètes d'équilibrage de charge HTTP(S) pensées pour les entreprises de Google Cloud, vous pouvez utiliser des groupes de points de terminaison du réseau sans serveur.

Pour le scaling, App Engine peut créer et arrêter automatiquement des instances lorsque le trafic fluctue, ou vous pouvez spécifier un nombre d'instances à exécuter quelle que soit la quantité de trafic.

Assurer la journalisation et la surveillance avec App Engine

Dans App Engine, les requêtes sont enregistrées automatiquement. Vous pouvez afficher les journaux correspondants dans la console Google Cloud. App Engine fonctionne également avec des bibliothèques standards spécifiques aux langages utilisés, qui offrent une fonctionnalité de journalisation et transmettent les entrées de journal aux journaux de la console Google Cloud. Par exemple, en langage Python, vous pouvez utiliser le module de journalisation Python standard, tandis qu'en langage Java, vous pouvez intégrer l'appender Logback ou java.util.logging à Cloud Logging. Cette approche active toutes les fonctionnalités de Cloud Logging et ne nécessite que quelques lignes de code spécifique à Google Cloud.

Cloud Monitoring offre des fonctionnalités permettant de surveiller vos applications App Engine. La console Google Cloud vous permet de surveiller, entre autres, les incidents et les tests de disponibilité.

Créer une application sur une plate-forme sans serveur avec Cloud Run

La plate-forme sans serveur de Google Cloud vous permet d'écrire votre code sans vous soucier de l'infrastructure sous-jacente. Vous pouvez créer des applications complètes sans serveur à l'aide des fonctionnalités de stockage, de base de données, de machine learning de Google Cloud et bien d'autres encore.

Pour vos sites Web conteneurisés, vous pouvez également les déployer sur Cloud Run en plus de l'utilisation de GKE. Cloud Run est une plate-forme sans serveur entièrement gérée qui vous permet d'exécuter des applications en conteneurs hautement évolutives sur Google Cloud. Vous ne payez que pour la durée d'exécution de votre code.

En utilisant des conteneurs avec Cloud Run, vous pouvez tirer parti de technologies matures telles que Nginx, Express.js et Django pour créer vos sites Web, accéder à votre base de données SQL sur Cloud SQL et afficher des pages HTML dynamiques.

La documentation de Cloud Run inclut un guide de démarrage rapide facilitant la mise en route.

Stocker des données avec Cloud Run

Les conteneurs Cloud Run sont éphémères et vous devez comprendre leurs quotas et limites pour vos cas d'utilisation. Les fichiers peuvent être stockés temporairement pour être traités dans une instance de conteneur, mais ce stockage provient de la mémoire disponible pour le service, comme décrit dans le contrat d'exécution.

Pour le stockage persistant, comme pour App Engine, vous pouvez choisir des services Google Cloud tels que Cloud Storage, Firestore ou Cloud SQL. Vous pouvez également utiliser une solution de stockage tierce.

Équilibrage de charge et autoscaling avec Cloud Run

Par défaut, lorsque vous créez sur Cloud Run, il achemine automatiquement les requêtes entrantes vers les conteneurs backend appropriés et effectue l'équilibrage de charge à votre place. Toutefois, si vous souhaitez profiter des fonctionnalités complètes d'équilibrage de charge HTTP(S) pensées pour les entreprises de Google Cloud, vous pouvez utiliser des groupes de points de terminaison du réseau sans serveur.

Avec l'équilibrage de charge HTTP(S), vous pouvez activer Cloud CDN ou diffuser le trafic depuis plusieurs régions. De plus, vous pouvez utiliser un middleware tel que API Gateway pour améliorer votre service.

Pour Cloud Run, Google Cloud gère l'autoscaling des instances de conteneur à votre place. Chaque révision est automatiquement mise à l'échelle au nombre d'instances de conteneur nécessaires pour traiter toutes les requêtes entrantes. Lorsqu'une révision ne reçoit aucun trafic, un scaling à zéro instance de conteneur est effectué par défaut. Toutefois, si vous le souhaitez, vous pouvez modifier cette valeur par défaut pour spécifier qu'une instance doit rester inactive ou en attente à l'aide du paramètre nombre minimal d'instances.

Journalisation et surveillance avec Cloud Run

Cloud Run comporte deux types de journaux qui sont automatiquement envoyés à Cloud Logging :

  • Journaux de requête : journaux des requêtes envoyées aux services Cloud Run. Ces journaux sont créés automatiquement.
  • Journaux de conteneur : journaux émis par les instances de conteneur, généralement à partir de votre propre code, écrits dans les emplacements compatibles, comme décrit dans la section Écrire des journaux de conteneur.

Vous pouvez afficher les journaux de votre service de plusieurs manières :

  • Utiliser la page Cloud Run dans la console Google Cloud.
  • Utiliser l'explorateur de journaux Cloud Logging dans la console Google Cloud

Ces deux méthodes de visualisation vous permettent d'examiner les mêmes journaux stockés dans Cloud Logging, mais l'explorateur de journaux fournit plus de détails et davantage de fonctionnalités de filtrage.

Cloud Monitoring fournit une surveillance des performances de Cloud Run, des métriques, des tests de disponibilité, ainsi que des alertes pour envoyer des notifications lorsque certains seuils de métriques sont dépassés. Les tarifs de Google Cloud Observability s'appliquent, ce qui signifie que les métriques sont gratuites sur la version entièrement gérée de Cloud Run. Notez que vous pouvez également utiliser des métriques personnalisées Cloud Monitoring.

Cloud Run est intégré à Cloud Monitoring, sans installation ni configuration requise. Cela signifie que les métriques de vos services Cloud Run sont automatiquement capturées lors de leur exécution.

Développer des systèmes de gestion de contenu

Lorsque vous hébergez un site Web, vous devez gérer ses éléments. Cloud Storage offre un dépôt global pour ces derniers. Une architecture commune déploie le contenu statique dans Cloud Storage, puis se synchronise avec Compute Engine pour afficher les pages dynamiques. Le service Cloud Storage est compatible avec de nombreux systèmes de gestion de contenu tiers tels que WordPress, Drupal et Joomla. Il propose également une API compatible avec Amazon S3 de sorte que tout système fonctionnant avec Amazon S3 puisse être utilisé avec Cloud Storage.

Le diagramme ci-dessous présente un exemple d'architecture pour un système de gestion de contenu. Système de gestion de contenu sur Google Cloud

Étapes suivantes

  • Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Centre d'architecture cloud.