deploy no App Engine

O que é o App Engine e como publicar uma aplicação nele

Continuando a série de posts sobre o Google Cloud Platform vamos falar sobre App Engine. Caso não conheça o serviço de nuvem do Google, aconselho a leitura do artigo de Introdução ao Google Cloud Platform. Também já falamos sobre o Compute Engine e como criar uma instancia de VM.

Google Cloud - App Engine
Curso de Google Cloud - App Engine
CONHEÇA O CURSO

O que é o App Engine

O App Engine é um serviço da categoria de computação do Google Cloud Platform. Seu principal objetivo é permitir a publicação de aplicativos com o mínimo de configuração possível. Nesse modelo de publicação de aplicativos a empresa pode dar mais foco ao desenvolvimento e deixar a parte de ambiente nas mãos do App Engine.

O App Engine é um serviço do nível PaaS – Platform as a Service (Plataforma como serviço). Nesse modelo, o serviço oferece uma plataforma completa. Ela tem as seguintes responsabilidades:

  • Cuidar do ambiente onde o software rodará;
  • Cuidar de toda a parte de segurança do ambiente;
  • Manter o sistema operacional usado internamente;
  • Manter o hardware onde o serviço está alocado;

Basta ao usuário enviar seu projeto para o App Engine e tudo deve começar a funcionar. Não é necessário se preocupar em qual plataforma de hardware está rodando, a versão do sistema operacional e nem com a configuração de todo o ambiente usado.

História do App Engine

A maioria dos serviços do Google Cloud Platform surgiram das necessidades internas do próprio Google e em seguida foram publicados para o público geral. O App Engine é o primeiro serviço do Google Cloud Platform, seu lançamento data de 2008 quando pouquíssimas pessoas se quer ouviam falar em computação em nuvem. O principal objetivo na sua criação interna pelo Google era facilitar o provisionamento de ambientes para produção e teste, sem a necessidade de processos burocráticos de solicitações para a equipe de infraestrutura.

Veja a linha do tempo da história do serviço:

Tipos de Ambiente

Quando o Google criou o App Engine em 2008 não existiam serviços para integrar na aplicação. Se a aplicação precisasse usar um serviço como memcached ou armazenar imagens era muito complicado. Baseado nisso, o Google criou uma série de serviços que integravam facilmente com as aplicações hospedadas nele.

Com o passar do tempo, o Google Cloud Platform cresceu e ganhou vários serviços. A necessidade de ter diversos serviços internos no App Engine não era mais algo relevante. Nesse cenário, o Google resolveu criar um novo ambiente para o App Engine chamado Flexível e nomeou o inicial de ambiente padrão.

Além dos serviços, os ambientes também possuem diferentes características de escalabilidade, instancias, cobrança, configurações e outros detalhes.

Runtime

Independentemente do tipo de ambiente que vamos utilizar é necessário escolher o Runtime (tempo de execução) da aplicação. O runtime nada mais é do que o conjunto de ferramentas necessários para rodar uma aplicação em uma linguagem de programação especifica.

O App Engine possui suporte aos seguintes runtimes:

Linguagens suportadas pelo app engine

Fluxo de desenvolvimento e publicação

Uma das maiores vantagens do App Engine é a facilidade. Ao desenvolver uma aplicação que será publicada no serviço o fluxo de desenvolvimento quase não é alterado e a publicação é bem simples. Veja abaixo como fica o processo para enviar o software a primeira vez para o App Engine:

fluxo de publicação da aplicação

*Se for trabalhar com os serviços do ambiente padrão é necessário usar o SDK com as bibliotecas da linguagem para simular o ambiente na maquina local, o que muda um pouco o fluxo de desenvolvimento comparado com uma aplicação comum.

Realizando a publicação de aplicações

Publicando uma aplicação PHP Laravel:

Publicando uma aplicação Ruby on Rails: