在 Google Cloud 上執行的 Django 應用程式採用與所有 Google 產品相同的基礎架構,因此通常可提升擴充性。
託管平台
如要在 Google Cloud 中部署 Django,您可以選用以下幾種方式:
Django 部署選項 | 適用情況 | 不適用情況 | 開始使用 |
---|---|---|---|
App Engine 標準環境 |
|
|
App Engine 標準環境中的 Django |
App Engine 彈性環境 |
|
|
App Engine 彈性環境中的 Django |
Cloud Run (全代管) |
|
|
在 Cloud Run 中執行 Django (全代管)
透過 Cloud Code for VS Code 在 Cloud Run 中使用 Django 透過 Cloud Code for IntelliJ 在 Cloud Run 中使用 Django |
Google Kubernetes Engine (GKE) |
|
|
Google Kubernetes Engine 中的 Django |
Compute Engine |
|
|
Google Cloud Marketplace 中的 Django |
資料庫
Django 物件關聯對應工具 (ORM) 最適合搭配 SQL 關聯資料庫使用。如要開始進行新的專案,建議您使用 Cloud SQL。只要按幾下,您就能建立由 Google 代管及調度資源的 MySQL 或 PostgreSQL 資料庫。
如果您願意在 Compute Engine 或其他服務中自行管理,那麼也可以使用其他 SQL 資料庫。
有時候,您可能很難不使用 NoSQL 資料庫,譬如要確保資料模型的擴充性和適切性時,就是如此。您可以使用 Django ORM 搭配 NoSQL 資料庫,但是會受到一些限制。舉例來說,許多類型的資料庫彙整作業雖然可在 Django 表示,但 Datastore 和 MongoDB 等其他 NoSQL 資料庫並不支援這些類型。
其中一種可能做法是混合 SQL 及 NoSQL,將不同資料庫用於不同類型的資料。
如需擴充能力極高的代管 NoSQL 解決方案,建議您使用 Datastore,這個非關聯資料庫在擴充方面的表現比 SQL 解決方案好。
如果您選擇使用 MongoDB,可以透過 Cloud Marketplace 部署並自行管理,也可以使用 mLab 提供的代管 MongoDB 託管服務。
就搭配使用 Django ORM 與 NoSQL 解決方案的方式而言,多年來,最熱門的做法是使用 Django non-rel,但是此專案並未獲得維護。另一個名為 Djangae 的專案則提供適用於 Datastore 的 Django ORM 後端,您不必建立 Django 分支,但是 App Engine 不支援此專案。
快取
App Engine 內建 Memcache 系統。如要在 Compute Engine 上安裝 Memcache 系統,您可以使用 Cloud Marketplace。如要在 Compute Engine 或 GKE 上安裝 Memcache 系統,您可以使用 Memcached Docker 映像檔。同樣地,您可以使用 Cloud Marketplace 或 Redis Docker 映像檔安裝 Redis。
工作佇列
App Engine 內建工作佇列功能,可長時間執行背景工作。除了 App Engine 之外,您可以使用 Pub/Sub,透過適用於 Python 的 Pub/Sub 工作佇列 (psq) 將工作排入佇列。
Cloud Marketplace 提供的其他熱門工作佇列選項包括 RabbitMQ 和 Kafka,其中也有 RabbitMQ 和 Kafka 適用的 Docker 映像檔。