在 Google Cloud 中執行 Rails

您可以輕鬆著手開發在 Google Cloud 中執行的 Ruby on Rails 應用程式。而且您所建立的應用程式,使用的正是所有 Google 產品採用的基礎架構,因此您可以放心,無論使用者只有幾人還是有數百萬人,應用程式都可調度資源,為所有使用者提供服務。

託管平台

在 Google Cloud 中部署 Rails 的方式主要分為以下三種:

Rails 部署選項 適用情況 不適用情況 入門指南
App Engine 彈性環境
  • 您想要 App Engine 大部分的優點
  • 您需要依賴 Rails 的系統程式庫和 RubyGems
  • 可以自訂 Docker 執行階段
您想要完全掌控基礎虛擬機器。 在 App Engine 彈性環境中使用 Rails
Google Kubernetes Engine (GKE)
  • 您想在微服務環境中使用 Rails 容器
  • 您需要工具包來設計自己的容器式平台
您需要功能完善的平台式服務 (PaaS)。如需容器型平台式服務 (PaaS),建議您使用 App Engine 彈性環境。 在 GKE 中使用 Rails
Compute Engine
  • 您需要熟悉且使用 VM 的基礎架構式服務 (IaaS)
  • 您需要系統同時支援 Windows 和 Linux VM
您想要不必自行設定基礎架構的無伺服器環境 在 Compute Engine 中使用 Rails

資料庫

關聯資料庫

Rails Active Record 最適合與傳統 SQL 資料庫搭配使用。Cloud SQL 則是您展開新專案的理想選擇。只要按幾下,您就能建立由 Google 全代管及擴充的 MySQL 或 PostgreSQL 資料庫,您完全不需進行管理。請參閱搭配 Rails 5 使用 MySQL 適用的 Cloud SQL搭配 Rails 5 使用 PostgreSQL 適用的 Cloud SQL 教學課程。

NoSQL 資料庫

在許多情況下,您都有充分的理由使用 NoSQL 資料庫做為資料模型,例如為了擴充性和適切性等。雖然將 Rails 模型搭配 NoSQL 資料庫使用並非易事,但仍可行,只是會受到一些限制。舉例來說,您可以在 Rails 中表示許多類型的資料庫彙整作業,但 Datastore 或 MongoDB 等其他 NoSQL 資料庫並不支援彙整作業。詳情請參閱我們的 Rails Bookshelf 教學課程:使用 Datastore,這個教學課程使用 Datastore 來當做非關聯資料庫。如需擴充能力極高的代管 NoSQL 解決方案,建議您使用 Datastore,這個非關聯資料庫在擴充方面的表現往往比 SQL 解決方案好。

如果您選擇使用 MongoDB,可以透過 Google Cloud Marketplace 部署 MongoDB 並自行管理,或是使用 mLab 提供的代管 MongoDB 託管服務。

快取

如要在 Compute Engine 中安裝 Memcached,請使用 Cloud Marketplace。如要在 Compute Engine 或 GKE 中安裝 Memcached,請使用 Memcached Docker 映像檔。同理,您可以使用 Cloud MarketplaceRedis Docker 映像檔來安裝 Redis。