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 |
|
|
Django en el entorno estándar de App Engine |
Entorno flexible de App Engine |
|
|
Django en el entorno flexible de App Engine |
Cloud Run (totalmente gestionado) |
|
|
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) |
|
|
Django en Google Kubernetes Engine |
Compute Engine |
|
|
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.