Como executar o Rails no Google Cloud

É fácil iniciar o desenvolvimento de apps Ruby on Rails executados no Google Cloud. Como os apps que você cria são executados na mesma infraestrutura usada em todos os produtos do Google, tenha a certeza de que eles serão escalonados para atender a todos os usuários, sejam eles poucos ou milhões.

Plataformas de hospedagem

Há três opções principais de implantação do Rails no Google Cloud.

Opções de implantação do Rails Use se o que estiver buscando for Não use se precisar de Primeiros passos
Ambiente flexível do App Engine
  • A maioria das vantagens do App Engine
  • Bibliotecas do sistema e RubyGems que dependem delas
  • Ambientes de execução do Docker personalizados
Controle total sobre as máquinas virtuais. Rails no ambiente flexível do App Engine
Google Kubernetes Engine (GKE)
  • Contêineres do Rails em um ambiente de microsserviços
  • Um kit de ferramentas para desenhar a própria plataforma com base em contêineres.
Uma plataforma como serviço (PaaS) repleta de recursos. Para uma PaaS baseada em contêineres, recomendamos o ambiente flexível do App Engine. Rails no GKE
Compute Engine
  • Infraestrutura como serviço (IaaS) conhecida usando VMs
  • Suporte para VMs do Windows e Linux
Um ambiente sem servidor, sem a necessidade de configurar a própria infraestrutura Rails no Compute Engine

Bancos de dados

Bancos de dados relacionais

O Rails ActiveRecord funciona melhor com um banco de dados SQL tradicional. Se você está iniciando um novo projeto, o Cloud SQL é uma boa escolha. Com alguns cliques, é possível criar um banco de dados MySQL ou PostgreSQL que o Google gerencia e escalona de maneira completa. Você não precisa gerenciar nada. Confira o tutorial Como usar o Cloud SQL para MySQL com o Rails 5 ou Como usar o Cloud SQL para PostgreSQL com o Rails 5.

Bancos de dados NoSQL

Em muitas situações, há razões justificáveis para usar um banco de dados NoSQL. Entre os motivos, estão a escalonabilidade e a adequação ao modelo de dados. O uso de modelos do Rails com um banco de dados NoSQL pode ser desafiador, mas isso é possível com algumas limitações. Por exemplo, é possível expressar vários tipos de uniões de bancos de dados no Rails, mas nem Datastore nem outros bancos de dados NoSQL, como o MongoDB, são compatíveis com elas. Para saber mais, leia o tutorial do Bookshelf com o uso do Datastore relacionado ao Rails, que usa o Datastore como um banco de dados não relacional. Para ter uma solução NoSQL gerenciada, amplamente escalonável, considere usar o Datastore, que é um banco de dados não relacional com um escalonamento normalmente melhor quando comparado a uma solução SQL.

Caso escolha o MongoDB, implante-o por meio do Google Cloud Marketplace e gerencie-o por conta própria. Se preferir, use o serviço de hospedagem gerenciado MongoDB, disponibilizado pela mLab.

Caches

Para instalar o Memcached no Compute Engine, use o Cloud Marketplace. Para instalar o Memcached 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 (em inglês).