Comienza con Django

Las apps de Django que se ejecutan en Google Cloud usan la misma infraestructura que todos los productos de Google, lo que, por lo general, mejora la escalabilidad.

Plataformas de hosting

Estas son las opciones disponibles para implementar Django en Google Cloud:

Opción de implementación de Django Úsala si necesitas lo siguiente No la uses si necesitas lo siguiente Comienza ahora
Entorno estándar de App Engine
  • Configuración mínima
  • Sin mantenimiento del servidor
  • Escalabilidad fácil
  • Los ejecutables binarios no están disponibles en el entorno estándar de App Engine para Python
Django en el entorno estándar de App Engine
Entorno flexible de App Engine
  • La mayoría de las ventajas de App Engine
  • Entornos de ejecución de Docker personalizados
  • Control sobre toda la VM (fuera del contenedor de Docker de la aplicación)
Django en el entorno flexible de App Engine
Cloud Run (completamente administrado)
  • Django en un entorno de contenedores autónomo
  • Sin servidores sin App Engine
  • Control detallado sobre una serie de microservicios independientes
  • Hardware personalizado, como GPU o clústeres de Kubernetes
Django en Cloud Run (completamente administrado)

Django en Cloud Run con Cloud Code para VS Code

Django en Cloud Run con Cloud Code para IntelliJ
Google Kubernetes Engine (GKE)
  • Contenedores de Django en un entorno de microservicios
  • Un kit de herramientas para diseñar tu propia plataforma basada en contenedores
  • Una plataforma y un entorno con todas las funciones que permiten a los desarrolladores compilar aplicaciones y servicios a través de Internet. Para una solución basada en contenedores, considera el entorno flexible de App Engine o Cloud Run.
Django en Google Kubernetes Engine
Compute Engine
  • Infraestructura de procesamiento que usa VM
  • VM de Windows
  • Un entorno sin servidores que no requiere que configures tu propia infraestructura
Django en Google Cloud Marketplace

Bases de datos

El asignador relacional de objetos (ORM) de Django funciona mejor con una base de datos relacional SQL. Si estás comenzando un proyecto nuevo, Cloud SQL es una buena opción. Con unos pocos clics, puedes crear una base de datos MySQL o PostgreSQL administrada y escalada por Google.

Además, puedes usar otras bases de datos SQL si deseas administrarlas tú mismo en Compute Engine o en otro servicio.

A veces, existen motivos convincentes para usar una base de datos NoSQL, como la escalabilidad o la idoneidad de tu modelo de datos. Se puede usar Django ORM con una base de datos NoSQL con algunas limitaciones: por ejemplo, muchos tipos de uniones de bases de datos se pueden expresar en Django, pero no son compatibles con Datastore ni otras bases de datos NoSQL como MongoDB.

Una posibilidad es usar un enfoque mixto de SQL y NoSQL que use bases de datos diferentes para los distintos tipos de datos.

Si quieres tener una solución NoSQL administrada con gran escalabilidad, te recomendamos usar Datastore, una base de datos no relacional con mejor escalabilidad que una solución SQL.

Si decides usar MongoDB, puedes implementarla con Cloud Marketplace y realizar tu propia administración. También puedes usar el servicio de hosting administrado de MongoDB que proporciona mLab.

Durante muchos años, el enfoque más popular para hacer que Django ORM funcionara con las soluciones NoSQL fue Django non-rel, pero el proyecto no se mantiene. Otro proyecto, llamado Djangae, proporciona un backend de Django ORM para Datastore sin bifurcar Django; sin embargo, no es compatible con App Engine.

Caché

App Engine incluye un sistema Memcache incorporado. Si deseas instalar el sistema Memcache en Compute Engine, usa Cloud Marketplace. Para instalar el sistema Memcache en Compute Engine o en GKE, usa la imagen de Docker de Memcached. Del mismo modo, puedes instalar Redis mediante Cloud Marketplace o la imagen de Docker de Redis.

Usa una lista de tareas en cola

App Engine incluye una característica de lista de tareas en cola integrada para los trabajos en segundo plano de larga duración. Fuera de App Engine, puedes usar Pub/Sub a fin de poner tareas en cola con Pub/Sub Task Queue for Python (psq).

Otras opciones populares para usar listas de tareas en cola que están disponibles en Cloud Marketplace son RabbitMQ y Kafka. También hay imágenes de Docker para RabbitMQ y Kafka.