Primeros pasos con Django

Las aplicaciones Django que se ejecutan en Google Cloud lo hacen en la misma infraestructura que se usa en todos los productos de Google. Por lo general, esta infraestructura mejora la escalabilidad.

Plataformas de alojamiento

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

Opción de despliegue de Django Úsala si quieres No la uses si necesitas Empezar
Entorno estándar de App Engine
  • Configuración mínima
  • Sin mantenimiento del servidor
  • Escalabilidad fácil
  • Los archivos ejecutables binarios no disponibles en el entorno Python estándar de App Engine
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 máquina virtual (fuera del contenedor Docker de la aplicación)
Django en el entorno flexible de App Engine
Cloud Run (totalmente gestionado)
  • Django en un entorno de contenedores independiente
  • Sin servidor y sin App Engine
  • Control pormenorizado de una serie independiente de microservicios
  • Hardware personalizado como GPUs o un clúster de Kubernetes
Django en Cloud Run (totalmente gestionado)

Django en Cloud Run con Cloud Code for VS Code

Django en Cloud Run con Cloud Code for IntelliJ
Google Kubernetes Engine (GKE)
  • Contenedores de Django en un entorno de microservicio
  • Un kit de herramientas para diseñar tu propia plataforma basada en contenedores
  • Una plataforma y un entorno con una amplia gama de funciones que permita a los desarrolladores crear aplicaciones y servicios a través de Internet. Si lo que te interesa es una solución basada en contenedores, te recomendamos el entorno flexible de App Engine o Cloud Run
Django en Google Kubernetes Engine
Compute Engine
  • Infraestructura de computación basada en máquinas virtuales
  • Máquinas virtuales de Windows
  • Un entorno sin servidores y sin necesidad de configurar 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 SQL relacional. Si estás comenzando un nuevo proyecto, Cloud SQL es una buena opción. Con solo unos clics puedes crear una base de datos MySQL o PostgreSQL que Google gestiona y escala.

También puedes usar otras bases de datos SQL si no te importa encargarte de gestionarlas en Compute Engine u otro servicio.

En ocasiones, existen razones de peso para usar una base de datos NoSQL; por ejemplo, escalabilidad o idoneidad para tu modelo de datos. Es posible utilizar el ORM de Django con una base de datos NoSQL, aunque con algunas limitaciones: por ejemplo, muchos tipos de combinaciones de bases de datos se pueden expresar en Django, pero no son compatibles con Datastore ni con otras bases de datos NoSQL, como MongoDB.

Una opción es usar una estrategia combinada de SQL y NoSQL en la que se utilicen diferentes bases de datos para distintos tipos de datos.

Si lo que buscas es una solución NoSQL gestionada y con una gran escalabilidad, Datastore puede ser una buena opción. Se trata de una base de datos no relacional con una escalabilidad superior a la de una solución SQL.

Si decides utilizar MongoDB, puedes desplegarlo con Google Cloud Marketplace y encargarte de gestionarlo, o bien puedes emplear el servicio de alojamiento gestionado de MongoDB que ofrece mLab.

Durante muchos años, el método más popular para que el ORM de Django fuera compatible con soluciones NoSQL ha sido el uso de Django non‑rel, pero el proyecto no se ha continuado. Existe otro proyecto denominado Djangae que proporciona un backend del ORM de Django para Datastore sin bifurcar Django; sin embargo, no es compatible con App Engine.

Cachés

App Engine se suministra con un sistema Memcache integrado. Para instalar este sistema en Compute Engine, hazlo a través de Cloud Marketplace y, si quieres instalarlo en Compute Engine o GKE, utiliza la imagen Docker de Memcached. De la misma manera, puedes instalar Redis mediante Cloud Marketplace o la imagen Docker de Redis.

Cola de tareas

App Engine viene con una función de cola de tareas integrada para trabajos en segundo plano de larga ejecución. Fuera del entorno de App Engine, puedes usar Pub/Sub para poner en cola tareas con la solución de cola de tareas de Pub/Sub para Python (psq).

Otras opciones populares de cola de tareas disponibles en Cloud Marketplace son RabbitMQ y Kafka. Además, hay imágenes Docker para RabbitMQ y Kafka.