Cette page a été traduite par l'API Cloud Translation.
Switch to English

Premiers pas avec Django

Les applications Django fonctionnant sur Google Cloud s'exécutent sur la même infrastructure que tous les produits Google. Celle-ci améliore généralement l'évolutivité.

Plates-formes d'hébergement

Voici les options disponibles pour déployer Django sur Google Cloud :

Option de déploiement de Django À privilégier si vous souhaitez bénéficier des avantages suivants À éviter si vous avez besoin Premiers pas
Environnement standard App Engine
  • Configuration minimale
  • Pas de maintenance du serveur
  • Évolutivité facile
  • Exécutables binaires non disponibles dans l'environnement Python standard App Engine
Django dans l'environnement standard App Engine
Environnement flexible App Engine
  • La plupart des avantages d'App Engine
  • Environnements d'exécution Docker personnalisés
  • Contrôle de toute la machine virtuelle (en dehors du conteneur Docker de l'application)
Django dans l'environnement flexible App Engine
Cloud Run (entièrement géré)
  • Django dans un environnement de conteneur autonome
  • Sans serveur sans App Engine
  • Contrôle précis d'une série de microservices autonome
  • Matériel personnalisé (par exemple, des GPU) ou un cluster Kubernetes
Django sur Cloud Run (entièrement géré)

Django sur Cloud Run avec Cloud Code pour VS Code

Django dans Cloud Run avec Cloud Code pour IntelliJ
Google Kubernetes Engine (GKE)
  • Conteneurs Django dans un environnement de microservices
  • Kit pour concevoir une plate-forme personnalisée basée sur des conteneurs
  • Plate-forme et environnement complets qui permettent aux développeurs de créer des applications et des services sur Internet. Pour une solution basée sur des conteneurs, utilisez l'environnement flexible App Engine ou Cloud Run.
Django dans Google Kubernetes Engine
Compute Engine
  • Infrastructure informatique utilisant des VM
  • VM Windows
  • Environnement sans serveur qui ne vous oblige pas à configurer votre propre infrastructure
Django dans Google Cloud Marketplace

Bases de données

Le mappeur objet-relationnel (ORM, Object Relational Mapper) Django fonctionne mieux avec une base de données relationnelle SQL. Si vous démarrez un nouveau projet, Cloud SQL est un choix idéal. En quelques clics, vous pouvez créer une base de données MySQL ou PostgreSQL, dont la gestion et le scaling sont entièrement pris en charge par Google.

Vous pouvez également utiliser d'autres bases de données SQL si vous souhaitez les gérer vous-même sur Compute Engine ou un autre service.

L'utilisation d'une base de données NoSQL est parfois nécessaire, selon les besoins d'évolutivité ou de pertinence pour votre modèle de données. L'utilisation de l'ORM Django avec une base de données NoSQL est possible, mais impose certaines restrictions : par exemple, de nombreux types de jointures de base de données peuvent être exprimés dans Django, mais ils ne sont pas compatibles avec Datastore ni d'autres bases de données NoSQL telles que MongoDB.

Il est possible d'adopter une approche mixte SQL/NoSQL qui utilise différentes bases de données pour divers types de données.

Pour une solution NoSQL gérée et extrêmement évolutive, il est possible d'utiliser Datastore, une base de données non relationnelle dont le scaling est souvent plus performant que celui d'une solution SQL.

Si vous choisissez d'utiliser une base de données MongoDB, vous pouvez la déployer à l'aide de Cloud Marketplace et la gérer vous-même, ou vous pouvez utiliser le service d'hébergement géré MongoDB fourni par mLab.

Pendant de nombreuses années, l'approche la plus populaire pour faire fonctionner l'ORM Django avec des solutions NoSQL consistait à utiliser la suite Django non-rel, mais ce projet n'a pas été maintenu. Un autre projet appelé Djangae fournit un backend ORM Django pour Datastore sans diviser Django. Il n'est toutefois pas compatible avec App Engine.

Caches

App Engine inclut un système Memcache intégré. Pour installer le système Memcache sur Compute Engine, utilisez Google Cloud Marketplace. Pour installer le système Memcache sur Compute Engine ou GKE, utilisez l'image Docker Memcached. De même, vous pouvez installer Redis à l'aide de Google Cloud Marketplace ou de l'image Docker Redis.

Mettre des tâches en file d'attente

App Engine inclut une fonctionnalité de file d'attente de tâches intégrée pour les tâches d'arrière-plan de longue durée. En dehors d'App Engine, vous pouvez utiliser Pub/Sub pour mettre des tâches en file d'attente à l'aide de la file d'attente de tâches Pub/Sub pour Python (psq).

RabbitMQ et Kafka sont d'autres options populaires disponibles dans Google Cloud Marketplace pour la mise en file d'attente de tâches. Il existe également des images Docker pour RabbitMQ et Kafka.