Rails in Google Cloud

Es ist ganz einfach, Ruby on Rails-Anwendungen zu entwickeln, die in Google Cloud ausgeführt werden. Da die erstellten Anwendungen in der Infrastrukturumgebung ausgeführt werden, die allen Google-Produkten zugrunde liegt, können sie für alle Ihre Nutzer skaliert werden – unabhängig davon, ob es nur wenige oder Millionen sind.

Host-Plattformen

Es gibt drei Hauptoptionen für die Bereitstellung von Rails auf Google Cloud.

Rails-Bereitstellungsoption Verwenden, wenn Folgendes gewünscht ist Nicht verwenden, wenn Folgendes benötigt wird Gleich loslegen
Flexible App Engine-Umgebung
  • Die meisten Vorteile von App Engine
  • Systembibliotheken und davon abhängige RubyGems
  • Benutzerdefinierte Docker-Laufzeiten
Vollständige Kontrolle über die zugrunde liegenden virtuellen Maschinen Rails in der flexiblen App Engine-Umgebung
Google Kubernetes Engine (GKE)
  • Rails-Container in einer Mikrodienst-Umgebung
  • Toolkit zur Entwicklung einer eigenen containerbasierten Plattform
PaaS-Lösung (Platform as a Service) mit komplettem Funktionsumfang; für eine containerbasierte PaaS-Lösung sollte die flexible App Engine-Umgebung in Betracht gezogen werden Rails in GKE
Compute Engine
  • Vertraute IaaS-Lösung (Infrastructure as a Service) mithilfe von VMs
  • Unterstützung für Windows- und Linux-VMs
Serverlose Umgebung, in der keine eigene Infrastruktur konfiguriert werden muss Rails in Compute Engine

Datenbanken

Relationale Datenbanken

Rails ActiveRecord funktioniert am besten mit einer herkömmlichen SQL-Datenbank. Für ein neues Projekt ist Cloud SQL eine gute Wahl. Mit wenigen Mausklicks können Sie eine MySQL- oder PostgreSQL-Datenbank erstellen, die von Google vollständig verwaltet und skaliert wird, ohne dass Sie tätig werden müssen. Weitere Informationen finden Sie in den Anleitungen Cloud SQL for MySQL mit Rails 5 verwenden und Cloud SQL for PostgreSQL mit Rails 5 verwenden.

NoSQL-Datenbanken

Es gibt oftmals zwingende Gründe, eine NoSQL-Datenbank zu verwenden, beispielsweise aufgrund der Skalierbarkeit oder der Eignung für Ihr Datenmodell. Auch wenn die Verwendung von Rails-Modellen mit einer NoSQL-Datenbank eine Herausforderung sein kann, ist dies mit einigen Einschränkungen möglich. Beispielsweise können viele Typen von Datenbank-Joins in Rails ausgedrückt werden, wobei Joins nicht von Datastore oder anderen NoSQL-Datenbanken wie z. B. MongoDB unterstützt werden. Weitere Informationen hierzu finden Sie in der Anleitung zu Bookshelf mit Datastore für Rails, bei der Datastore als nicht relationale Datenbank verwendet wird. Datastore eignet sich als verwaltete und extrem skalierbare NoSQL-Lösung. Es handelt sich um eine nicht relationale Datenbank, die oft besser skaliert werden kann als eine SQL-Lösung.

Wenn Sie sich für MongoDB entscheiden, können Sie die Datenbank mit dem Google Cloud Marketplace bereitstellen und selbst verwalten oder den verwalteten MongoDB-Hostingdienst von mLab verwenden.

Caches

Wenn Sie Memcached auf Compute Engine installieren möchten, können Sie das über den Google Cloud Marketplace tun. Sie können auch das Memcached-Docker-Image verwenden, um Memcached entweder auf Compute Engine oder GKE zu installieren. Analog dazu können Sie Redis über den Google Cloud Marketplace oder mit dem Redis-Docker-Image installieren.