Comenzar con Django

Comenzar a desarrollar apps en Django que se ejecuten en GCP es muy fácil, y como las apps que creas se ejecutan en la misma infraestructura en la que se basan todos los productos de Google, puedes estar seguro de que escalarán para atender a todos tus usuarios, ya sean unos pocos o millones.

Plataformas de alojamiento

Hay cuatro opciones principales para implementar Django en GCP.

Opción de implementación de Django Úsala si necesitas lo siguiente No la uses si necesitas lo siguiente Comenzar
Entorno estándar de App Engine
  • Configuración mínima
  • Sin mantenimiento del servidor
  • Escalabilidad fácil
  • Python 3
  • Las bibliotecas de sistema no disponibles en el entorno estándar de App Engine de Python
Django en el entorno estándar de App Engine
Entorno flexible de App Engine
  • La mayoría de las ventajas de App Engine
  • Bibliotecas de sistema y bibliotecas de Python que dependen de estas
  • Tiempo 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
Google Kubernetes Engine
  • Contenedores de Django en un entorno de microservicios
  • Un kit de herramientas para diseñar tu propia plataforma basada en contenedores
  • Una plataforma como servicio con todas las características. Para tener una plataforma como servicio basada en contenedores, te recomendamos el entorno flexible
Django en GKE
Compute Engine
  • Una infraestructura como servicio conocida con VM
  • VM de Windows
  • Un entorno sin servidores ni la necesidad de configurar tu propia infraestructura
Django en Google Cloud Platform Marketplace

Bases de datos

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

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

En algunos casos, existen motivos convincentes para usar una base de datos NoSQL, como la escalabilidad o la idoneidad que ofrece a tu modelo de datos. Si bien usar el asignador relacional de objetos de Django con una base de datos NoSQL puede suponer un desafío, es posible hacerlo con ciertas limitaciones. Por ejemplo, muchos tipos de combinaciones de bases de datos se pueden expresar en Django. pero no son compatibles con Cloud Datastore y otras bases de datos NoSQL como MongoDB.

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

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

Si decides usar MongoDB, puedes implementarla con GCP Marketplace y realizar tu propia administración. También puedes usar el servicio de alojamiento administrado de MongoDB, proporcionado por mLab.

Durante muchos años, el enfoque más popular para hacer que el asignador relacional de objetos de Django funcione con soluciones NoSQL fue Django non-rel, pero el proyecto es una rama de Django que no se mantuvo actualizada con su línea principal. Surgió un proyecto nuevo llamado Djangae, que proporciona un backend del asignador relacional de objetos de Django para Cloud Datastore sin depender de Django. Si bien Djangae parece una opción muy prometedora, no está respaldado totalmente como una manera de ejecutar Django en App Engine.

Memorias caché

App Engine incluye un servicio integrado de Memcached. Para instalar Memcached en Compute Engine, puedes usar GCP Marketplace. Para instalar Memcached en Compute Engine o en GKE, usa la imagen de Docker de Memcached. Del mismo modo, puedes instalar Redis utilizando GCP Marketplace o la imagen de Docker de Redis.

Usar 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. Además de App Engine, te recomendamos usar el servicio con gran escalabilidad de Cloud Pub/Sub, el cual se puede convertir en una lista de tareas en cola con la lista de tareas en cola para Python (psq) de Cloud Pub/Sub.

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

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...