Ejecutar Rails en Google Cloud

Empezar a desarrollar aplicaciones de Ruby on Rails que se ejecuten en Google Cloud es muy sencillo. Además, como se ejecutarán en la misma infraestructura que se usa en todos los productos de Google, puedes tener la tranquilidad de que se escalarán para atender a todos tus usuarios, ya sean unos pocos o millones.

Plataformas de alojamiento

Hay tres opciones principales para desplegar Rails en Google Cloud.

Opción de despliegue de Rails Úsala si quieres No la uses si necesitas Primeros pasos
Entorno flexible de App Engine
  • La mayoría de las ventajas de App Engine
  • Bibliotecas del sistema y RubyGems que dependen de ellas
  • Entornos de ejecución de Docker personalizados
Control total de las máquinas virtuales subyacentes Rails en el entorno flexible de App Engine
Google Kubernetes Engine (GKE)
  • Contenedores de Rails en un entorno de microservicio
  • Un kit de herramientas para diseñar tu propia plataforma basada en contenedores
Una plataforma como servicio con una amplia gama de funciones (para una PaaS basada en contenedores, te recomendamos que uses el entorno flexible de App Engine) Rails en GKE
Compute Engine
  • Infraestructura como servicio conocida que usa máquinas virtuales
  • Compatibilidad con máquinas virtuales de Windows y Linux
Un entorno sin servidores y sin la necesidad de configurar tu propia infraestructura Rails en Compute Engine

Bases de datos

Bases de datos relacionales

Rails Active Record funciona mejor con una base de datos SQL tradicional. Si estás comenzando un nuevo proyecto, Cloud SQL es una buena opción. Con solo unos clics puedes crear una base de datos MySQL o PostgreSQL que Google gestiona y escala completamente, sin que tengas que preocuparte por gestionarla. Si quieres obtener más información al respecto, consulta los tutoriales sobre cómo usar Cloud SQL para MySQL con Rails 5 o usar Cloud SQL para PostgreSQL con Rails 5.

Bases de datos NoSQL

En muchas ocasiones, existen razones convincentes para usar una base de datos NoSQL, por ejemplo, escalabilidad o idoneidad para tu modelo de datos. A pesar de que el uso de los modelos Rails con una base de datos NoSQL puede resultar un desafío, es posible con algunas limitaciones. Por ejemplo, puedes usar varios tipos de combinaciones de bases de datos en Rails, pero estas combinaciones no son compatibles con Datastore ni con otras bases de datos NoSQL, como MongoDB. Si quieres obtener más información al respecto, puedes consultar el tutorial de Bookshelf con Datastore para Rails, que utiliza Datastore como su base de datos no relacional. Si lo que buscas es una solución NoSQL gestionada y con una gran escalabilidad, Datastore puede ser una buena opción. Se trata de una base de datos no relacional con una escalabilidad superior a la de una solución SQL.

Si decides utilizar MongoDB, puedes desplegarla con Google Cloud Marketplace y encargarte de gestionarla, o bien puedes emplear el servicio de alojamiento gestionado de MongoDB que ofrece mLab.

Cachés

Si quieres instalar Memcached en Compute Engine, puedes usar Cloud Marketplace. Para instalar Memcached en Compute Engine o en GKE, tienes la posibilidad de utilizar la imagen Docker de Memcached. De la misma manera, puedes instalar Redis mediante Cloud Marketplace o la imagen Docker de Redis.