Diffuser des sites 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 utilisée par Google pour 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 la conception de l'infrastructure qui répond 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.

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 sur votre propre matériel, Google Compute Engine propose un modèle qui vous sera familier. Si vous utilisez déjà une offre de Platform as a Service (PaaS), comme Heroku ou Engine Yard, Google App Engine est peut-être le meilleur point de départ.

Une fois familiarisé avec GCP, vous pourrez commencer à 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 augmenter les capacités de votre site en utilisant Google Kubernetes Engine, ou migrer l'ensemble ou une partie de ses fonctionnalités 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 Non disponible
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 Google Kubernetes Engine (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

En lisant l'intégralité de cet article, vous pourrez comprendre les principales technologies que vous pouvez utiliser pour la diffusion Web sur GCP. Vous aurez également un aperçu du fonctionnement de ces technologies. Vous y trouverez des liens vers des articles de documentation complète, de tutoriels et de solutions qui peuvent vous aider à aller plus loin lorsque vous serez prêt.

Comprendre les coûts

Parce qu'il existe de nombreuses variables et que chaque mise en œuvre peut être totalement différente, nous ne proposons pas de conseils spécifiques sur les 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.

  • Le simulateur de coût vous permet d'évaluer facilement et rapidement le coût de ce service. Vous pouvez fournir des détails sur les services que vous souhaitez utiliser, puis obtenir une estimation des tarifs.
  • L'outil de calcul du coût total de possession (TCO) évalue les coûts relatifs à l'exécution de votre charge de calcul dans le cloud et fournit une estimation financière. Il fournit plusieurs entrées que vous pouvez modifier pour modéliser des coûts, puis compare les coûts estimés sur Cloud Platform et Amazon Web Services. Cet outil ne modélise pas tous les composants d'une application type, 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 entièrement votre propre système de noms de domaine (DNS), vous pouvez utiliser Google Cloud DNS en tant que fournisseur DNS. La documentation de Cloud DNS inclut un guide de démarrage rapide pour vous aider.

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 tel que example.com, vous devez créer un enregistrement A avec votre fournisseur DNS. Pour le sous-domaine www.example.com, vous créez un enregistrement CNAME pour que www pointe 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 vos 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 devraient être prises en compte rapidement, car les outils de résolution DNS n'auront pas mis en cache les valeurs précédentes et contacteront le fournisseur DNS pour obtenir les informations nécessaires à l'acheminement 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 vous pouvez valider que vous êtes propriétaire de votre domaine et utiliser le nom de votre domaine. Dans les deux cas, vous profiterez d'une diffusion rapide et cohérente à partir de caches périphériques à l'échelle mondiale.

Vous pouvez créer vos pages Web statiques comme bon vous semble. Par exemple, vous pouvez créer manuellement des pages en utilisant les langages HTML et CSS. Vous pouvez utiliser un générateur de site statique, tel que Jekyll, Ghost ou Hugo, pour en créer le contenu. Les générateurs de site statique facilitent la création d'un site Web statique en vous permettant d'écrire au format Markdown, ainsi qu'en vous proposant différents modèles et outils. 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 utiliser 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 de Google Cloud Storage Uploader pour la publication d'artefacts de compilation dans Cloud Storage.

Si vous avez une application Web qui doit diffuser du contenu statique ou des médias statiques ajoutés par les utilisateurs, l'utilisation de Cloud Storage peut être un moyen rentable et efficace d'héberger et de diffuser ce contenu, tout en réduisant 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 améliorer les performances de votre site Web statique, consultez la page Bonne pratiques pour Google 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 rapidement et facilement des applications Web et du contenu statique sur un réseau de diffusion de contenu (CDN) au niveau mondial, à l'aide d'une seule commande.

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

  • Firebase Hosting dispose de la technologie SSL configurée automatiquement afin que le contenu soit toujours diffusé en toute sécurité. Il provisionne gratuitement les certificats SSL sur des domaines personnalisés.
  • Tout votre contenu est diffusé via HTTPS.
  • Votre contenu est diffusé rapidement à 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. Les outils de ligne de commande facilitent l'ajout de 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.
  • Hosting offre une configuration utile pour les applications monopages et les sites ressemblant plus à 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 l'offre Infrastructure as a Service (IaaS), GCP propose Google 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 est de votre responsabilité 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 est que vous contrôlez entièrement les systèmes et disposez d'une flexibilité illimitée.

Servez-vous de Compute Engine pour concevoir et déployer presque n'importe quel système de diffusion de site Web. Vous pouvez utiliser des machines virtuelles, appelées instances, pour développer 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 avec GCP Marketplace

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

Google Cloud Platform Marketplace

Par exemple, il est facile de 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 lanciez le déploiement, GCP Marketplace vous indique les coûts estimés d'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 le nom de l'instance du composant, en choisissant le type de machine et en sélectionnant une taille de disque, par exemple. 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 souhaitez peut-être utiliser une version spécifique d'un composant logiciel non proposé par GCP Marketplace, ou vous préférez peut-être tout installer et tout configurer vous-même.

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

  • Comprendre les conditions requises : si vous créez un nouveau site Web, assurez-vous de bien comprendre les composants dont vous aurez besoin, tels que les instances, les besoins en matière de stockage et l'infrastructure de mise en réseau. Si vous migrez votre application depuis une solution existante, vous avez probablement déjà compris ces conditions, mais vous devrez réfléchir à la manière dont votre configuration existante est mappée aux 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 pouvez habituellement qualifier d'é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 voulez un disque dur persistant, vous devez également en créer une. Google Cloud Deployment Manager en fait un processus simple et reproductible.
    • Configurer et personnaliser. Une fois que vous avez les composants que vous souhaitez, vous devez les configurer, installer et configurer les logiciels, écrire et déployer tout 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. Cloud Deployment Manager est également utile à cet égard, car il fournit des modèles de configuration déclaratifs et flexibles pour le déploiement automatique de ressources. Vous pouvez également tirer parti d'outils d'automatisation informatique tels que Puppet et Chef.
  • Déployer les éléments : a priori, vous aurez des pages Web et des images entre autres.
  • Tester : vérifiez que tout fonctionne comme vous le souhaitez.
  • Déployer vers l'environnement de production : ouvrez votre site pour que le monde entier puisse y accéder et l'utiliser.

Pour vous aider à démarrer et à comprendre la configuration manuelle d'instances Compute Engine, essayez 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 stockage d'objets cohérent, évolutif et à grande capacité dans Cloud Storage. qui est disponible en plusieurs versions :
    • 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 pouvez configurer PostgreSQL en tant que base de données SQL, ou MongoDB en tant que 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 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, et vous pouvez utiliser Compute Engine avec vos solutions existantes. Consultez la page Équilibrage de charge interne par autoscaling avec HAProxy et Consul pour découvrir des exemples et en savoir plus sur l'autoscaling appliqué à la fois à l'équilibrage de charge HAProxy et au serveur backend, ainsi que sur l'équilibrage de charge HTTP(S) à l'aide de NGINX pour 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.

Google 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 Google Compute Engine, de Google Cloud Storage ou des deux à partir d'une seule adresse IP, il vous suffit d'activer Cloud CDN pour un équilibreur de charge HTTP(S).

Réaliser un autoscaling avec Compute Engine

Vous pouvez configurer votre architecture pour lui permettre d'ajouter et de supprimer des serveurs en fonction des demandes. 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. La documentation Compute Engine inclut un guide complet sur l'autoscaling dans Compute Engine.

Consultez la page relative au développement d'applications Web évolutives et résilientes pour en savoir plus à ce sujet.

Journaliser et surveiller des données avec Compute Engine

GCP inclut des fonctionnalités grâce auxquelles vous pouvez surveiller ce qu'il se passe sur votre site Web.

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

Stackdriver Logging

Google Stackdriver Monitoring propose 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 de surveillance Stackdriver

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 Kubernetes Engine

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 se complexifie, les conteneurs apparaissent comme une bonne option pour une architecture orientée services, y compris 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 que votre application et ses dépendances sont regroupées. 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 : Kubernetes Engine est un service géré basé sur Kubernetes, un système d'orchestration de conteneurs Open Source conçu par Google. Avec Kubernetes Engine, 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 arrêter manuellement chaque conteneur, vous pouvez gérer automatiquement le cluster via Kubernetes Engine, qui utilise la configuration que vous avez définie.
  • Enregistrement d'images : Google 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. Vous avez ainsi la possibilité 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 sous votre projet de la console 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 Kubernetes Engine

Kubernetes Engine est exécuté sur GCP et utilise des instances de Compute Engine en tant que nœuds. Vos options de stockage présentent donc de nombreuses similitudes avec le stockage sur Compute Engine. Vous pouvez accéder à Cloud SQL, Cloud Storage, Cloud Datastore et Cloud Bigtable via leurs API, ou vous pouvez utiliser un autre fournisseur de stockage externe si vous le souhaitez. Cependant, Kubernetes Engine 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 du volume. gcePersistentDisk est 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 Kubernetes Engine.

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 découvrir un exemple, consultez le tutoriel Utiliser des disques persistants avec WordPress et MySQL.

Équilibrer la charge avec Kubernetes Engine

De nombreuses grandes architectures de diffusion Web ont besoin que plusieurs serveurs s'exécutent et soient capables de partager les demandes de trafic. Kubernetes Engine vous permet de créer et gérer facilement 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 Kubernetes Engine consiste à utiliser l'équilibrage de la charge réseau de Compute Engine. L'équilibrage de charge réseau peut é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. L'équilibrage de charge réseau 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, l'équilibrage de charge basé sur le contenu ou l'équilibrage interrégional, vous pouvez intégrer votre service Kubernetes Engine à 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 Kubernetes Engine, le provisionnement et la configuration de l'équilibreur de charge HTTP/HTTPS de Compute Engine sont gérés par une entrée.

Pour en savoir plus sur l'utilisation de l'équilibrage de charge HTTP/HTTPS dans Kubernetes Engine, consultez cette documentation.

Réaliser un scaling avec Kubernetes Engine

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 avec 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 que tous ses pods peuvent être facilement planifiés ailleurs, le nœud est alors supprimé.

Pour en savoir plus sur l'autoscaler de cluster, ses limites et les bonnes pratiques associées, consultez la documentation relative à l'autoscaler de cluster.

Journaliser et surveiller des données avec Kubernetes Engine

Comme sur Compute Engine, Stackdriver Logging et Stackdriver Monitoring fournissent des services de journalisation et de surveillance. Stackdriver 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.

Stackdriver Monitoring propose 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.

Gérer DevOps avec Kubernetes Engine

En utilisant Kubernetes Engine, vous profitez déjà de nombreux avantages auxquels la plupart des gens pensent lorsqu'on évoque le DevOps. Cela est particulièrement vrai en ce qui concerne la facilité d'empaquetage, de déploiement et de gestion. Pour vos besoins de flux de travail 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, la plate-forme en tant que service (PaaS) gérée s'appelle Google 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. 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 les créer et les gérer vous-même. App Engine vous permet de coder dans plusieurs langages de programmation différents et peut aisément utiliser bien d'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 les adapte aux besoins du trafic. Votre application s'exécute dans son propre environnement sécurisé et fiable. Celui-ci est indépendant du matériel, du système d'exploitation et de l'emplacement physique du serveur. Si vous souhaitez découvrir un exemple d'architecture pour une application Web s'exécutant dans l'environnement standard, consultez la page Architecture : application Web sur Google App Engine.

L'application Web utilise 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 des environnements d'exécution personnalisés, pour avoir plus de choix concernant les langages de programmation. Vous pouvez également 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 dont vous vous servez est une préoccupation majeure, vous devez décider si les environnements d'exécution fournis par l'environnement standard App Engine répondent à vos exigences. Si ce n'est pas le cas, vous devrez 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 documentation associée. Une fois la page relative à la documentation ouverte, vous pouvez sélectionner le langage de programmation que vous souhaitez utiliser en cliquant sur le nom du langage dans la partie supérieure droite de la page.

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.

Journaliser et surveiller des données avec App Engine

Dans App Engine, les requêtes sont enregistrées automatiquement, et 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 une fonctionnalité de journalisation et transmettent les entrées de journal aux journaux de la console. Par exemple, en langage Python, vous pouvez utiliser le module de journalisation Python standard ; en langage Java, vous pouvez utiliser l'API java.util.logging.Logger.

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

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 les éléments en question. Une architecture commune déploie le contenu statique dans Cloud Storage, puis se synchronise avec Compute Engine pour afficher les pages dynamiques. Cloud Storage est compatible avec de nombreux systèmes de gestion de contenu tiers, tels que WordPress, Drupal et Joomla. Cloud Storage propose également une API compatible S3, de sorte que tout système compatible avec S3 puisse fonctionner avec Cloud Storage.

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

Système de gestion de contenu sur Google Cloud Platform

Étapes suivantes

  • 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…