Como executar o Rails no Google Cloud

É fácil começar a desenvolver apps Ruby on Rails executados no Google Cloud. Como os apps que você cria são executados na mesma infraestrutura que alimenta todos os produtos do Google, tenha a certeza de que eles são escalonados para suprir 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ção de implantação do Rails Use se quiser: Não use se precisar de: Primeiros passos
Ambiente flexível do App Engine
  • 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 de base. 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 projetar 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 Active Record 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 totalmente gerenciado e escalonado pelo Google. 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, por exemplo, a escalonabilidade e a adequação ao modelo de dados. O uso de modelos do Rails com um banco de dados NoSQL pode ser complicado, mas isso é possível com algumas limitações. Por exemplo, você consegue expressar vários tipos de junções de bancos de dados no Rails, mas elas não são compatíveis com o Datastore ou outros bancos de dados NoSQL, como o MongoDB. Para saber mais, leia o tutorial do Bookshelf usando o Datastore relacionado ao Rails, que usa o Datastore como um banco de dados não relacional. Para ter uma solução NoSQL gerenciada e amplamente escalonável, considere usar o Datastore, um banco de dados não relacional com escalonabilidade normalmente melhor quando comparado a uma solução SQL.

Caso escolha o MongoDB, implante-o pelo Google Cloud Marketplace e gerencie 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 Google Cloud Marketplace. Para instalar o Memcached no Compute Engine ou no GKE, use a imagem Docker do Memcached. Da mesma maneira, é possível instalar o Redis por meio do Google Cloud Marketplace ou da imagem Docker do Redis.