Esta página foi traduzida pela API Cloud Translation.
Switch to English

Primeiros passos com o Django

Os apps do Django para Google Cloud são executados na mesma infraestrutura que capacita todos os produtos do Google, o que costuma melhorar a escalonabilidade.

Plataformas de hospedagem

Estas são as opções disponíveis para implementar o Django no Google Cloud:

Opção de implantação do Django Use se quiser Não use se precisar de Primeiros passos
Ambiente padrão do App Engine
  • Configuração mínima
  • Nenhuma manutenção do servidor
  • Fácil escalabilidade
  • Os binários executáveis não estão disponíveis no ambiente Python padrão do App Engine
Django no ambiente padrão do App Engine
Ambiente flexível do App Engine
  • Maioria das vantagens do App Engine
  • Ambientes de execução personalizados do Docker
  • Controle sobre toda a máquina virtual (fora do contêiner do docker do aplicativo)
Django no ambiente flexível do App Engine
Cloud Run (totalmente gerenciado)
  • Django em um ambiente de contêiner independente
  • Sem servidor e sem o App Engine
  • Controle minucioso sobre uma série independente de microsserviços
  • Hardware personalizado, como GPUs ou um cluster de Kubernetes
Django no Cloud Run (totalmente gerenciado)

Django no Cloud Run com Cloud Code para VS Code

Django no Cloud Run com Cloud Code para IntelliJ
Google Kubernetes Engine (GKE)
  • Contêineres do Django em um ambiente de microsserviço
  • Um kit de ferramentas para projetar a própria plataforma com base em contêiner.
  • uma plataforma e um ambiente completos que permitem aos desenvolvedores a criação de apps e serviços pela Internet Para uma solução baseada em contêiner, use o ambiente flexível do App Engine ou o Cloud Run.
Django no Google Kubernetes Engine
Compute Engine
  • Infraestrutura de computação que usa VMs
  • VMs do Windows
  • Um ambiente sem servidor que não exige que você configure sua própria infraestrutura
Django no Google Cloud Marketplace

Bancos de dados

O mapeador objeto-relacional (ORM, na sigla em inglês) do Django funciona melhor com um banco de dados SQL relacional. Se você está iniciando um novo projeto, o Cloud SQL é uma boa escolha. Em poucas etapas, é possível criar um banco de dados MySQL ou PostgreSQL gerenciado e escalonado pelo Google.

Use também outros bancos de dados SQL se quiser gerenciá-los no Compute Engine ou em outro serviço.

Em alguns casos, há motivos justificáveis para usar um banco de dados NoSQL, como, por exemplo, a escalabilidade ou adequação do seu modelo de dados. Usar o ORM do Django com um banco de dados NoSQL é possível com algumas limitações. Por exemplo, muitos tipos de junções de bancos de dados podem ser expressos no Django, mas elas não são compatíveis com o Datastore e outros bancos de dados NoSQL, como o MongoDB.

Uma alternativa é usar uma abordagem mista de SQL e NoSQL que utilize bancos de dados distintos para tipos de dados diferentes.

Para uma solução NoSQL gerenciada e amplamente escalonável, considere usar o Datastore, que é um banco de dados não relacional com uma escalabilidade melhor quando comparado a uma solução SQL.

Caso você escolha usar o MongoDB, implante-o por meio do Cloud Marketplace e gerencie da sua maneira. Se preferir, use o serviço gerenciado de hospedagem MongoDB fornecido pela mLab (em inglês).

Por muitos anos, a abordagem mais conhecida para fazer o ORM do Django funcionar com soluções NoSQL era o Django non-rel (em inglês), mas o projeto não foi mantido. Outro projeto, intitulado Djangae (em inglês), fornece um back-end de ORM do Django para Datastore, sem derivar do Django. Porém, ele não é compatível no App Engine.

Caches

O App Engine é fornecido com um sistema Memcache integrado. Para instalar o sistema Memcache no Compute Engine, use o Cloud Marketplace. Para instalar o sistema Memcache no Compute Engine ou no GKE, use a imagem do Docker do Memcached (em inglês). Da mesma forma, é possível instalar o Redis por meio do Cloud Marketplace ou da imagem do Docker do Redis.

Como enfileirar tarefas

O App Engine é fornecido com um recurso de enfileiramento de tarefas integrado para a execução longa de jobs em segundo plano. Fora do App Engine, use o Pub/Sub para enfileirar tarefas com o Pub/Sub Task Queue for Python (psq) (em inglês).

Outras opções conhecidas de enfileiramento de tarefas estão disponíveis no Cloud Marketplace, incluindo o RabbitMQ e o Kafka. Há também imagens do Docker (em inglês) para RabbitMQ e Kafka.