Diffuser un site Web

Dans cet article, nous expliquons comment héberger un site Web sur Google Cloud Platform (GCP). GCP offre une plate-forme robuste, flexible, fiable et évolutive pour diffuser des sites Web. Google a conçu GCP en utilisant la même infrastructure que celle lui permettant de diffuser du contenu provenant de sites tels que Google.com, YouTube et Gmail. Vous pouvez choisir de diffuser 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 de diffusion Web ;
  • êtes en train d'évaluer si vous migrez votre site vers GCP, 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 avec GCP, 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.

Une fois familiarisé avec GCP, 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 ces dernières vers App Engine.

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

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

Cloud Storage

Firebase Hosting

Bucket Cloud Storage Non disponible Méthode automatique n/a
Machines virtuelles Instance

API Cloud SQL Admin, API Cloud Storage, API Cloud Datastore et API Cloud 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

Méthode automatique avec des groupes d'instances gérés

Stackdriver Logging

Stackdriver Monitoring

Console Monitoring

Conteneurs GKE Semblable à Compute Engine, mais interagissant différemment avec les disques persistants Réseau
HTTP(S)
Autoscaler de cluster

Stackdriver Logging

Stackdriver Monitoring

Console Monitoring

Plate-forme gérée App Engine Google s'en charge pour vous Google s'en charge pour vous Google s'en charge pour vous Google s'en charge pour vous

Cet article peut vous aider à vous familiariser avec les principales technologies utilisables pour la diffusion Web sur GCP et vous donner un aperçu du fonctionnement de ces dernières. 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 GCP, consultez la page Tarifs. Pour comprendre la tarification de chaque service, consultez la section relative aux tarifs par produit. Vous pouvez également vous servir de certains outils pour vous aider à évaluer les coûts d'utilisation de GCP.

  • Utilisez le simulateur de coût pour évaluer votre utilisation de GCP. Vous pouvez fournir des détails sur les services que vous souhaitez utiliser, puis obtenir une estimation des tarifs.
  • Utilisez l'outil de calcul du coût total de possession pour évaluer les coûts relatifs engendrés par l'exécution de votre charge de calcul sur GCP. Il fournit plusieurs informations que vous pouvez modifier pour modéliser les coûts, puis compare les coûts estimés sur GCP et Amazon Web Services (AWS). Cet outil ne modélise pas tous les composants d'une application standard, tels que le stockage et la mise en réseau.

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 relative à 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 avec 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, telles que des articles de blog ou des 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), GCP 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 de diffusion 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 Platform Marketplace

Le moyen le plus simple de déployer une pile complète de diffusion Web consiste à utiliser Google Cloud Platform 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.

GCP Marketplace

Par exemple, vous pouvez configurer une pile LAMP ou WordPress avec GCP Marketplace. Le système déploie une pile logicielle complète et opérationnelle en quelques minutes sur une seule instance. Avant que vous procédiez au déploiement, GCP 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 choisir de créer manuellement votre infrastructure sur Compute Engine, soit en construisant votre configuration à partir de zéro, soit en utilisant un déploiement sur GCP Marketplace. Par exemple, vous souhaiterez peut-être utiliser une version d'un composant logiciel non proposé par GCP 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 de diffusion 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 depuis 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 GCP.
  • 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. Cloud Deployment Manager rend 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. Deployment Manager 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 aussi tirer parti d'outils d'automatisation informatique tels que Puppet et Chef.
  • Déployer les éléments : vous utiliserez vraisemblablement des pages Web et des images.
  • Tester : vérifiez que tout fonctionne comme vous le souhaitez.
  • Déployer 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.

GCP offre plusieurs services de stockage gérés, y compris les suivants :

  • Une base de données SQL dans Cloud SQL, basée sur MySQL.
  • Deux options pour le stockage de données NoSQL (Cloud Datastore et Cloud Bigtable).
  • Un espace de stockage d'objets cohérent, évolutif et à grande capacité dans Cloud Storage, qui inclut plusieurs classes :
    • Le stockage multirégional offre une disponibilité maximale et une redondance géographique.
    • Le stockage régional offre une disponibilité maximale et un emplacement de stockage localisé.
    • 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 constitue la solution la moins coûteuse pour l'archivage, la sauvegarde et la 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 standards, qui sont basés sur un disque dur, 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 GCP 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. Consultez la page Équilibrage de charge interne par autoscaling avec HAProxy et Consul pour obtenir des exemples, et en savoir plus sur l'autoscaling appliqué à la fois à l'équilibrage de charge HAProxy et au serveur backend. Reportez-vous à la page Équilibrage de charge HTTP(S) à l'aide de NGINX pour découvrir une solution utilisable à 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 relative à la création d'applications Web évolutives et résilientes pour en savoir plus à ce sujet.

Assurer la journalisation et la surveillance avec Compute Engine

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

Stackdriver Logging collecte et stocke les journaux des applications et des services sur GCP. Vous pouvez afficher ou exporter des journaux, de même qu'intégrer des journaux tiers à l'aide d'un agent de journalisation.

Logging

Stackdriver Monitoring fournit des tableaux de bord et des alertes pour votre site. Pour configurer ce service, utilisez la console Stackdriver Monitoring. 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 Stackdriver Monitoring vous offre également la possibilité de récupérer les données de surveillance et de créer des métriques personnalisées.

Tableau de bord Monitoring

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 la diffusion 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. À mesure que la conception de votre application devient plus complexe, les conteneurs s'avèrent 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 GCP offre encore plus d'avantages pour la diffusion 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 offre un espace de stockage privé sur GCP pour les images Docker. Vous pouvez accéder à Container Registry via un point de terminaison HTTPS, ce qui vous permet 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 GCP. Cette approche garantit par défaut que vos images personnalisées ne sont accessibles qu'aux membres du 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 GCP 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, Cloud Datastore et Cloud 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 une abstraction de volume. gcePersistentDisk correspond à un type de volume. 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 de diffusion 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 de diffusion 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 relative à 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. Pour configurer ce service, utilisez la console Stackdriver Monitoring. 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 populaires tels que Jenkins. Pour en savoir plus, consultez les articles suivants :

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

Sur GCP, 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 GCP.

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
Cloud Datastore Sans schéma Fortement cohérent, sauf lors de l'exécution de requêtes globales
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

Lorsque vous utilisez App Engine, l'équilibrage de charge et l'autoscaling sont automatiquement gérés pour vous.

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 GCP. App Engine fonctionne également avec des bibliothèques standards spécifiques aux langages utilisés, qui offrent des fonctionnalités de journalisation et transmettent les entrées de journal aux journaux de la console GCP. Par exemple, en langage Python, vous pouvez utiliser le module de journalisation Python standard, tandis qu'en langage Java, vous avez la possibilité d'employer l'API java.util.logging.Logger.

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

Développer des systèmes de gestion de contenu

Lorsque vous diffusez 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.

Pour découvrir un exemple d'architecture d'un système de gestion de contenu, consultez la page relative à la gestion de contenu.

Système de gestion de contenu sur GCP

Étape suivante

  • Testez par vous-même d'autres fonctionnalités de Google Cloud Platform. Découvrez nos tutoriels.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…