O App Engine é categorizado como um PaaS (Platform as a Service) que faz com que o deploy de suas aplicações sejam executados de forma simples. Já o Cloud Datastore é um banco NoSQL e NoOps totalmente administrado que pode ser utilizado com o App Engine.

Google App Engine

O Google App Engine é uma das opções de recursos de máquinas para rodar suas aplicações e uma plataforma para construir aplicações web de forma escalável, assim como seus serviços.

Com o Google App Engine você faz o deploy da aplicação com um simples comando e ele toma conta de todos os detalhes que envolvem este deploy. Imagine um bug fix: o App Engine inicia uma nova versão do programa e para as antigas quando você subir uma nova versão.

Pico de acesso? O Google App Engine vai automaticamente criar aplicações para você assim como desligá-las quando você tiver poucos acessos.

Não existem Load Balancers para ser configurados, patches instalados. Aqui o objetivo é focar no seu código e respectiva aplicação, e a plataforma vai criar do resto (NoOps lembra?). Ela vai cuidar do hardware, rede, load balancer, monitoramento e escalabilidade necessárias para manter seu projeto rodando. Atualmente você pode utilizar modelos em Java, Python, PHP e Go ou criar os seus runtimes.

Existem grandes empresas que rodam utilizando o App Engine, como por exemplo o Snapchat. “O App Engine nos possibilita focar no desenvolvimento da aplicação. Nós não teríamos chegado até aqui sem o suporte que o App Engine nos deu”, disse Bobby Murphy

Imaginem a complexidade para tratar a infraestutura e o custo de equipe para um software como utilizando o IaaS. Este é só um exemplo de como o NoOps pode transformar a realidade de empresas e de uma startup.

Atualmente existem duas formas de se trabalhar com o App Engine chamadas de Standard e Flexible. Vamos estudá-las a seguir.

App Engine Standard Environment

Estes containers estarão rodando na infraestrutura do Google, fora do Compute Engine. Neste formato existem runtimes pré definidas já disponibilizadas para utilização com Java , Python, PHP e Go.

Uma das vantagens de utilizar este modelo é a sua habilidade em escalar rapidamente. O próprio Google App Engine monitora sua app e o seu tráfego e vai ligar e desligar instâncias conforme a necessidade.

O Google App Engine inicia runtimes em millisegundos, o que torna possível que a aplicação seja “desligada” quando você não tem usuários, entrando no free-tier de custo zero. Existem SDKs para cada uma das linguagens suportadas e é possível rodar este SDK localmente, assim como existem ferramentas de deploy para novas versões de aplicação.

Como este modelo faz com que o Google App Engine rode em ambientes em sandboxes, existem certas premissas que sua aplicação deve respeitar. Algumas delas são limitações de softwares que você pode instalar, versionamento de idiomas e o fato de não poder escrever no file system. A autenticação com os sandboxes pode ser feita utilizando-se Google Accounts ou contas em seus domínios.

Cada projeto tem um ambiente de Google App Engine e as aplicações neste ambiente podem ser divididas em serviços, onde cada serviço pode ser atualizado de forma separada e cada serviço pode rodar em um ou mais containers.

Podemos versionar serviços e rodar versões diferentes simultaneamente especificando a porcentegem de distribuição de requisições (A/B testing).

Dentro do Google App Engine podemos integrar facilmente com outros serviços como o Memcache, Chron ou de busca com o Cloud Data Store.

App Engine Flexible Environment

Como o próprio nome diz, aqui temos a flexibilidade. O Google entrega esta flexibilidade através de containers Docker onde você pode configurar exatamente o que precisa para sua aplicação.

Existem alguns containers já pré-configurados que o Google disponibiliza como Java 8 e Python. Vamos dizer que você queira desenvolver o software usando C# é possível configurar um container que utilize as bibliotecas necessárias. Lembrando que suas aplicações ainda serão publicadas em um modelo NoOps que toma conta de toda a escalabilidade, monitoramento e por aí vai.

O deploy é feito de forma ligeiramente diferente do standart. Os containers Docker rodam no Compute Engine, ou seja, são criadas máquinas virtuais e estas serão cobradas no modelo do CE. Os containers distribuídos pelo Google tem a mesma configuração dos serviços do standart, incluindo também as mesmas SKDs.

Caso sua aplicação utilize padrões orientados a serviço, é possível rodar os dois modos simultaneamente de acordo com a necessidade de seus serviços.

Google Cloud Endpoints

Um assunto que também vamos falar rapidamente aqui é o GCE. Com este serviço você pode criar APIs seguindo o padrão REST e assim serão documentados exatamente como são os do Google. Através de anotações no código você possibilita algo como o Swagger.

Estes endpoints também simplificam a integração com autenticação OAuth 2 em seus próprios serviços. Atualmente eles podem ser consumidos por serviços que foram desenvolvidos em Java e Python, assim como em aplicações iOS, Android e Web.

Google Cloud Datastore

No SQL altamente escalável para suas aplicações, administrado pelo Google e que é ideal para salvar dados de suas aplicações que rodam no Google App Engine. Ele é schemaless e utiliza o conceito de entidades e propriedades com seus respectivos valores.

Você pode salvar estas entidades da forma que desejar, sem se preocupar com o schema do banco de dados. Existe a possibilidade de conectar ferramentas de desenvolvimento para simular este db localmente.

Como todo serviço NoOps, você não precisa se preocupar com configuração pois ele vai escalar automaticamente e salvar os dados em zonas múltiplas. Transações ACID, garantindo o estado dos dados entre os containers e free-tier que para os pequenos que não gera custo e integra nativamente com App Engine. Existem ainda APIs para você integrar em suas aplicações.

LAB

Este vai ser bem legal! Vamos usar o AppEngine para rodar uma aplicação chamada Bookshelf. Esta aplicação usa o Google Cloud Datastore para armazenar dados e pode ser inserida no modelo standard do App Engine. Vamos clonar um repositório e fazer o deploy da aplicação, como em um caso real. Ele está disponível neste link.

Já conhece o NOC 24/7? Saiba como a primeira operação cloud com I.A. pode ajudar a sua empresa!

 


Conteúdos que você pode gostar também:

Saiba porque contar com um especialista em Cloud Computing

O armazenamento em nuvem vem se tornando uma das principais ações das empresas que querem se manter atuantes no mercado…

Conheça 5 benefícios ao investir em Inteligência Artificial

Alguns pensam que a Inteligência Artificial chega para substituir a mão de obra humana. Já outros acreditam que os…

Cloud Computing: benefícios para pequenas e médias empresas

Cloud Computing: benefícios para pequenas e médias empresas: Descubra como uma tecnologia acessível e que está se…